diff --git a/docs/dyn/adexchangebuyer_v1_3.accounts.html b/docs/dyn/adexchangebuyer_v1_3.accounts.html
new file mode 100644
index 0000000..e4308fd
--- /dev/null
+++ b/docs/dyn/adexchangebuyer_v1_3.accounts.html
@@ -0,0 +1,258 @@
+<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.accounts.html">accounts</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(id)</a></code></p>
+<p class="firstline">Gets one account by ID.</p>
+<p class="toc_element">
+  <code><a href="#list">list()</a></code></p>
+<p class="firstline">Retrieves the authenticated user's list of accounts.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(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(id, 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(id)</code>
+  <pre>Gets one account by ID.
+
+Args:
+  id: integer, The account id (required)
+
+Returns:
+  An object of the form:
+
+    { # 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.
+      "bidderLocation": [ # Your bidder locations that have distinct URLs.
+        {
+          "url": "A String", # The URL to which the Ad Exchange will send bid requests.
+          "region": "A String", # The geographical region the Ad Exchange should send requests from. Only used by some quota systems, but always setting the value is recommended. Allowed values:
+              # - ASIA
+              # - EUROPE
+              # - US_EAST
+              # - US_WEST
+          "maximumQps": 42, # The maximum queries per second the Ad Exchange will send.
+        },
+      ],
+      "cookieMatchingNid": "A String", # The nid parameter value used in cookie match requests. Please contact your technical account manager if you need to change this.
+      "id": 42, # Account id.
+      "cookieMatchingUrl": "A String", # The base URL used in cookie match requests.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list()</code>
+  <pre>Retrieves the authenticated user's list of accounts.
+
+Args:
+
+Returns:
+  An object of the form:
+
+    { # An account feed lists Ad Exchange buyer accounts that the user has access to. Each entry in the feed corresponds to a single buyer account.
+    "items": [ # A list of accounts.
+      { # 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.
+          "bidderLocation": [ # Your bidder locations that have distinct URLs.
+            {
+              "url": "A String", # The URL to which the Ad Exchange will send bid requests.
+              "region": "A String", # The geographical region the Ad Exchange should send requests from. Only used by some quota systems, but always setting the value is recommended. Allowed values:
+                  # - ASIA
+                  # - EUROPE
+                  # - US_EAST
+                  # - US_WEST
+              "maximumQps": 42, # The maximum queries per second the Ad Exchange will send.
+            },
+          ],
+          "cookieMatchingNid": "A String", # The nid parameter value used in cookie match requests. Please contact your technical account manager if you need to change this.
+          "id": 42, # Account id.
+          "cookieMatchingUrl": "A String", # The base URL used in cookie match requests.
+        },
+    ],
+    "kind": "adexchangebuyer#accountsList", # Resource type.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(id, body)</code>
+  <pre>Updates an existing account. This method supports patch semantics.
+
+Args:
+  id: integer, The account id (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # 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.
+    "bidderLocation": [ # Your bidder locations that have distinct URLs.
+      {
+        "url": "A String", # The URL to which the Ad Exchange will send bid requests.
+        "region": "A String", # The geographical region the Ad Exchange should send requests from. Only used by some quota systems, but always setting the value is recommended. Allowed values:
+            # - ASIA
+            # - EUROPE
+            # - US_EAST
+            # - US_WEST
+        "maximumQps": 42, # The maximum queries per second the Ad Exchange will send.
+      },
+    ],
+    "cookieMatchingNid": "A String", # The nid parameter value used in cookie match requests. Please contact your technical account manager if you need to change this.
+    "id": 42, # Account id.
+    "cookieMatchingUrl": "A String", # The base URL used in cookie match requests.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # 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.
+      "bidderLocation": [ # Your bidder locations that have distinct URLs.
+        {
+          "url": "A String", # The URL to which the Ad Exchange will send bid requests.
+          "region": "A String", # The geographical region the Ad Exchange should send requests from. Only used by some quota systems, but always setting the value is recommended. Allowed values:
+              # - ASIA
+              # - EUROPE
+              # - US_EAST
+              # - US_WEST
+          "maximumQps": 42, # The maximum queries per second the Ad Exchange will send.
+        },
+      ],
+      "cookieMatchingNid": "A String", # The nid parameter value used in cookie match requests. Please contact your technical account manager if you need to change this.
+      "id": 42, # Account id.
+      "cookieMatchingUrl": "A String", # The base URL used in cookie match requests.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(id, body)</code>
+  <pre>Updates an existing account.
+
+Args:
+  id: integer, The account id (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # 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.
+    "bidderLocation": [ # Your bidder locations that have distinct URLs.
+      {
+        "url": "A String", # The URL to which the Ad Exchange will send bid requests.
+        "region": "A String", # The geographical region the Ad Exchange should send requests from. Only used by some quota systems, but always setting the value is recommended. Allowed values:
+            # - ASIA
+            # - EUROPE
+            # - US_EAST
+            # - US_WEST
+        "maximumQps": 42, # The maximum queries per second the Ad Exchange will send.
+      },
+    ],
+    "cookieMatchingNid": "A String", # The nid parameter value used in cookie match requests. Please contact your technical account manager if you need to change this.
+    "id": 42, # Account id.
+    "cookieMatchingUrl": "A String", # The base URL used in cookie match requests.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # 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.
+      "bidderLocation": [ # Your bidder locations that have distinct URLs.
+        {
+          "url": "A String", # The URL to which the Ad Exchange will send bid requests.
+          "region": "A String", # The geographical region the Ad Exchange should send requests from. Only used by some quota systems, but always setting the value is recommended. Allowed values:
+              # - ASIA
+              # - EUROPE
+              # - US_EAST
+              # - US_WEST
+          "maximumQps": 42, # The maximum queries per second the Ad Exchange will send.
+        },
+      ],
+      "cookieMatchingNid": "A String", # The nid parameter value used in cookie match requests. Please contact your technical account manager if you need to change this.
+      "id": 42, # Account id.
+      "cookieMatchingUrl": "A String", # The base URL used in cookie match requests.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/adexchangebuyer_v1_3.creatives.html b/docs/dyn/adexchangebuyer_v1_3.creatives.html
new file mode 100644
index 0000000..6969051
--- /dev/null
+++ b/docs/dyn/adexchangebuyer_v1_3.creatives.html
@@ -0,0 +1,390 @@
+<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.creatives.html">creatives</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(accountId, buyerCreativeId)</a></code></p>
+<p class="firstline">Gets the status for a single creative. A creative will be available 30-40 minutes after submission.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(body)</a></code></p>
+<p class="firstline">Submit a new creative.</p>
+<p class="toc_element">
+  <code><a href="#list">list(pageToken=None, maxResults=None, statusFilter=None, buyerCreativeId=None, accountId=None)</a></code></p>
+<p class="firstline">Retrieves a list of the authenticated user's active creatives. A creative will be available 30-40 minutes after submission.</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(accountId, buyerCreativeId)</code>
+  <pre>Gets the status for a single creative. A creative will be available 30-40 minutes after submission.
+
+Args:
+  accountId: integer, The id for the account that will serve this creative. (required)
+  buyerCreativeId: string, The buyer-specific id for this creative. (required)
+
+Returns:
+  An object of the form:
+
+    { # A creative and its classification data.
+      "productCategories": [ # Detected product categories, if any. Read-only. This field should not be set in requests.
+        42,
+      ],
+      "advertiserName": "A String", # The name of the company being advertised in the creative.
+      "kind": "adexchangebuyer#creative", # Resource type.
+      "videoURL": "A String", # The url to fetch a video ad. If set, HTMLSnippet should not be set.
+      "agencyId": "A String", # The agency id for this creative.
+      "width": 42, # Ad width.
+      "attribute": [ # All attributes for the ads that may be shown from this snippet.
+        42,
+      ],
+      "restrictedCategories": [ # All restricted categories for the ads that may be shown from this snippet.
+        42,
+      ],
+      "vendorType": [ # All vendor types for the ads that may be shown from this snippet.
+        42,
+      ],
+      "height": 42, # Ad height.
+      "advertiserId": [ # Detected advertiser id, if any. Read-only. This field should not be set in requests.
+        "A String",
+      ],
+      "HTMLSnippet": "A String", # The HTML snippet that displays the ad when inserted in the web page. If set, videoURL should not be set.
+      "status": "A String", # Creative serving status. Read-only. This field should not be set in requests.
+      "buyerCreativeId": "A String", # A buyer-specific id identifying the creative in this ad.
+      "clickThroughUrl": [ # The set of destination urls for the snippet.
+        "A String",
+      ],
+      "corrections": [ # Shows any corrections that were applied to this creative. Read-only. This field should not be set in requests.
+        {
+          "reason": "A String", # The type of correction that was applied to the creative.
+          "details": [ # Additional details about the correction.
+            "A String",
+          ],
+        },
+      ],
+      "filteringReasons": { # The filtering reasons for the creative. Read-only. This field should not be set in requests.
+        "date": "A String", # The date in ISO 8601 format for the data. The data is collected from 00:00:00 to 23:59:59 in PST.
+        "reasons": [ # The filtering reasons.
+          {
+            "filteringCount": "A String", # The number of times the creative was filtered for the status. The count is aggregated across all publishers on the exchange.
+            "filteringStatus": 42, # The filtering status code. Please refer to "creative-status-codes.txt" in the Downloads section for the status codes.
+          },
+        ],
+      },
+      "disapprovalReasons": [ # The reasons for disapproval, if any. Note that not all disapproval reasons may be categorized, so it is possible for the creative to have a status of DISAPPROVED with an empty list for disapproval_reasons. In this case, please reach out to your TAM to help debug the issue. Read-only. This field should not be set in requests.
+        {
+          "reason": "A String", # The categorized reason for disapproval.
+          "details": [ # Additional details about the reason for disapproval.
+            "A String",
+          ],
+        },
+      ],
+      "sensitiveCategories": [ # Detected sensitive categories, if any. Read-only. This field should not be set in requests.
+        42,
+      ],
+      "accountId": 42, # Account id.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(body)</code>
+  <pre>Submit a new creative.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A creative and its classification data.
+    "productCategories": [ # Detected product categories, if any. Read-only. This field should not be set in requests.
+      42,
+    ],
+    "advertiserName": "A String", # The name of the company being advertised in the creative.
+    "kind": "adexchangebuyer#creative", # Resource type.
+    "videoURL": "A String", # The url to fetch a video ad. If set, HTMLSnippet should not be set.
+    "agencyId": "A String", # The agency id for this creative.
+    "width": 42, # Ad width.
+    "attribute": [ # All attributes for the ads that may be shown from this snippet.
+      42,
+    ],
+    "restrictedCategories": [ # All restricted categories for the ads that may be shown from this snippet.
+      42,
+    ],
+    "vendorType": [ # All vendor types for the ads that may be shown from this snippet.
+      42,
+    ],
+    "height": 42, # Ad height.
+    "advertiserId": [ # Detected advertiser id, if any. Read-only. This field should not be set in requests.
+      "A String",
+    ],
+    "HTMLSnippet": "A String", # The HTML snippet that displays the ad when inserted in the web page. If set, videoURL should not be set.
+    "status": "A String", # Creative serving status. Read-only. This field should not be set in requests.
+    "buyerCreativeId": "A String", # A buyer-specific id identifying the creative in this ad.
+    "clickThroughUrl": [ # The set of destination urls for the snippet.
+      "A String",
+    ],
+    "corrections": [ # Shows any corrections that were applied to this creative. Read-only. This field should not be set in requests.
+      {
+        "reason": "A String", # The type of correction that was applied to the creative.
+        "details": [ # Additional details about the correction.
+          "A String",
+        ],
+      },
+    ],
+    "filteringReasons": { # The filtering reasons for the creative. Read-only. This field should not be set in requests.
+      "date": "A String", # The date in ISO 8601 format for the data. The data is collected from 00:00:00 to 23:59:59 in PST.
+      "reasons": [ # The filtering reasons.
+        {
+          "filteringCount": "A String", # The number of times the creative was filtered for the status. The count is aggregated across all publishers on the exchange.
+          "filteringStatus": 42, # The filtering status code. Please refer to "creative-status-codes.txt" in the Downloads section for the status codes.
+        },
+      ],
+    },
+    "disapprovalReasons": [ # The reasons for disapproval, if any. Note that not all disapproval reasons may be categorized, so it is possible for the creative to have a status of DISAPPROVED with an empty list for disapproval_reasons. In this case, please reach out to your TAM to help debug the issue. Read-only. This field should not be set in requests.
+      {
+        "reason": "A String", # The categorized reason for disapproval.
+        "details": [ # Additional details about the reason for disapproval.
+          "A String",
+        ],
+      },
+    ],
+    "sensitiveCategories": [ # Detected sensitive categories, if any. Read-only. This field should not be set in requests.
+      42,
+    ],
+    "accountId": 42, # Account id.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A creative and its classification data.
+      "productCategories": [ # Detected product categories, if any. Read-only. This field should not be set in requests.
+        42,
+      ],
+      "advertiserName": "A String", # The name of the company being advertised in the creative.
+      "kind": "adexchangebuyer#creative", # Resource type.
+      "videoURL": "A String", # The url to fetch a video ad. If set, HTMLSnippet should not be set.
+      "agencyId": "A String", # The agency id for this creative.
+      "width": 42, # Ad width.
+      "attribute": [ # All attributes for the ads that may be shown from this snippet.
+        42,
+      ],
+      "restrictedCategories": [ # All restricted categories for the ads that may be shown from this snippet.
+        42,
+      ],
+      "vendorType": [ # All vendor types for the ads that may be shown from this snippet.
+        42,
+      ],
+      "height": 42, # Ad height.
+      "advertiserId": [ # Detected advertiser id, if any. Read-only. This field should not be set in requests.
+        "A String",
+      ],
+      "HTMLSnippet": "A String", # The HTML snippet that displays the ad when inserted in the web page. If set, videoURL should not be set.
+      "status": "A String", # Creative serving status. Read-only. This field should not be set in requests.
+      "buyerCreativeId": "A String", # A buyer-specific id identifying the creative in this ad.
+      "clickThroughUrl": [ # The set of destination urls for the snippet.
+        "A String",
+      ],
+      "corrections": [ # Shows any corrections that were applied to this creative. Read-only. This field should not be set in requests.
+        {
+          "reason": "A String", # The type of correction that was applied to the creative.
+          "details": [ # Additional details about the correction.
+            "A String",
+          ],
+        },
+      ],
+      "filteringReasons": { # The filtering reasons for the creative. Read-only. This field should not be set in requests.
+        "date": "A String", # The date in ISO 8601 format for the data. The data is collected from 00:00:00 to 23:59:59 in PST.
+        "reasons": [ # The filtering reasons.
+          {
+            "filteringCount": "A String", # The number of times the creative was filtered for the status. The count is aggregated across all publishers on the exchange.
+            "filteringStatus": 42, # The filtering status code. Please refer to "creative-status-codes.txt" in the Downloads section for the status codes.
+          },
+        ],
+      },
+      "disapprovalReasons": [ # The reasons for disapproval, if any. Note that not all disapproval reasons may be categorized, so it is possible for the creative to have a status of DISAPPROVED with an empty list for disapproval_reasons. In this case, please reach out to your TAM to help debug the issue. Read-only. This field should not be set in requests.
+        {
+          "reason": "A String", # The categorized reason for disapproval.
+          "details": [ # Additional details about the reason for disapproval.
+            "A String",
+          ],
+        },
+      ],
+      "sensitiveCategories": [ # Detected sensitive categories, if any. Read-only. This field should not be set in requests.
+        42,
+      ],
+      "accountId": 42, # Account id.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(pageToken=None, maxResults=None, statusFilter=None, buyerCreativeId=None, accountId=None)</code>
+  <pre>Retrieves a list of the authenticated user's active creatives. A creative will be available 30-40 minutes after submission.
+
+Args:
+  pageToken: string, A continuation token, used to page through ad clients. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response. Optional.
+  maxResults: integer, Maximum number of entries returned on one result page. If not set, the default is 100. Optional.
+  statusFilter: string, When specified, only creatives having the given status are returned.
+    Allowed values
+      approved - Creatives which have been approved.
+      disapproved - Creatives which have been disapproved.
+      not_checked - Creatives whose status is not yet checked.
+  buyerCreativeId: string, When specified, only creatives for the given buyer creative ids are returned. (repeated)
+  accountId: integer, When specified, only creatives for the given account ids are returned. (repeated)
+
+Returns:
+  An object of the form:
+
+    { # The creatives feed lists the active creatives for the Ad Exchange buyer accounts that the user has access to. Each entry in the feed corresponds to a single creative.
+    "nextPageToken": "A String", # Continuation token used to page through creatives. To retrieve the next page of results, set the next request's "pageToken" value to this.
+    "items": [ # A list of creatives.
+      { # A creative and its classification data.
+          "productCategories": [ # Detected product categories, if any. Read-only. This field should not be set in requests.
+            42,
+          ],
+          "advertiserName": "A String", # The name of the company being advertised in the creative.
+          "kind": "adexchangebuyer#creative", # Resource type.
+          "videoURL": "A String", # The url to fetch a video ad. If set, HTMLSnippet should not be set.
+          "agencyId": "A String", # The agency id for this creative.
+          "width": 42, # Ad width.
+          "attribute": [ # All attributes for the ads that may be shown from this snippet.
+            42,
+          ],
+          "restrictedCategories": [ # All restricted categories for the ads that may be shown from this snippet.
+            42,
+          ],
+          "vendorType": [ # All vendor types for the ads that may be shown from this snippet.
+            42,
+          ],
+          "height": 42, # Ad height.
+          "advertiserId": [ # Detected advertiser id, if any. Read-only. This field should not be set in requests.
+            "A String",
+          ],
+          "HTMLSnippet": "A String", # The HTML snippet that displays the ad when inserted in the web page. If set, videoURL should not be set.
+          "status": "A String", # Creative serving status. Read-only. This field should not be set in requests.
+          "buyerCreativeId": "A String", # A buyer-specific id identifying the creative in this ad.
+          "clickThroughUrl": [ # The set of destination urls for the snippet.
+            "A String",
+          ],
+          "corrections": [ # Shows any corrections that were applied to this creative. Read-only. This field should not be set in requests.
+            {
+              "reason": "A String", # The type of correction that was applied to the creative.
+              "details": [ # Additional details about the correction.
+                "A String",
+              ],
+            },
+          ],
+          "filteringReasons": { # The filtering reasons for the creative. Read-only. This field should not be set in requests.
+            "date": "A String", # The date in ISO 8601 format for the data. The data is collected from 00:00:00 to 23:59:59 in PST.
+            "reasons": [ # The filtering reasons.
+              {
+                "filteringCount": "A String", # The number of times the creative was filtered for the status. The count is aggregated across all publishers on the exchange.
+                "filteringStatus": 42, # The filtering status code. Please refer to "creative-status-codes.txt" in the Downloads section for the status codes.
+              },
+            ],
+          },
+          "disapprovalReasons": [ # The reasons for disapproval, if any. Note that not all disapproval reasons may be categorized, so it is possible for the creative to have a status of DISAPPROVED with an empty list for disapproval_reasons. In this case, please reach out to your TAM to help debug the issue. Read-only. This field should not be set in requests.
+            {
+              "reason": "A String", # The categorized reason for disapproval.
+              "details": [ # Additional details about the reason for disapproval.
+                "A String",
+              ],
+            },
+          ],
+          "sensitiveCategories": [ # Detected sensitive categories, if any. Read-only. This field should not be set in requests.
+            42,
+          ],
+          "accountId": 42, # Account id.
+        },
+    ],
+    "kind": "adexchangebuyer#creativesList", # Resource type.
+  }</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/adexchangebuyer_v1_3.directDeals.html b/docs/dyn/adexchangebuyer_v1_3.directDeals.html
new file mode 100644
index 0000000..687bcd7
--- /dev/null
+++ b/docs/dyn/adexchangebuyer_v1_3.directDeals.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="adexchangebuyer_v1_3.html">Ad Exchange Buyer API</a> . <a href="adexchangebuyer_v1_3.directDeals.html">directDeals</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(id)</a></code></p>
+<p class="firstline">Gets one direct deal by ID.</p>
+<p class="toc_element">
+  <code><a href="#list">list()</a></code></p>
+<p class="firstline">Retrieves the authenticated user's list of direct deals.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(id)</code>
+  <pre>Gets one direct deal by ID.
+
+Args:
+  id: string, The direct deal id (required)
+
+Returns:
+  An object of the form:
+
+    { # The configuration data for an Ad Exchange direct deal.
+    "advertiser": "A String", # The name of the advertiser this deal is for.
+    "kind": "adexchangebuyer#directDeal", # Resource type.
+    "name": "A String", # Deal name.
+    "currencyCode": "A String", # The currency code that applies to the fixed_cpm value. If not set then assumed to be USD.
+    "fixedCpm": "A String", # The fixed price for this direct deal. In cpm micros of currency according to currency_code. If set, then this deal is eligible for the fixed price tier of buying (highest priority, pay exactly the configured fixed price).
+    "privateExchangeMinCpm": "A String", # The minimum price for this direct deal. In cpm micros of currency according to currency_code. If set, then this deal is eligible for the private exchange tier of buying (below fixed price priority, run as a second price auction).
+    "startTime": "A String", # Start time for when this deal becomes active. If not set then this deal is active immediately upon creation. In seconds since the epoch.
+    "endTime": "A String", # End time for when this deal stops being active. If not set then this deal is valid until manually disabled by the publisher. In seconds since the epoch.
+    "sellerNetwork": "A String", # The name of the publisher offering this direct deal.
+    "id": "A String", # Deal id.
+    "accountId": 42, # The account id of the buyer this deal is for.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list()</code>
+  <pre>Retrieves the authenticated user's list of direct deals.
+
+Args:
+
+Returns:
+  An object of the form:
+
+    { # A direct deals feed lists Direct Deals the Ad Exchange buyer account has access to. This includes direct deals set up for the buyer account as well as its merged stream seats.
+    "kind": "adexchangebuyer#directDealsList", # Resource type.
+    "directDeals": [ # A list of direct deals relevant for your account.
+      { # The configuration data for an Ad Exchange direct deal.
+        "advertiser": "A String", # The name of the advertiser this deal is for.
+        "kind": "adexchangebuyer#directDeal", # Resource type.
+        "name": "A String", # Deal name.
+        "currencyCode": "A String", # The currency code that applies to the fixed_cpm value. If not set then assumed to be USD.
+        "fixedCpm": "A String", # The fixed price for this direct deal. In cpm micros of currency according to currency_code. If set, then this deal is eligible for the fixed price tier of buying (highest priority, pay exactly the configured fixed price).
+        "privateExchangeMinCpm": "A String", # The minimum price for this direct deal. In cpm micros of currency according to currency_code. If set, then this deal is eligible for the private exchange tier of buying (below fixed price priority, run as a second price auction).
+        "startTime": "A String", # Start time for when this deal becomes active. If not set then this deal is active immediately upon creation. In seconds since the epoch.
+        "endTime": "A String", # End time for when this deal stops being active. If not set then this deal is valid until manually disabled by the publisher. In seconds since the epoch.
+        "sellerNetwork": "A String", # The name of the publisher offering this direct deal.
+        "id": "A String", # Deal id.
+        "accountId": 42, # The account id of the buyer this deal is for.
+      },
+    ],
+  }</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
new file mode 100644
index 0000000..581e9f6
--- /dev/null
+++ b/docs/dyn/adexchangebuyer_v1_3.html
@@ -0,0 +1,97 @@
+<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></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="adexchangebuyer_v1_3.accounts.html">accounts()</a></code>
+</p>
+<p class="firstline">Returns the accounts 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>
+
+<p class="toc_element">
+  <code><a href="adexchangebuyer_v1_3.directDeals.html">directDeals()</a></code>
+</p>
+<p class="firstline">Returns the directDeals Resource.</p>
+
+<p class="toc_element">
+  <code><a href="adexchangebuyer_v1_3.performanceReport.html">performanceReport()</a></code>
+</p>
+<p class="firstline">Returns the performanceReport Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/adexchangebuyer_v1_3.performanceReport.html b/docs/dyn/adexchangebuyer_v1_3.performanceReport.html
new file mode 100644
index 0000000..0918875
--- /dev/null
+++ b/docs/dyn/adexchangebuyer_v1_3.performanceReport.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="adexchangebuyer_v1_3.html">Ad Exchange Buyer API</a> . <a href="adexchangebuyer_v1_3.performanceReport.html">performanceReport</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(accountId, endDateTime, startDateTime, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Retrieves the authenticated user's list of performance metrics.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(accountId, endDateTime, startDateTime, pageToken=None, maxResults=None)</code>
+  <pre>Retrieves the authenticated user's list of performance metrics.
+
+Args:
+  accountId: string, The account id to get the reports. (required)
+  endDateTime: string, The end time of the report in ISO 8601 timestamp format using UTC. (required)
+  startDateTime: string, The start time of the report in ISO 8601 timestamp format using UTC. (required)
+  pageToken: string, A continuation token, used to page through performance reports. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response. Optional.
+  maxResults: integer, Maximum number of entries returned on one result page. If not set, the default is 100. Optional.
+
+Returns:
+  An object of the form:
+
+    { # The configuration data for an Ad Exchange performance report list. https://sites.google.com/a/google.com/adx-integration/Home/engineering/binary-releases/rtb-api-release https://cs.corp.google.com/#piper///depot/google3/contentads/adx/tools/rtb_api/adxrtb.py
+    "kind": "adexchangebuyer#performanceReportList", # Resource type.
+    "performanceReport": [ # A list of performance reports relevant for the account.
+      { # The configuration data for an Ad Exchange performance report list. TODO(nathanbullock): need to add some release tests before releasing this. https://sites.google.com/a/google.com/adx-integration/Home/engineering/binary-releases/rtb-api-release https://cs.corp.google.com/#piper///depot/google3/contentads/adx/tools/rtb_api/adxrtb.py
+        "hostedMatchStatusRate": [ # Average QPS for hosted match operations.
+          "",
+        ],
+        "kind": "adexchangebuyer#performanceReport", # Resource type.
+        "cookieMatcherStatusRate": [ # Average QPS for cookie matcher operations.
+          "",
+        ],
+        "calloutStatusRate": [ # Rate of various prefiltering statuses per match. Please refer to the callout-status-codes.txt file for different statuses.
+          "",
+        ],
+        "noQuotaInRegion": 3.14, # Rate of various quota account statuses per quota check.
+        "timestamp": "A String", # The unix timestamp of the starting time of this performance data.
+        "region": "A String", # The trading location of this data.
+        "quotaConfiguredLimit": 3.14, # The configured quota limits for this account.
+        "latency50thPercentile": 3.14, # The 50th percentile round trip latency(ms) as perceived from Google servers for the duration period covered by the report.
+        "latency85thPercentile": 3.14, # The 85th percentile round trip latency(ms) as perceived from Google servers for the duration period covered by the report.
+        "pixelMatchResponses": 3.14, # Average QPS for pixel match responses from clients.
+        "outOfQuota": 3.14, # Rate of various quota account statuses per quota check.
+        "creativeStatusRate": [ # Rate of ads with a given status. Please refer to the creative-status-codes.txt file for different statuses.
+          "",
+        ],
+        "quotaThrottledLimit": 3.14, # The throttled quota limits for this account.
+        "latency95thPercentile": 3.14, # The 95th percentile round trip latency(ms) as perceived from Google servers for the duration period covered by the report.
+        "pixelMatchRequests": 3.14, # Average QPS for pixel match requests from clients.
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/adexchangeseller_v1_1.accounts.html b/docs/dyn/adexchangeseller_v1_1.accounts.html
new file mode 100644
index 0000000..f9ae132
--- /dev/null
+++ b/docs/dyn/adexchangeseller_v1_1.accounts.html
@@ -0,0 +1,98 @@
+<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="adexchangeseller_v1_1.html">Ad Exchange Seller API</a> . <a href="adexchangeseller_v1_1.accounts.html">accounts</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(accountId)</a></code></p>
+<p class="firstline">Get information about the selected Ad Exchange account.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(accountId)</code>
+  <pre>Get information about the selected Ad Exchange account.
+
+Args:
+  accountId: string, Account to get information about. Tip: 'myaccount' is a valid ID. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "adexchangeseller#account", # Kind of resource this is, in this case adexchangeseller#account.
+    "id": "A String", # Unique identifier of this account.
+    "name": "A String", # Name of this account.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/adexchangeseller_v1_1.adclients.html b/docs/dyn/adexchangeseller_v1_1.adclients.html
new file mode 100644
index 0000000..969b58d
--- /dev/null
+++ b/docs/dyn/adexchangeseller_v1_1.adclients.html
@@ -0,0 +1,125 @@
+<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="adexchangeseller_v1_1.html">Ad Exchange Seller API</a> . <a href="adexchangeseller_v1_1.adclients.html">adclients</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">List all ad clients in this Ad Exchange 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="list">list(pageToken=None, maxResults=None)</code>
+  <pre>List all ad clients in this Ad Exchange account.
+
+Args:
+  pageToken: string, A continuation token, used to page through ad clients. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+  maxResults: integer, The maximum number of ad clients to include in the response, used for paging.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Continuation token used to page through ad clients. To retrieve the next page of results, set the next request's "pageToken" value to this.
+    "items": [ # The ad clients returned in this list response.
+      {
+        "productCode": "A String", # This ad client's product code, which corresponds to the PRODUCT_CODE report dimension.
+        "kind": "adexchangeseller#adClient", # Kind of resource this is, in this case adexchangeseller#adClient.
+        "id": "A String", # Unique identifier of this ad client.
+        "arcOptIn": True or False, # Whether this ad client is opted in to ARC.
+        "supportsReporting": True or False, # Whether this ad client supports being reported on.
+      },
+    ],
+    "kind": "adexchangeseller#adClients", # Kind of list this is, in this case adexchangeseller#adClients.
+    "etag": "A String", # 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/adexchangeseller_v1_1.adunits.customchannels.html b/docs/dyn/adexchangeseller_v1_1.adunits.customchannels.html
new file mode 100644
index 0000000..ccecbfe
--- /dev/null
+++ b/docs/dyn/adexchangeseller_v1_1.adunits.customchannels.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="adexchangeseller_v1_1.html">Ad Exchange Seller API</a> . <a href="adexchangeseller_v1_1.adunits.html">adunits</a> . <a href="adexchangeseller_v1_1.adunits.customchannels.html">customchannels</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(adClientId, adUnitId, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">List all custom channels which the specified ad unit belongs to.</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(adClientId, adUnitId, pageToken=None, maxResults=None)</code>
+  <pre>List all custom channels which the specified ad unit belongs to.
+
+Args:
+  adClientId: string, Ad client which contains the ad unit. (required)
+  adUnitId: string, Ad unit for which to list custom channels. (required)
+  pageToken: string, A continuation token, used to page through custom channels. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+  maxResults: integer, The maximum number of custom channels to include in the response, used for paging.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Continuation token used to page through custom channels. To retrieve the next page of results, set the next request's "pageToken" value to this.
+    "items": [ # The custom channels returned in this list response.
+      {
+        "kind": "adexchangeseller#customChannel", # Kind of resource this is, in this case adexchangeseller#customChannel.
+        "code": "A String", # Code of this custom channel, not necessarily unique across ad clients.
+        "targetingInfo": { # The targeting information of this custom channel, if activated.
+          "location": "A String", # The locations in which ads appear. (Only valid for content and mobile content ads). Acceptable values for content ads are: TOP_LEFT, TOP_CENTER, TOP_RIGHT, MIDDLE_LEFT, MIDDLE_CENTER, MIDDLE_RIGHT, BOTTOM_LEFT, BOTTOM_CENTER, BOTTOM_RIGHT, MULTIPLE_LOCATIONS. Acceptable values for mobile content ads are: TOP, MIDDLE, BOTTOM, MULTIPLE_LOCATIONS.
+          "adsAppearOn": "A String", # The name used to describe this channel externally.
+          "siteLanguage": "A String", # The language of the sites ads will be displayed on.
+          "description": "A String", # The external description of the channel.
+        },
+        "id": "A String", # Unique identifier of this custom channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+        "name": "A String", # Name of this custom channel.
+      },
+    ],
+    "kind": "adexchangeseller#customChannels", # Kind of list this is, in this case adexchangeseller#customChannels.
+    "etag": "A String", # 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/adexchangeseller_v1_1.adunits.html b/docs/dyn/adexchangeseller_v1_1.adunits.html
new file mode 100644
index 0000000..4b45994
--- /dev/null
+++ b/docs/dyn/adexchangeseller_v1_1.adunits.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="adexchangeseller_v1_1.html">Ad Exchange Seller API</a> . <a href="adexchangeseller_v1_1.adunits.html">adunits</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="adexchangeseller_v1_1.adunits.customchannels.html">customchannels()</a></code>
+</p>
+<p class="firstline">Returns the customchannels Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#get">get(adClientId, adUnitId)</a></code></p>
+<p class="firstline">Gets the specified ad unit in the specified ad client.</p>
+<p class="toc_element">
+  <code><a href="#list">list(adClientId, pageToken=None, includeInactive=None, maxResults=None)</a></code></p>
+<p class="firstline">List all ad units in the specified ad client for this Ad Exchange 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="get">get(adClientId, adUnitId)</code>
+  <pre>Gets the specified ad unit in the specified ad client.
+
+Args:
+  adClientId: string, Ad client for which to get the ad unit. (required)
+  adUnitId: string, Ad unit to retrieve. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "status": "A String", # Status of this ad unit. Possible values are:
+        # NEW: Indicates that the ad unit was created within the last seven days and does not yet have any activity associated with it.
+        #
+        # ACTIVE: Indicates that there has been activity on this ad unit in the last seven days.
+        #
+        # INACTIVE: Indicates that there has been no activity on this ad unit in the last seven days.
+    "kind": "adexchangeseller#adUnit", # Kind of resource this is, in this case adexchangeseller#adUnit.
+    "code": "A String", # Identity code of this ad unit, not necessarily unique across ad clients.
+    "id": "A String", # Unique identifier of this ad unit. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+    "name": "A String", # Name of this ad unit.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(adClientId, pageToken=None, includeInactive=None, maxResults=None)</code>
+  <pre>List all ad units in the specified ad client for this Ad Exchange account.
+
+Args:
+  adClientId: string, Ad client for which to list ad units. (required)
+  pageToken: string, A continuation token, used to page through ad units. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+  includeInactive: boolean, Whether to include inactive ad units. Default: true.
+  maxResults: integer, The maximum number of ad units to include in the response, used for paging.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Continuation token used to page through ad units. To retrieve the next page of results, set the next request's "pageToken" value to this.
+    "items": [ # The ad units returned in this list response.
+      {
+        "status": "A String", # Status of this ad unit. Possible values are:
+            # NEW: Indicates that the ad unit was created within the last seven days and does not yet have any activity associated with it.
+            #
+            # ACTIVE: Indicates that there has been activity on this ad unit in the last seven days.
+            #
+            # INACTIVE: Indicates that there has been no activity on this ad unit in the last seven days.
+        "kind": "adexchangeseller#adUnit", # Kind of resource this is, in this case adexchangeseller#adUnit.
+        "code": "A String", # Identity code of this ad unit, not necessarily unique across ad clients.
+        "id": "A String", # Unique identifier of this ad unit. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+        "name": "A String", # Name of this ad unit.
+      },
+    ],
+    "kind": "adexchangeseller#adUnits", # Kind of list this is, in this case adexchangeseller#adUnits.
+    "etag": "A String", # 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/adexchangeseller_v1_1.alerts.html b/docs/dyn/adexchangeseller_v1_1.alerts.html
new file mode 100644
index 0000000..2c4ca2c
--- /dev/null
+++ b/docs/dyn/adexchangeseller_v1_1.alerts.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="adexchangeseller_v1_1.html">Ad Exchange Seller API</a> . <a href="adexchangeseller_v1_1.alerts.html">alerts</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(locale=None)</a></code></p>
+<p class="firstline">List the alerts for this Ad Exchange account.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(locale=None)</code>
+  <pre>List the alerts for this Ad Exchange account.
+
+Args:
+  locale: string, The locale to use for translating alert messages. The account locale will be used if this is not supplied. The AdSense default (English) will be used if the supplied locale is invalid or unsupported.
+
+Returns:
+  An object of the form:
+
+    {
+    "items": [ # The alerts returned in this list response.
+      {
+        "type": "A String", # Type of this alert. Possible values: SELF_HOLD, MIGRATED_TO_BILLING3, ADDRESS_PIN_VERIFICATION, PHONE_PIN_VERIFICATION, CORPORATE_ENTITY, GRAYLISTED_PUBLISHER, API_HOLD.
+        "kind": "adexchangeseller#alert", # Kind of resource this is, in this case adexchangeseller#alert.
+        "message": "A String", # The localized alert message.
+        "id": "A String", # Unique identifier of this alert. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+        "severity": "A String", # Severity of this alert. Possible values: INFO, WARNING, SEVERE.
+      },
+    ],
+    "kind": "adexchangeseller#alerts", # Kind of list this is, in this case adexchangeseller#alerts.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/adexchangeseller_v1_1.customchannels.adunits.html b/docs/dyn/adexchangeseller_v1_1.customchannels.adunits.html
new file mode 100644
index 0000000..0439c38
--- /dev/null
+++ b/docs/dyn/adexchangeseller_v1_1.customchannels.adunits.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="adexchangeseller_v1_1.html">Ad Exchange Seller API</a> . <a href="adexchangeseller_v1_1.customchannels.html">customchannels</a> . <a href="adexchangeseller_v1_1.customchannels.adunits.html">adunits</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(adClientId, customChannelId, pageToken=None, includeInactive=None, maxResults=None)</a></code></p>
+<p class="firstline">List all ad units in the specified custom channel.</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(adClientId, customChannelId, pageToken=None, includeInactive=None, maxResults=None)</code>
+  <pre>List all ad units in the specified custom channel.
+
+Args:
+  adClientId: string, Ad client which contains the custom channel. (required)
+  customChannelId: string, Custom channel for which to list ad units. (required)
+  pageToken: string, A continuation token, used to page through ad units. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+  includeInactive: boolean, Whether to include inactive ad units. Default: true.
+  maxResults: integer, The maximum number of ad units to include in the response, used for paging.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Continuation token used to page through ad units. To retrieve the next page of results, set the next request's "pageToken" value to this.
+    "items": [ # The ad units returned in this list response.
+      {
+        "status": "A String", # Status of this ad unit. Possible values are:
+            # NEW: Indicates that the ad unit was created within the last seven days and does not yet have any activity associated with it.
+            #
+            # ACTIVE: Indicates that there has been activity on this ad unit in the last seven days.
+            #
+            # INACTIVE: Indicates that there has been no activity on this ad unit in the last seven days.
+        "kind": "adexchangeseller#adUnit", # Kind of resource this is, in this case adexchangeseller#adUnit.
+        "code": "A String", # Identity code of this ad unit, not necessarily unique across ad clients.
+        "id": "A String", # Unique identifier of this ad unit. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+        "name": "A String", # Name of this ad unit.
+      },
+    ],
+    "kind": "adexchangeseller#adUnits", # Kind of list this is, in this case adexchangeseller#adUnits.
+    "etag": "A String", # 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/adexchangeseller_v1_1.customchannels.html b/docs/dyn/adexchangeseller_v1_1.customchannels.html
new file mode 100644
index 0000000..fbb66c8
--- /dev/null
+++ b/docs/dyn/adexchangeseller_v1_1.customchannels.html
@@ -0,0 +1,164 @@
+<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="adexchangeseller_v1_1.html">Ad Exchange Seller API</a> . <a href="adexchangeseller_v1_1.customchannels.html">customchannels</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="adexchangeseller_v1_1.customchannels.adunits.html">adunits()</a></code>
+</p>
+<p class="firstline">Returns the adunits Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#get">get(adClientId, customChannelId)</a></code></p>
+<p class="firstline">Get the specified custom channel from the specified ad client.</p>
+<p class="toc_element">
+  <code><a href="#list">list(adClientId, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">List all custom channels in the specified ad client for this Ad Exchange 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="get">get(adClientId, customChannelId)</code>
+  <pre>Get the specified custom channel from the specified ad client.
+
+Args:
+  adClientId: string, Ad client which contains the custom channel. (required)
+  customChannelId: string, Custom channel to retrieve. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "adexchangeseller#customChannel", # Kind of resource this is, in this case adexchangeseller#customChannel.
+    "code": "A String", # Code of this custom channel, not necessarily unique across ad clients.
+    "targetingInfo": { # The targeting information of this custom channel, if activated.
+      "location": "A String", # The locations in which ads appear. (Only valid for content and mobile content ads). Acceptable values for content ads are: TOP_LEFT, TOP_CENTER, TOP_RIGHT, MIDDLE_LEFT, MIDDLE_CENTER, MIDDLE_RIGHT, BOTTOM_LEFT, BOTTOM_CENTER, BOTTOM_RIGHT, MULTIPLE_LOCATIONS. Acceptable values for mobile content ads are: TOP, MIDDLE, BOTTOM, MULTIPLE_LOCATIONS.
+      "adsAppearOn": "A String", # The name used to describe this channel externally.
+      "siteLanguage": "A String", # The language of the sites ads will be displayed on.
+      "description": "A String", # The external description of the channel.
+    },
+    "id": "A String", # Unique identifier of this custom channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+    "name": "A String", # Name of this custom channel.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(adClientId, pageToken=None, maxResults=None)</code>
+  <pre>List all custom channels in the specified ad client for this Ad Exchange account.
+
+Args:
+  adClientId: string, Ad client for which to list custom channels. (required)
+  pageToken: string, A continuation token, used to page through custom channels. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+  maxResults: integer, The maximum number of custom channels to include in the response, used for paging.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Continuation token used to page through custom channels. To retrieve the next page of results, set the next request's "pageToken" value to this.
+    "items": [ # The custom channels returned in this list response.
+      {
+        "kind": "adexchangeseller#customChannel", # Kind of resource this is, in this case adexchangeseller#customChannel.
+        "code": "A String", # Code of this custom channel, not necessarily unique across ad clients.
+        "targetingInfo": { # The targeting information of this custom channel, if activated.
+          "location": "A String", # The locations in which ads appear. (Only valid for content and mobile content ads). Acceptable values for content ads are: TOP_LEFT, TOP_CENTER, TOP_RIGHT, MIDDLE_LEFT, MIDDLE_CENTER, MIDDLE_RIGHT, BOTTOM_LEFT, BOTTOM_CENTER, BOTTOM_RIGHT, MULTIPLE_LOCATIONS. Acceptable values for mobile content ads are: TOP, MIDDLE, BOTTOM, MULTIPLE_LOCATIONS.
+          "adsAppearOn": "A String", # The name used to describe this channel externally.
+          "siteLanguage": "A String", # The language of the sites ads will be displayed on.
+          "description": "A String", # The external description of the channel.
+        },
+        "id": "A String", # Unique identifier of this custom channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+        "name": "A String", # Name of this custom channel.
+      },
+    ],
+    "kind": "adexchangeseller#customChannels", # Kind of list this is, in this case adexchangeseller#customChannels.
+    "etag": "A String", # 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/adexchangeseller_v1_1.html b/docs/dyn/adexchangeseller_v1_1.html
new file mode 100644
index 0000000..98714d5
--- /dev/null
+++ b/docs/dyn/adexchangeseller_v1_1.html
@@ -0,0 +1,122 @@
+<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="adexchangeseller_v1_1.html">Ad Exchange Seller API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="adexchangeseller_v1_1.accounts.html">accounts()</a></code>
+</p>
+<p class="firstline">Returns the accounts Resource.</p>
+
+<p class="toc_element">
+  <code><a href="adexchangeseller_v1_1.adclients.html">adclients()</a></code>
+</p>
+<p class="firstline">Returns the adclients Resource.</p>
+
+<p class="toc_element">
+  <code><a href="adexchangeseller_v1_1.adunits.html">adunits()</a></code>
+</p>
+<p class="firstline">Returns the adunits Resource.</p>
+
+<p class="toc_element">
+  <code><a href="adexchangeseller_v1_1.alerts.html">alerts()</a></code>
+</p>
+<p class="firstline">Returns the alerts Resource.</p>
+
+<p class="toc_element">
+  <code><a href="adexchangeseller_v1_1.customchannels.html">customchannels()</a></code>
+</p>
+<p class="firstline">Returns the customchannels Resource.</p>
+
+<p class="toc_element">
+  <code><a href="adexchangeseller_v1_1.metadata.html">metadata()</a></code>
+</p>
+<p class="firstline">Returns the metadata Resource.</p>
+
+<p class="toc_element">
+  <code><a href="adexchangeseller_v1_1.preferreddeals.html">preferreddeals()</a></code>
+</p>
+<p class="firstline">Returns the preferreddeals Resource.</p>
+
+<p class="toc_element">
+  <code><a href="adexchangeseller_v1_1.reports.html">reports()</a></code>
+</p>
+<p class="firstline">Returns the reports Resource.</p>
+
+<p class="toc_element">
+  <code><a href="adexchangeseller_v1_1.urlchannels.html">urlchannels()</a></code>
+</p>
+<p class="firstline">Returns the urlchannels Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/adexchangeseller_v1_1.metadata.dimensions.html b/docs/dyn/adexchangeseller_v1_1.metadata.dimensions.html
new file mode 100644
index 0000000..52d9fc6
--- /dev/null
+++ b/docs/dyn/adexchangeseller_v1_1.metadata.dimensions.html
@@ -0,0 +1,116 @@
+<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="adexchangeseller_v1_1.html">Ad Exchange Seller API</a> . <a href="adexchangeseller_v1_1.metadata.html">metadata</a> . <a href="adexchangeseller_v1_1.metadata.dimensions.html">dimensions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list()</a></code></p>
+<p class="firstline">List the metadata for the dimensions available to this AdExchange account.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list()</code>
+  <pre>List the metadata for the dimensions available to this AdExchange account.
+
+Args:
+
+Returns:
+  An object of the form:
+
+    {
+    "items": [
+      {
+        "requiredMetrics": [ # The names of the metrics which the dimension or metric this reporting metadata entry describes requires to also be present in order for the report to be valid. Omitting these will not cause an error or warning, but may result in data which cannot be correctly interpreted.
+          "A String",
+        ],
+        "kind": "adexchangeseller#reportingMetadataEntry", # Kind of resource this is, in this case adexchangeseller#reportingMetadataEntry.
+        "compatibleMetrics": [ # The names of the metrics the dimension or metric this reporting metadata entry describes is compatible with.
+          "A String",
+        ],
+        "requiredDimensions": [ # The names of the dimensions which the dimension or metric this reporting metadata entry describes requires to also be present in order for the report to be valid. Omitting these will not cause an error or warning, but may result in data which cannot be correctly interpreted.
+          "A String",
+        ],
+        "compatibleDimensions": [ # For metrics this is a list of dimension IDs which the metric is compatible with, for dimensions it is a list of compatibility groups the dimension belongs to.
+          "A String",
+        ],
+        "id": "A String", # Unique identifier of this reporting metadata entry, corresponding to the name of the appropriate dimension or metric.
+        "supportedProducts": [ # The codes of the projects supported by the dimension or metric this reporting metadata entry describes.
+          "A String",
+        ],
+      },
+    ],
+    "kind": "adexchangeseller#metadata", # Kind of list this is, in this case adexchangeseller#metadata.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/adexchangeseller_v1_1.metadata.html b/docs/dyn/adexchangeseller_v1_1.metadata.html
new file mode 100644
index 0000000..dee3afe
--- /dev/null
+++ b/docs/dyn/adexchangeseller_v1_1.metadata.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="adexchangeseller_v1_1.html">Ad Exchange Seller API</a> . <a href="adexchangeseller_v1_1.metadata.html">metadata</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="adexchangeseller_v1_1.metadata.dimensions.html">dimensions()</a></code>
+</p>
+<p class="firstline">Returns the dimensions Resource.</p>
+
+<p class="toc_element">
+  <code><a href="adexchangeseller_v1_1.metadata.metrics.html">metrics()</a></code>
+</p>
+<p class="firstline">Returns the metrics Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/adexchangeseller_v1_1.metadata.metrics.html b/docs/dyn/adexchangeseller_v1_1.metadata.metrics.html
new file mode 100644
index 0000000..afa594c
--- /dev/null
+++ b/docs/dyn/adexchangeseller_v1_1.metadata.metrics.html
@@ -0,0 +1,116 @@
+<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="adexchangeseller_v1_1.html">Ad Exchange Seller API</a> . <a href="adexchangeseller_v1_1.metadata.html">metadata</a> . <a href="adexchangeseller_v1_1.metadata.metrics.html">metrics</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list()</a></code></p>
+<p class="firstline">List the metadata for the metrics available to this AdExchange account.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list()</code>
+  <pre>List the metadata for the metrics available to this AdExchange account.
+
+Args:
+
+Returns:
+  An object of the form:
+
+    {
+    "items": [
+      {
+        "requiredMetrics": [ # The names of the metrics which the dimension or metric this reporting metadata entry describes requires to also be present in order for the report to be valid. Omitting these will not cause an error or warning, but may result in data which cannot be correctly interpreted.
+          "A String",
+        ],
+        "kind": "adexchangeseller#reportingMetadataEntry", # Kind of resource this is, in this case adexchangeseller#reportingMetadataEntry.
+        "compatibleMetrics": [ # The names of the metrics the dimension or metric this reporting metadata entry describes is compatible with.
+          "A String",
+        ],
+        "requiredDimensions": [ # The names of the dimensions which the dimension or metric this reporting metadata entry describes requires to also be present in order for the report to be valid. Omitting these will not cause an error or warning, but may result in data which cannot be correctly interpreted.
+          "A String",
+        ],
+        "compatibleDimensions": [ # For metrics this is a list of dimension IDs which the metric is compatible with, for dimensions it is a list of compatibility groups the dimension belongs to.
+          "A String",
+        ],
+        "id": "A String", # Unique identifier of this reporting metadata entry, corresponding to the name of the appropriate dimension or metric.
+        "supportedProducts": [ # The codes of the projects supported by the dimension or metric this reporting metadata entry describes.
+          "A String",
+        ],
+      },
+    ],
+    "kind": "adexchangeseller#metadata", # Kind of list this is, in this case adexchangeseller#metadata.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/adexchangeseller_v1_1.preferreddeals.html b/docs/dyn/adexchangeseller_v1_1.preferreddeals.html
new file mode 100644
index 0000000..a5f5e56
--- /dev/null
+++ b/docs/dyn/adexchangeseller_v1_1.preferreddeals.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="adexchangeseller_v1_1.html">Ad Exchange Seller API</a> . <a href="adexchangeseller_v1_1.preferreddeals.html">preferreddeals</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(dealId)</a></code></p>
+<p class="firstline">Get information about the selected Ad Exchange Preferred Deal.</p>
+<p class="toc_element">
+  <code><a href="#list">list()</a></code></p>
+<p class="firstline">List the preferred deals for this Ad Exchange account.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(dealId)</code>
+  <pre>Get information about the selected Ad Exchange Preferred Deal.
+
+Args:
+  dealId: string, Preferred deal to get information about. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "adexchangeseller#preferredDeal", # Kind of resource this is, in this case adexchangeseller#preferredDeal.
+    "buyerNetworkName": "A String", # The name of the buyer network this deal is for.
+    "currencyCode": "A String", # The currency code that applies to the fixed_cpm value. If not set then assumed to be USD.
+    "advertiserName": "A String", # The name of the advertiser this deal is for.
+    "fixedCpm": "A String", # The fixed price for this preferred deal. In cpm micros of currency according to currencyCode. If set, then this preferred deal is eligible for the fixed price tier of buying (highest priority, pay exactly the configured fixed price).
+    "startTime": "A String", # Time when this deal becomes active in seconds since the epoch (GMT). If not set then this deal is active immediately upon creation.
+    "endTime": "A String", # Time when this deal stops being active in seconds since the epoch (GMT). If not set then this deal is valid until manually disabled by the publisher.
+    "id": "A String", # Unique identifier of this preferred deal.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list()</code>
+  <pre>List the preferred deals for this Ad Exchange account.
+
+Args:
+
+Returns:
+  An object of the form:
+
+    {
+    "items": [ # The preferred deals returned in this list response.
+      {
+        "kind": "adexchangeseller#preferredDeal", # Kind of resource this is, in this case adexchangeseller#preferredDeal.
+        "buyerNetworkName": "A String", # The name of the buyer network this deal is for.
+        "currencyCode": "A String", # The currency code that applies to the fixed_cpm value. If not set then assumed to be USD.
+        "advertiserName": "A String", # The name of the advertiser this deal is for.
+        "fixedCpm": "A String", # The fixed price for this preferred deal. In cpm micros of currency according to currencyCode. If set, then this preferred deal is eligible for the fixed price tier of buying (highest priority, pay exactly the configured fixed price).
+        "startTime": "A String", # Time when this deal becomes active in seconds since the epoch (GMT). If not set then this deal is active immediately upon creation.
+        "endTime": "A String", # Time when this deal stops being active in seconds since the epoch (GMT). If not set then this deal is valid until manually disabled by the publisher.
+        "id": "A String", # Unique identifier of this preferred deal.
+      },
+    ],
+    "kind": "adexchangeseller#preferredDeals", # Kind of list this is, in this case adexchangeseller#preferredDeals.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/adexchangeseller_v1_1.reports.html b/docs/dyn/adexchangeseller_v1_1.reports.html
new file mode 100644
index 0000000..edbd328
--- /dev/null
+++ b/docs/dyn/adexchangeseller_v1_1.reports.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="adexchangeseller_v1_1.html">Ad Exchange Seller API</a> . <a href="adexchangeseller_v1_1.reports.html">reports</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="adexchangeseller_v1_1.reports.saved.html">saved()</a></code>
+</p>
+<p class="firstline">Returns the saved Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#generate">generate(startDate, endDate, sort=None, locale=None, metric=None, maxResults=None, dimension=None, startIndex=None, filter=None)</a></code></p>
+<p class="firstline">Generate an Ad Exchange report based on the report request sent in the query parameters. Returns the result as JSON; to retrieve output in CSV format specify "alt=csv" as a query parameter.</p>
+<p class="toc_element">
+  <code><a href="#generate_media">generate_media(startDate, endDate, sort=None, locale=None, metric=None, maxResults=None, dimension=None, startIndex=None, filter=None)</a></code></p>
+<p class="firstline">Generate an Ad Exchange report based on the report request sent in the query parameters. Returns the result as JSON; to retrieve output in CSV format specify "alt=csv" as a query parameter.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="generate">generate(startDate, endDate, sort=None, locale=None, metric=None, maxResults=None, dimension=None, startIndex=None, filter=None)</code>
+  <pre>Generate an Ad Exchange report based on the report request sent in the query parameters. Returns the result as JSON; to retrieve output in CSV format specify "alt=csv" as a query parameter.
+
+Args:
+  startDate: string, Start of the date range to report on in "YYYY-MM-DD" format, inclusive. (required)
+  endDate: string, End of the date range to report on in "YYYY-MM-DD" format, inclusive. (required)
+  sort: string, The name of a dimension or metric to sort the resulting report on, optionally prefixed with "+" to sort ascending or "-" to sort descending. If no prefix is specified, the column is sorted ascending. (repeated)
+  locale: string, Optional locale to use for translating report output to a local language. Defaults to "en_US" if not specified.
+  metric: string, Numeric columns to include in the report. (repeated)
+  maxResults: integer, The maximum number of rows of report data to return.
+  dimension: string, Dimensions to base the report on. (repeated)
+  startIndex: integer, Index of the first row of report data to return.
+  filter: string, Filters to be run on the report. (repeated)
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "adexchangeseller#report", # Kind this is, in this case adexchangeseller#report.
+    "rows": [ # The output rows of the report. Each row is a list of cells; one for each dimension in the request, followed by one for each metric in the request. The dimension cells contain strings, and the metric cells contain numbers.
+      [
+        "A String",
+      ],
+    ],
+    "warnings": [ # Any warnings associated with generation of the report.
+      "A String",
+    ],
+    "totals": [ # The totals of the report. This is the same length as any other row in the report; cells corresponding to dimension columns are empty.
+      "A String",
+    ],
+    "headers": [ # The header information of the columns requested in the report. This is a list of headers; one for each dimension in the request, followed by one for each metric in the request.
+      {
+        "currency": "A String", # The currency of this column. Only present if the header type is METRIC_CURRENCY.
+        "type": "A String", # The type of the header; one of DIMENSION, METRIC_TALLY, METRIC_RATIO, or METRIC_CURRENCY.
+        "name": "A String", # The name of the header.
+      },
+    ],
+    "totalMatchedRows": "A String", # The total number of rows matched by the report request. Fewer rows may be returned in the response due to being limited by the row count requested or the report row limit.
+    "averages": [ # The averages of the report. This is the same length as any other row in the report; cells corresponding to dimension columns are empty.
+      "A String",
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="generate_media">generate_media(startDate, endDate, sort=None, locale=None, metric=None, maxResults=None, dimension=None, startIndex=None, filter=None)</code>
+  <pre>Generate an Ad Exchange report based on the report request sent in the query parameters. Returns the result as JSON; to retrieve output in CSV format specify "alt=csv" as a query parameter.
+
+Args:
+  startDate: string, Start of the date range to report on in "YYYY-MM-DD" format, inclusive. (required)
+  endDate: string, End of the date range to report on in "YYYY-MM-DD" format, inclusive. (required)
+  sort: string, The name of a dimension or metric to sort the resulting report on, optionally prefixed with "+" to sort ascending or "-" to sort descending. If no prefix is specified, the column is sorted ascending. (repeated)
+  locale: string, Optional locale to use for translating report output to a local language. Defaults to "en_US" if not specified.
+  metric: string, Numeric columns to include in the report. (repeated)
+  maxResults: integer, The maximum number of rows of report data to return.
+  dimension: string, Dimensions to base the report on. (repeated)
+  startIndex: integer, Index of the first row of report data to return.
+  filter: string, Filters to be run on the report. (repeated)
+
+Returns:
+  The media object as a string.
+
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/adexchangeseller_v1_1.reports.saved.html b/docs/dyn/adexchangeseller_v1_1.reports.saved.html
new file mode 100644
index 0000000..73b7621
--- /dev/null
+++ b/docs/dyn/adexchangeseller_v1_1.reports.saved.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="adexchangeseller_v1_1.html">Ad Exchange Seller API</a> . <a href="adexchangeseller_v1_1.reports.html">reports</a> . <a href="adexchangeseller_v1_1.reports.saved.html">saved</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#generate">generate(savedReportId, locale=None, maxResults=None, startIndex=None)</a></code></p>
+<p class="firstline">Generate an Ad Exchange report based on the saved report ID sent in the query parameters.</p>
+<p class="toc_element">
+  <code><a href="#list">list(pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">List all saved reports in this Ad Exchange 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="generate">generate(savedReportId, locale=None, maxResults=None, startIndex=None)</code>
+  <pre>Generate an Ad Exchange report based on the saved report ID sent in the query parameters.
+
+Args:
+  savedReportId: string, The saved report to retrieve. (required)
+  locale: string, Optional locale to use for translating report output to a local language. Defaults to "en_US" if not specified.
+  maxResults: integer, The maximum number of rows of report data to return.
+  startIndex: integer, Index of the first row of report data to return.
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "adexchangeseller#report", # Kind this is, in this case adexchangeseller#report.
+    "rows": [ # The output rows of the report. Each row is a list of cells; one for each dimension in the request, followed by one for each metric in the request. The dimension cells contain strings, and the metric cells contain numbers.
+      [
+        "A String",
+      ],
+    ],
+    "warnings": [ # Any warnings associated with generation of the report.
+      "A String",
+    ],
+    "totals": [ # The totals of the report. This is the same length as any other row in the report; cells corresponding to dimension columns are empty.
+      "A String",
+    ],
+    "headers": [ # The header information of the columns requested in the report. This is a list of headers; one for each dimension in the request, followed by one for each metric in the request.
+      {
+        "currency": "A String", # The currency of this column. Only present if the header type is METRIC_CURRENCY.
+        "type": "A String", # The type of the header; one of DIMENSION, METRIC_TALLY, METRIC_RATIO, or METRIC_CURRENCY.
+        "name": "A String", # The name of the header.
+      },
+    ],
+    "totalMatchedRows": "A String", # The total number of rows matched by the report request. Fewer rows may be returned in the response due to being limited by the row count requested or the report row limit.
+    "averages": [ # The averages of the report. This is the same length as any other row in the report; cells corresponding to dimension columns are empty.
+      "A String",
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(pageToken=None, maxResults=None)</code>
+  <pre>List all saved reports in this Ad Exchange account.
+
+Args:
+  pageToken: string, A continuation token, used to page through saved reports. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+  maxResults: integer, The maximum number of saved reports to include in the response, used for paging.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Continuation token used to page through saved reports. To retrieve the next page of results, set the next request's "pageToken" value to this.
+    "items": [ # The saved reports returned in this list response.
+      {
+        "kind": "adexchangeseller#savedReport", # Kind of resource this is, in this case adexchangeseller#savedReport.
+        "id": "A String", # Unique identifier of this saved report.
+        "name": "A String", # This saved report's name.
+      },
+    ],
+    "kind": "adexchangeseller#savedReports", # Kind of list this is, in this case adexchangeseller#savedReports.
+    "etag": "A String", # 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/adexchangeseller_v1_1.urlchannels.html b/docs/dyn/adexchangeseller_v1_1.urlchannels.html
new file mode 100644
index 0000000..f1ee25a
--- /dev/null
+++ b/docs/dyn/adexchangeseller_v1_1.urlchannels.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="adexchangeseller_v1_1.html">Ad Exchange Seller API</a> . <a href="adexchangeseller_v1_1.urlchannels.html">urlchannels</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(adClientId, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">List all URL channels in the specified ad client for this Ad Exchange 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="list">list(adClientId, pageToken=None, maxResults=None)</code>
+  <pre>List all URL channels in the specified ad client for this Ad Exchange account.
+
+Args:
+  adClientId: string, Ad client for which to list URL channels. (required)
+  pageToken: string, A continuation token, used to page through URL channels. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+  maxResults: integer, The maximum number of URL channels to include in the response, used for paging.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Continuation token used to page through URL channels. To retrieve the next page of results, set the next request's "pageToken" value to this.
+    "items": [ # The URL channels returned in this list response.
+      {
+        "kind": "adexchangeseller#urlChannel", # Kind of resource this is, in this case adexchangeseller#urlChannel.
+        "id": "A String", # Unique identifier of this URL channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+        "urlPattern": "A String", # URL Pattern of this URL channel. Does not include "http://" or "https://". Example: www.example.com/home
+      },
+    ],
+    "kind": "adexchangeseller#urlChannels", # Kind of list this is, in this case adexchangeseller#urlChannels.
+    "etag": "A String", # 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/admin_reports_v1.activities.html b/docs/dyn/admin_reports_v1.activities.html
new file mode 100644
index 0000000..52cee37
--- /dev/null
+++ b/docs/dyn/admin_reports_v1.activities.html
@@ -0,0 +1,214 @@
+<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="admin_reports_v1.html">Admin Reports API</a> . <a href="admin_reports_v1.activities.html">activities</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(userKey, applicationName, eventName=None, actorIpAddress=None, pageToken=None, filters=None, maxResults=None, startTime=None, endTime=None, customerId=None)</a></code></p>
+<p class="firstline">Retrieves a list of activities for a specific customer and 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="#watch">watch(userKey, applicationName, body, startTime=None, filters=None, eventName=None, actorIpAddress=None, pageToken=None, maxResults=None, endTime=None, customerId=None)</a></code></p>
+<p class="firstline">Push changes to activities</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(userKey, applicationName, eventName=None, actorIpAddress=None, pageToken=None, filters=None, maxResults=None, startTime=None, endTime=None, customerId=None)</code>
+  <pre>Retrieves a list of activities for a specific customer and application.
+
+Args:
+  userKey: string, Represents the profile id or the user email for which the data should be filtered. When 'all' is specified as the userKey, it returns usageReports for all users. (required)
+  applicationName: string, Application name for which the events are to be retrieved. (required)
+  eventName: string, Name of the event being queried.
+  actorIpAddress: string, IP Address of host where the event was performed. Supports both IPv4 and IPv6 addresses.
+  pageToken: string, Token to specify next page.
+  filters: string, Event parameters in the form [parameter1 name][operator][parameter1 value],[parameter2 name][operator][parameter2 value],...
+  maxResults: integer, Number of activity records to be shown in each page.
+  startTime: string, Return events which occured at or after this time.
+  endTime: string, Return events which occured at or before this time.
+  customerId: string, Represents the customer for which the data is to be fetched.
+
+Returns:
+  An object of the form:
+
+    { # JSON template for a collection of activites.
+    "nextPageToken": "A String", # Token for retrieving the next page
+    "items": [ # Each record in read response.
+      { # JSON template for the activity resource.
+        "kind": "admin#reports#activity", # Kind of resource this is.
+        "ownerDomain": "A String", # Domain of source customer.
+        "actor": { # User doing the action.
+          "profileId": "A String", # Obfuscated user id of the user.
+          "email": "A String", # Email address of the user.
+          "key": "A String", # For OAuth 2LO API requests, consumer_key of the requestor.
+          "callerType": "A String", # User or OAuth 2LO request.
+        },
+        "id": { # Unique identifier for each activity record.
+          "applicationName": "A String", # Application name to which the event belongs.
+          "uniqueQualifier": "A String", # Unique qualifier if multiple events have the same time.
+          "customerId": "A String", # Obfuscated customer ID of the source customer.
+          "time": "A String", # Time of occurrence of the activity.
+        },
+        "etag": "A String", # ETag of the entry.
+        "ipAddress": "A String", # IP Address of the user doing the action.
+        "events": [ # Activity events.
+          {
+            "type": "A String", # Type of event.
+            "name": "A String", # Name of event.
+            "parameters": [ # Parameter value pairs for various applications.
+              {
+                "boolValue": True or False, # Boolean value of the parameter.
+                "intValue": "A String", # Integral value of the parameter.
+                "value": "A String", # String value of the parameter.
+                "name": "A String", # The name of the parameter.
+              },
+            ],
+          },
+        ],
+      },
+    ],
+    "kind": "admin#reports#activities", # Kind of list response this is.
+    "etag": "A String", # ETag of the resource.
+  }</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="watch">watch(userKey, applicationName, body, startTime=None, filters=None, eventName=None, actorIpAddress=None, pageToken=None, maxResults=None, endTime=None, customerId=None)</code>
+  <pre>Push changes to activities
+
+Args:
+  userKey: string, Represents the profile id or the user email for which the data should be filtered. When 'all' is specified as the userKey, it returns usageReports for all users. (required)
+  applicationName: string, Application name for which the events are to be retrieved. (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.
+  }
+
+  startTime: string, Return events which occured at or after this time.
+  filters: string, Event parameters in the form [parameter1 name][operator][parameter1 value],[parameter2 name][operator][parameter2 value],...
+  eventName: string, Name of the event being queried.
+  actorIpAddress: string, IP Address of host where the event was performed. Supports both IPv4 and IPv6 addresses.
+  pageToken: string, Token to specify next page.
+  maxResults: integer, Number of activity records to be shown in each page.
+  endTime: string, Return events which occured at or before this time.
+  customerId: string, Represents the customer for which the data is to be fetched.
+
+Returns:
+  An object of the form:
+
+    { # 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.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/admin_reports_v1.channels.html b/docs/dyn/admin_reports_v1.channels.html
new file mode 100644
index 0000000..ca2afc5
--- /dev/null
+++ b/docs/dyn/admin_reports_v1.channels.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="admin_reports_v1.html">Admin Reports API</a> . <a href="admin_reports_v1.channels.html">channels</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#stop">stop(body)</a></code></p>
+<p class="firstline">Stop watching resources through this channel</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="stop">stop(body)</code>
+  <pre>Stop watching resources through this channel
+
+Args:
+  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.
+  }
+
+</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/admin_reports_v1.customerUsageReports.html b/docs/dyn/admin_reports_v1.customerUsageReports.html
new file mode 100644
index 0000000..050bf0c
--- /dev/null
+++ b/docs/dyn/admin_reports_v1.customerUsageReports.html
@@ -0,0 +1,157 @@
+<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="admin_reports_v1.html">Admin Reports API</a> . <a href="admin_reports_v1.customerUsageReports.html">customerUsageReports</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(date, parameters=None, pageToken=None, customerId=None)</a></code></p>
+<p class="firstline">Retrieves a report which is a collection of properties / statistics for a specific customer.</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>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(date, parameters=None, pageToken=None, customerId=None)</code>
+  <pre>Retrieves a report which is a collection of properties / statistics for a specific customer.
+
+Args:
+  date: string, Represents the date in yyyy-mm-dd format for which the data is to be fetched. (required)
+  parameters: string, Represents the application name, parameter name pairs to fetch in csv as app_name1:param_name1, app_name2:param_name2.
+  pageToken: string, Token to specify next page.
+  customerId: string, Represents the customer for which the data is to be fetched.
+
+Returns:
+  An object of the form:
+
+    { # JSON template for a collection of usage reports.
+    "nextPageToken": "A String", # Token for retrieving the next page
+    "kind": "admin#reports#usageReports", # The kind of object.
+    "etag": "A String", # ETag of the resource.
+    "usageReports": [ # Various application parameter records.
+      { # JSON template for a usage report.
+        "date": "A String", # The date to which the record belongs.
+        "kind": "admin#reports#usageReport", # The kind of object.
+        "etag": "A String", # ETag of the resource.
+        "parameters": [ # Parameter value pairs for various applications.
+          {
+            "msgValue": [ # Nested message value of the parameter.
+              {
+                "a_key": "",
+              },
+            ],
+            "name": "A String", # The name of the parameter.
+            "intValue": "A String", # Integral value of the parameter.
+            "boolValue": True or False, # Boolean value of the parameter.
+            "datetimeValue": "A String", # RFC 3339 formatted value of the parameter.
+            "stringValue": "A String", # String value of the parameter.
+          },
+        ],
+        "entity": { # Information about the type of the item.
+          "profileId": "A String", # Obfuscated user id for the record.
+          "userEmail": "A String", # user's email.
+          "type": "A String", # The type of item, can be a customer or user.
+          "customerId": "A String", # Obfuscated customer id for the record.
+        },
+      },
+    ],
+    "warnings": [ # Warnings if any.
+      {
+        "message": "A String", # Human readable message for the warning.
+        "code": "A String", # Machine readable code / warning type.
+        "data": [ # Key-Value pairs to give detailed information on the warning.
+          {
+            "value": "A String", # Value associated with a key-value pair to give detailed information on the warning.
+            "key": "A String", # Key associated with a key-value pair to give detailed information on the warning.
+          },
+        ],
+      },
+    ],
+  }</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>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/admin_reports_v1.html b/docs/dyn/admin_reports_v1.html
new file mode 100644
index 0000000..a0a2b49
--- /dev/null
+++ b/docs/dyn/admin_reports_v1.html
@@ -0,0 +1,97 @@
+<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="admin_reports_v1.html">Admin Reports API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="admin_reports_v1.activities.html">activities()</a></code>
+</p>
+<p class="firstline">Returns the activities Resource.</p>
+
+<p class="toc_element">
+  <code><a href="admin_reports_v1.channels.html">channels()</a></code>
+</p>
+<p class="firstline">Returns the channels Resource.</p>
+
+<p class="toc_element">
+  <code><a href="admin_reports_v1.customerUsageReports.html">customerUsageReports()</a></code>
+</p>
+<p class="firstline">Returns the customerUsageReports Resource.</p>
+
+<p class="toc_element">
+  <code><a href="admin_reports_v1.userUsageReport.html">userUsageReport()</a></code>
+</p>
+<p class="firstline">Returns the userUsageReport Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/admin_reports_v1.userUsageReport.html b/docs/dyn/admin_reports_v1.userUsageReport.html
new file mode 100644
index 0000000..732a1e4
--- /dev/null
+++ b/docs/dyn/admin_reports_v1.userUsageReport.html
@@ -0,0 +1,160 @@
+<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="admin_reports_v1.html">Admin Reports API</a> . <a href="admin_reports_v1.userUsageReport.html">userUsageReport</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(userKey, date, parameters=None, pageToken=None, filters=None, maxResults=None, customerId=None)</a></code></p>
+<p class="firstline">Retrieves a report which is a collection of properties / statistics for a set of users.</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>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(userKey, date, parameters=None, pageToken=None, filters=None, maxResults=None, customerId=None)</code>
+  <pre>Retrieves a report which is a collection of properties / statistics for a set of users.
+
+Args:
+  userKey: string, Represents the profile id or the user email for which the data should be filtered. (required)
+  date: string, Represents the date in yyyy-mm-dd format for which the data is to be fetched. (required)
+  parameters: string, Represents the application name, parameter name pairs to fetch in csv as app_name1:param_name1, app_name2:param_name2.
+  pageToken: string, Token to specify next page.
+  filters: string, Represents the set of filters including parameter operator value.
+  maxResults: integer, Maximum number of results to return. Maximum allowed is 1000
+  customerId: string, Represents the customer for which the data is to be fetched.
+
+Returns:
+  An object of the form:
+
+    { # JSON template for a collection of usage reports.
+    "nextPageToken": "A String", # Token for retrieving the next page
+    "kind": "admin#reports#usageReports", # The kind of object.
+    "etag": "A String", # ETag of the resource.
+    "usageReports": [ # Various application parameter records.
+      { # JSON template for a usage report.
+        "date": "A String", # The date to which the record belongs.
+        "kind": "admin#reports#usageReport", # The kind of object.
+        "etag": "A String", # ETag of the resource.
+        "parameters": [ # Parameter value pairs for various applications.
+          {
+            "msgValue": [ # Nested message value of the parameter.
+              {
+                "a_key": "",
+              },
+            ],
+            "name": "A String", # The name of the parameter.
+            "intValue": "A String", # Integral value of the parameter.
+            "boolValue": True or False, # Boolean value of the parameter.
+            "datetimeValue": "A String", # RFC 3339 formatted value of the parameter.
+            "stringValue": "A String", # String value of the parameter.
+          },
+        ],
+        "entity": { # Information about the type of the item.
+          "profileId": "A String", # Obfuscated user id for the record.
+          "userEmail": "A String", # user's email.
+          "type": "A String", # The type of item, can be a customer or user.
+          "customerId": "A String", # Obfuscated customer id for the record.
+        },
+      },
+    ],
+    "warnings": [ # Warnings if any.
+      {
+        "message": "A String", # Human readable message for the warning.
+        "code": "A String", # Machine readable code / warning type.
+        "data": [ # Key-Value pairs to give detailed information on the warning.
+          {
+            "value": "A String", # Value associated with a key-value pair to give detailed information on the warning.
+            "key": "A String", # Key associated with a key-value pair to give detailed information on the warning.
+          },
+        ],
+      },
+    ],
+  }</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>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/adsense_v1_4.accounts.adclients.html b/docs/dyn/adsense_v1_4.accounts.adclients.html
new file mode 100644
index 0000000..08a09ba
--- /dev/null
+++ b/docs/dyn/adsense_v1_4.accounts.adclients.html
@@ -0,0 +1,127 @@
+<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="adsense_v1_4.html">AdSense Management API</a> . <a href="adsense_v1_4.accounts.html">accounts</a> . <a href="adsense_v1_4.accounts.adclients.html">adclients</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(accountId, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">List all ad clients in the specified 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="list">list(accountId, pageToken=None, maxResults=None)</code>
+  <pre>List all ad clients in the specified account.
+
+Args:
+  accountId: string, Account for which to list ad clients. (required)
+  pageToken: string, A continuation token, used to page through ad clients. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+  maxResults: integer, The maximum number of ad clients to include in the response, used for paging.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Continuation token used to page through ad clients. To retrieve the next page of results, set the next request's "pageToken" value to this.
+    "items": [ # The ad clients returned in this list response.
+      {
+        "productCode": "A String", # This ad client's product code, which corresponds to the PRODUCT_CODE report dimension.
+        "kind": "adsense#adClient", # Kind of resource this is, in this case adsense#adClient.
+        "supportsReporting": True or False, # Whether this ad client supports being reported on.
+        "arcReviewMode": "A String", # ARC review mode this ad client is in. Empty if the client is not opted in to ARC. Possible values: POST_REVIEW, AUTOMATIC_PRE_REVIEW.
+        "arcOptIn": True or False, # Whether this ad client is opted in to ARC.
+        "id": "A String", # Unique identifier of this ad client.
+      },
+    ],
+    "kind": "adsense#adClients", # Kind of list this is, in this case adsense#adClients.
+    "etag": "A String", # 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/adsense_v1_4.accounts.adunits.customchannels.html b/docs/dyn/adsense_v1_4.accounts.adunits.customchannels.html
new file mode 100644
index 0000000..5851d9a
--- /dev/null
+++ b/docs/dyn/adsense_v1_4.accounts.adunits.customchannels.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="adsense_v1_4.html">AdSense Management API</a> . <a href="adsense_v1_4.accounts.html">accounts</a> . <a href="adsense_v1_4.accounts.adunits.html">adunits</a> . <a href="adsense_v1_4.accounts.adunits.customchannels.html">customchannels</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(accountId, adClientId, adUnitId, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">List all custom channels which the specified ad unit belongs to.</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(accountId, adClientId, adUnitId, pageToken=None, maxResults=None)</code>
+  <pre>List all custom channels which the specified ad unit belongs to.
+
+Args:
+  accountId: string, Account to which the ad client belongs. (required)
+  adClientId: string, Ad client which contains the ad unit. (required)
+  adUnitId: string, Ad unit for which to list custom channels. (required)
+  pageToken: string, A continuation token, used to page through custom channels. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+  maxResults: integer, The maximum number of custom channels to include in the response, used for paging.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Continuation token used to page through custom channels. To retrieve the next page of results, set the next request's "pageToken" value to this.
+    "items": [ # The custom channels returned in this list response.
+      {
+        "kind": "adsense#customChannel", # Kind of resource this is, in this case adsense#customChannel.
+        "code": "A String", # Code of this custom channel, not necessarily unique across ad clients.
+        "targetingInfo": { # The targeting information of this custom channel, if activated.
+          "location": "A String", # The locations in which ads appear. (Only valid for content and mobile content ads). Acceptable values for content ads are: TOP_LEFT, TOP_CENTER, TOP_RIGHT, MIDDLE_LEFT, MIDDLE_CENTER, MIDDLE_RIGHT, BOTTOM_LEFT, BOTTOM_CENTER, BOTTOM_RIGHT, MULTIPLE_LOCATIONS. Acceptable values for mobile content ads are: TOP, MIDDLE, BOTTOM, MULTIPLE_LOCATIONS.
+          "adsAppearOn": "A String", # The name used to describe this channel externally.
+          "siteLanguage": "A String", # The language of the sites ads will be displayed on.
+          "description": "A String", # The external description of the channel.
+        },
+        "id": "A String", # Unique identifier of this custom channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+        "name": "A String", # Name of this custom channel.
+      },
+    ],
+    "kind": "adsense#customChannels", # Kind of list this is, in this case adsense#customChannels.
+    "etag": "A String", # 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/adsense_v1_4.accounts.adunits.html b/docs/dyn/adsense_v1_4.accounts.adunits.html
new file mode 100644
index 0000000..4395b0c
--- /dev/null
+++ b/docs/dyn/adsense_v1_4.accounts.adunits.html
@@ -0,0 +1,262 @@
+<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="adsense_v1_4.html">AdSense Management API</a> . <a href="adsense_v1_4.accounts.html">accounts</a> . <a href="adsense_v1_4.accounts.adunits.html">adunits</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="adsense_v1_4.accounts.adunits.customchannels.html">customchannels()</a></code>
+</p>
+<p class="firstline">Returns the customchannels Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#get">get(accountId, adClientId, adUnitId)</a></code></p>
+<p class="firstline">Gets the specified ad unit in the specified ad client for the specified account.</p>
+<p class="toc_element">
+  <code><a href="#getAdCode">getAdCode(accountId, adClientId, adUnitId)</a></code></p>
+<p class="firstline">Get ad code for the specified ad unit.</p>
+<p class="toc_element">
+  <code><a href="#list">list(accountId, adClientId, pageToken=None, includeInactive=None, maxResults=None)</a></code></p>
+<p class="firstline">List all ad units in the specified ad client for the specified 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="get">get(accountId, adClientId, adUnitId)</code>
+  <pre>Gets the specified ad unit in the specified ad client for the specified account.
+
+Args:
+  accountId: string, Account to which the ad client belongs. (required)
+  adClientId: string, Ad client for which to get the ad unit. (required)
+  adUnitId: string, Ad unit to retrieve. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "status": "A String", # Status of this ad unit. Possible values are:
+        # NEW: Indicates that the ad unit was created within the last seven days and does not yet have any activity associated with it.
+        #
+        # ACTIVE: Indicates that there has been activity on this ad unit in the last seven days.
+        #
+        # INACTIVE: Indicates that there has been no activity on this ad unit in the last seven days.
+    "kind": "adsense#adUnit", # Kind of resource this is, in this case adsense#adUnit.
+    "code": "A String", # Identity code of this ad unit, not necessarily unique across ad clients.
+    "name": "A String", # Name of this ad unit.
+    "feedAdsSettings": { # Settings specific to feed ads (AFF).
+      "minimumWordCount": 42, # The minimum length an entry should be in order to have attached ads.
+      "frequency": 42, # The frequency at which ads should appear in the feed (i.e. every N entries).
+      "adPosition": "A String", # The position of the ads relative to the feed entries.
+      "type": "A String", # The type of ads which should appear.
+    },
+    "savedStyleId": "A String", # ID of the saved ad style which holds this ad unit's style information.
+    "contentAdsSettings": { # Settings specific to content ads (AFC) and highend mobile content ads (AFMC).
+      "type": "A String", # Type of this ad unit.
+      "backupOption": { # The backup option to be used in instances where no ad is available.
+        "color": "A String", # Color to use when type is set to COLOR.
+        "url": "A String", # URL to use when type is set to URL.
+        "type": "A String", # Type of the backup option. Possible values are BLANK, COLOR and URL.
+      },
+      "size": "A String", # Size of this ad unit.
+    },
+    "id": "A String", # Unique identifier of this ad unit. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+    "mobileContentAdsSettings": { # Settings specific to WAP mobile content ads (AFMC).
+      "scriptingLanguage": "A String", # The scripting language to use for this ad unit.
+      "type": "A String", # Type of this ad unit.
+      "markupLanguage": "A String", # The markup language to use for this ad unit.
+      "size": "A String", # Size of this ad unit.
+    },
+    "customStyle": { # Custom style information specific to this ad unit.
+      "corners": "A String", # The style of the corners in the ad.
+      "colors": { # The colors which are included in the style. These are represented as six hexadecimal characters, similar to HTML color codes, but without the leading hash.
+        "url": "A String", # The color of the ad url.
+        "text": "A String", # The color of the ad text.
+        "border": "A String", # The color of the ad border.
+        "background": "A String", # The color of the ad background.
+        "title": "A String", # The color of the ad title.
+      },
+      "font": { # The font which is included in the style.
+        "family": "A String", # The family of the font.
+        "size": "A String", # The size of the font.
+      },
+      "kind": "adsense#adStyle", # Kind this is, in this case adsense#adStyle.
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getAdCode">getAdCode(accountId, adClientId, adUnitId)</code>
+  <pre>Get ad code for the specified ad unit.
+
+Args:
+  accountId: string, Account which contains the ad client. (required)
+  adClientId: string, Ad client with contains the ad unit. (required)
+  adUnitId: string, Ad unit to get the code for. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "adCode": "A String", # The ad code snippet.
+    "kind": "adsense#adCode", # Kind this is, in this case adsense#adCode.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(accountId, adClientId, pageToken=None, includeInactive=None, maxResults=None)</code>
+  <pre>List all ad units in the specified ad client for the specified account.
+
+Args:
+  accountId: string, Account to which the ad client belongs. (required)
+  adClientId: string, Ad client for which to list ad units. (required)
+  pageToken: string, A continuation token, used to page through ad units. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+  includeInactive: boolean, Whether to include inactive ad units. Default: true.
+  maxResults: integer, The maximum number of ad units to include in the response, used for paging.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Continuation token used to page through ad units. To retrieve the next page of results, set the next request's "pageToken" value to this.
+    "items": [ # The ad units returned in this list response.
+      {
+        "status": "A String", # Status of this ad unit. Possible values are:
+            # NEW: Indicates that the ad unit was created within the last seven days and does not yet have any activity associated with it.
+            #
+            # ACTIVE: Indicates that there has been activity on this ad unit in the last seven days.
+            #
+            # INACTIVE: Indicates that there has been no activity on this ad unit in the last seven days.
+        "kind": "adsense#adUnit", # Kind of resource this is, in this case adsense#adUnit.
+        "code": "A String", # Identity code of this ad unit, not necessarily unique across ad clients.
+        "name": "A String", # Name of this ad unit.
+        "feedAdsSettings": { # Settings specific to feed ads (AFF).
+          "minimumWordCount": 42, # The minimum length an entry should be in order to have attached ads.
+          "frequency": 42, # The frequency at which ads should appear in the feed (i.e. every N entries).
+          "adPosition": "A String", # The position of the ads relative to the feed entries.
+          "type": "A String", # The type of ads which should appear.
+        },
+        "savedStyleId": "A String", # ID of the saved ad style which holds this ad unit's style information.
+        "contentAdsSettings": { # Settings specific to content ads (AFC) and highend mobile content ads (AFMC).
+          "type": "A String", # Type of this ad unit.
+          "backupOption": { # The backup option to be used in instances where no ad is available.
+            "color": "A String", # Color to use when type is set to COLOR.
+            "url": "A String", # URL to use when type is set to URL.
+            "type": "A String", # Type of the backup option. Possible values are BLANK, COLOR and URL.
+          },
+          "size": "A String", # Size of this ad unit.
+        },
+        "id": "A String", # Unique identifier of this ad unit. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+        "mobileContentAdsSettings": { # Settings specific to WAP mobile content ads (AFMC).
+          "scriptingLanguage": "A String", # The scripting language to use for this ad unit.
+          "type": "A String", # Type of this ad unit.
+          "markupLanguage": "A String", # The markup language to use for this ad unit.
+          "size": "A String", # Size of this ad unit.
+        },
+        "customStyle": { # Custom style information specific to this ad unit.
+          "corners": "A String", # The style of the corners in the ad.
+          "colors": { # The colors which are included in the style. These are represented as six hexadecimal characters, similar to HTML color codes, but without the leading hash.
+            "url": "A String", # The color of the ad url.
+            "text": "A String", # The color of the ad text.
+            "border": "A String", # The color of the ad border.
+            "background": "A String", # The color of the ad background.
+            "title": "A String", # The color of the ad title.
+          },
+          "font": { # The font which is included in the style.
+            "family": "A String", # The family of the font.
+            "size": "A String", # The size of the font.
+          },
+          "kind": "adsense#adStyle", # Kind this is, in this case adsense#adStyle.
+        },
+      },
+    ],
+    "kind": "adsense#adUnits", # Kind of list this is, in this case adsense#adUnits.
+    "etag": "A String", # 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/adsense_v1_4.accounts.alerts.html b/docs/dyn/adsense_v1_4.accounts.alerts.html
new file mode 100644
index 0000000..9de3b0c
--- /dev/null
+++ b/docs/dyn/adsense_v1_4.accounts.alerts.html
@@ -0,0 +1,120 @@
+<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="adsense_v1_4.html">AdSense Management API</a> . <a href="adsense_v1_4.accounts.html">accounts</a> . <a href="adsense_v1_4.accounts.alerts.html">alerts</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(accountId, alertId)</a></code></p>
+<p class="firstline">Dismiss (delete) the specified alert from the specified publisher AdSense account.</p>
+<p class="toc_element">
+  <code><a href="#list">list(accountId, locale=None)</a></code></p>
+<p class="firstline">List the alerts for the specified AdSense account.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(accountId, alertId)</code>
+  <pre>Dismiss (delete) the specified alert from the specified publisher AdSense account.
+
+Args:
+  accountId: string, Account which contains the ad unit. (required)
+  alertId: string, Alert to delete. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(accountId, locale=None)</code>
+  <pre>List the alerts for the specified AdSense account.
+
+Args:
+  accountId: string, Account for which to retrieve the alerts. (required)
+  locale: string, The locale to use for translating alert messages. The account locale will be used if this is not supplied. The AdSense default (English) will be used if the supplied locale is invalid or unsupported.
+
+Returns:
+  An object of the form:
+
+    {
+    "items": [ # The alerts returned in this list response.
+      {
+        "kind": "adsense#alert", # Kind of resource this is, in this case adsense#alert.
+        "severity": "A String", # Severity of this alert. Possible values: INFO, WARNING, SEVERE.
+        "isDismissible": True or False, # Whether this alert can be dismissed.
+        "message": "A String", # The localized alert message.
+        "type": "A String", # Type of this alert. Possible values: SELF_HOLD, MIGRATED_TO_BILLING3, ADDRESS_PIN_VERIFICATION, PHONE_PIN_VERIFICATION, CORPORATE_ENTITY, GRAYLISTED_PUBLISHER, API_HOLD.
+        "id": "A String", # Unique identifier of this alert. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+      },
+    ],
+    "kind": "adsense#alerts", # Kind of list this is, in this case adsense#alerts.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/adsense_v1_4.accounts.customchannels.adunits.html b/docs/dyn/adsense_v1_4.accounts.customchannels.adunits.html
new file mode 100644
index 0000000..ab720d6
--- /dev/null
+++ b/docs/dyn/adsense_v1_4.accounts.customchannels.adunits.html
@@ -0,0 +1,171 @@
+<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="adsense_v1_4.html">AdSense Management API</a> . <a href="adsense_v1_4.accounts.html">accounts</a> . <a href="adsense_v1_4.accounts.customchannels.html">customchannels</a> . <a href="adsense_v1_4.accounts.customchannels.adunits.html">adunits</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(accountId, adClientId, customChannelId, pageToken=None, includeInactive=None, maxResults=None)</a></code></p>
+<p class="firstline">List all ad units in the specified custom channel.</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(accountId, adClientId, customChannelId, pageToken=None, includeInactive=None, maxResults=None)</code>
+  <pre>List all ad units in the specified custom channel.
+
+Args:
+  accountId: string, Account to which the ad client belongs. (required)
+  adClientId: string, Ad client which contains the custom channel. (required)
+  customChannelId: string, Custom channel for which to list ad units. (required)
+  pageToken: string, A continuation token, used to page through ad units. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+  includeInactive: boolean, Whether to include inactive ad units. Default: true.
+  maxResults: integer, The maximum number of ad units to include in the response, used for paging.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Continuation token used to page through ad units. To retrieve the next page of results, set the next request's "pageToken" value to this.
+    "items": [ # The ad units returned in this list response.
+      {
+        "status": "A String", # Status of this ad unit. Possible values are:
+            # NEW: Indicates that the ad unit was created within the last seven days and does not yet have any activity associated with it.
+            #
+            # ACTIVE: Indicates that there has been activity on this ad unit in the last seven days.
+            #
+            # INACTIVE: Indicates that there has been no activity on this ad unit in the last seven days.
+        "kind": "adsense#adUnit", # Kind of resource this is, in this case adsense#adUnit.
+        "code": "A String", # Identity code of this ad unit, not necessarily unique across ad clients.
+        "name": "A String", # Name of this ad unit.
+        "feedAdsSettings": { # Settings specific to feed ads (AFF).
+          "minimumWordCount": 42, # The minimum length an entry should be in order to have attached ads.
+          "frequency": 42, # The frequency at which ads should appear in the feed (i.e. every N entries).
+          "adPosition": "A String", # The position of the ads relative to the feed entries.
+          "type": "A String", # The type of ads which should appear.
+        },
+        "savedStyleId": "A String", # ID of the saved ad style which holds this ad unit's style information.
+        "contentAdsSettings": { # Settings specific to content ads (AFC) and highend mobile content ads (AFMC).
+          "type": "A String", # Type of this ad unit.
+          "backupOption": { # The backup option to be used in instances where no ad is available.
+            "color": "A String", # Color to use when type is set to COLOR.
+            "url": "A String", # URL to use when type is set to URL.
+            "type": "A String", # Type of the backup option. Possible values are BLANK, COLOR and URL.
+          },
+          "size": "A String", # Size of this ad unit.
+        },
+        "id": "A String", # Unique identifier of this ad unit. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+        "mobileContentAdsSettings": { # Settings specific to WAP mobile content ads (AFMC).
+          "scriptingLanguage": "A String", # The scripting language to use for this ad unit.
+          "type": "A String", # Type of this ad unit.
+          "markupLanguage": "A String", # The markup language to use for this ad unit.
+          "size": "A String", # Size of this ad unit.
+        },
+        "customStyle": { # Custom style information specific to this ad unit.
+          "corners": "A String", # The style of the corners in the ad.
+          "colors": { # The colors which are included in the style. These are represented as six hexadecimal characters, similar to HTML color codes, but without the leading hash.
+            "url": "A String", # The color of the ad url.
+            "text": "A String", # The color of the ad text.
+            "border": "A String", # The color of the ad border.
+            "background": "A String", # The color of the ad background.
+            "title": "A String", # The color of the ad title.
+          },
+          "font": { # The font which is included in the style.
+            "family": "A String", # The family of the font.
+            "size": "A String", # The size of the font.
+          },
+          "kind": "adsense#adStyle", # Kind this is, in this case adsense#adStyle.
+        },
+      },
+    ],
+    "kind": "adsense#adUnits", # Kind of list this is, in this case adsense#adUnits.
+    "etag": "A String", # 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/adsense_v1_4.accounts.customchannels.html b/docs/dyn/adsense_v1_4.accounts.customchannels.html
new file mode 100644
index 0000000..4c2dde5
--- /dev/null
+++ b/docs/dyn/adsense_v1_4.accounts.customchannels.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="adsense_v1_4.html">AdSense Management API</a> . <a href="adsense_v1_4.accounts.html">accounts</a> . <a href="adsense_v1_4.accounts.customchannels.html">customchannels</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="adsense_v1_4.accounts.customchannels.adunits.html">adunits()</a></code>
+</p>
+<p class="firstline">Returns the adunits Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#get">get(accountId, adClientId, customChannelId)</a></code></p>
+<p class="firstline">Get the specified custom channel from the specified ad client for the specified account.</p>
+<p class="toc_element">
+  <code><a href="#list">list(accountId, adClientId, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">List all custom channels in the specified ad client for the specified 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="get">get(accountId, adClientId, customChannelId)</code>
+  <pre>Get the specified custom channel from the specified ad client for the specified account.
+
+Args:
+  accountId: string, Account to which the ad client belongs. (required)
+  adClientId: string, Ad client which contains the custom channel. (required)
+  customChannelId: string, Custom channel to retrieve. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "adsense#customChannel", # Kind of resource this is, in this case adsense#customChannel.
+    "code": "A String", # Code of this custom channel, not necessarily unique across ad clients.
+    "targetingInfo": { # The targeting information of this custom channel, if activated.
+      "location": "A String", # The locations in which ads appear. (Only valid for content and mobile content ads). Acceptable values for content ads are: TOP_LEFT, TOP_CENTER, TOP_RIGHT, MIDDLE_LEFT, MIDDLE_CENTER, MIDDLE_RIGHT, BOTTOM_LEFT, BOTTOM_CENTER, BOTTOM_RIGHT, MULTIPLE_LOCATIONS. Acceptable values for mobile content ads are: TOP, MIDDLE, BOTTOM, MULTIPLE_LOCATIONS.
+      "adsAppearOn": "A String", # The name used to describe this channel externally.
+      "siteLanguage": "A String", # The language of the sites ads will be displayed on.
+      "description": "A String", # The external description of the channel.
+    },
+    "id": "A String", # Unique identifier of this custom channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+    "name": "A String", # Name of this custom channel.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(accountId, adClientId, pageToken=None, maxResults=None)</code>
+  <pre>List all custom channels in the specified ad client for the specified account.
+
+Args:
+  accountId: string, Account to which the ad client belongs. (required)
+  adClientId: string, Ad client for which to list custom channels. (required)
+  pageToken: string, A continuation token, used to page through custom channels. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+  maxResults: integer, The maximum number of custom channels to include in the response, used for paging.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Continuation token used to page through custom channels. To retrieve the next page of results, set the next request's "pageToken" value to this.
+    "items": [ # The custom channels returned in this list response.
+      {
+        "kind": "adsense#customChannel", # Kind of resource this is, in this case adsense#customChannel.
+        "code": "A String", # Code of this custom channel, not necessarily unique across ad clients.
+        "targetingInfo": { # The targeting information of this custom channel, if activated.
+          "location": "A String", # The locations in which ads appear. (Only valid for content and mobile content ads). Acceptable values for content ads are: TOP_LEFT, TOP_CENTER, TOP_RIGHT, MIDDLE_LEFT, MIDDLE_CENTER, MIDDLE_RIGHT, BOTTOM_LEFT, BOTTOM_CENTER, BOTTOM_RIGHT, MULTIPLE_LOCATIONS. Acceptable values for mobile content ads are: TOP, MIDDLE, BOTTOM, MULTIPLE_LOCATIONS.
+          "adsAppearOn": "A String", # The name used to describe this channel externally.
+          "siteLanguage": "A String", # The language of the sites ads will be displayed on.
+          "description": "A String", # The external description of the channel.
+        },
+        "id": "A String", # Unique identifier of this custom channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+        "name": "A String", # Name of this custom channel.
+      },
+    ],
+    "kind": "adsense#customChannels", # Kind of list this is, in this case adsense#customChannels.
+    "etag": "A String", # 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/adsense_v1_4.accounts.html b/docs/dyn/adsense_v1_4.accounts.html
new file mode 100644
index 0000000..a1f0afa
--- /dev/null
+++ b/docs/dyn/adsense_v1_4.accounts.html
@@ -0,0 +1,194 @@
+<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="adsense_v1_4.html">AdSense Management API</a> . <a href="adsense_v1_4.accounts.html">accounts</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="adsense_v1_4.accounts.adclients.html">adclients()</a></code>
+</p>
+<p class="firstline">Returns the adclients Resource.</p>
+
+<p class="toc_element">
+  <code><a href="adsense_v1_4.accounts.adunits.html">adunits()</a></code>
+</p>
+<p class="firstline">Returns the adunits Resource.</p>
+
+<p class="toc_element">
+  <code><a href="adsense_v1_4.accounts.alerts.html">alerts()</a></code>
+</p>
+<p class="firstline">Returns the alerts Resource.</p>
+
+<p class="toc_element">
+  <code><a href="adsense_v1_4.accounts.customchannels.html">customchannels()</a></code>
+</p>
+<p class="firstline">Returns the customchannels Resource.</p>
+
+<p class="toc_element">
+  <code><a href="adsense_v1_4.accounts.payments.html">payments()</a></code>
+</p>
+<p class="firstline">Returns the payments Resource.</p>
+
+<p class="toc_element">
+  <code><a href="adsense_v1_4.accounts.reports.html">reports()</a></code>
+</p>
+<p class="firstline">Returns the reports Resource.</p>
+
+<p class="toc_element">
+  <code><a href="adsense_v1_4.accounts.savedadstyles.html">savedadstyles()</a></code>
+</p>
+<p class="firstline">Returns the savedadstyles Resource.</p>
+
+<p class="toc_element">
+  <code><a href="adsense_v1_4.accounts.urlchannels.html">urlchannels()</a></code>
+</p>
+<p class="firstline">Returns the urlchannels Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#get">get(accountId, tree=None)</a></code></p>
+<p class="firstline">Get information about the selected AdSense account.</p>
+<p class="toc_element">
+  <code><a href="#list">list(pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">List all accounts available to this AdSense 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="get">get(accountId, tree=None)</code>
+  <pre>Get information about the selected AdSense account.
+
+Args:
+  accountId: string, Account to get information about. (required)
+  tree: boolean, Whether the tree of sub accounts should be returned.
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "adsense#account", # Kind of resource this is, in this case adsense#account.
+    "premium": True or False, # Whether this account is premium.
+    "name": "A String", # Name of this account.
+    "subAccounts": [ # Sub accounts of the this account.
+      # Object with schema name: Account
+    ],
+    "timezone": "A String", # AdSense timezone of this account.
+    "id": "A String", # Unique identifier of this account.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(pageToken=None, maxResults=None)</code>
+  <pre>List all accounts available to this AdSense account.
+
+Args:
+  pageToken: string, A continuation token, used to page through accounts. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+  maxResults: integer, The maximum number of accounts to include in the response, used for paging.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Continuation token used to page through accounts. To retrieve the next page of results, set the next request's "pageToken" value to this.
+    "items": [ # The accounts returned in this list response.
+      {
+        "kind": "adsense#account", # Kind of resource this is, in this case adsense#account.
+        "premium": True or False, # Whether this account is premium.
+        "name": "A String", # Name of this account.
+        "subAccounts": [ # Sub accounts of the this account.
+          # Object with schema name: Account
+        ],
+        "timezone": "A String", # AdSense timezone of this account.
+        "id": "A String", # Unique identifier of this account.
+      },
+    ],
+    "kind": "adsense#accounts", # Kind of list this is, in this case adsense#accounts.
+    "etag": "A String", # 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/adsense_v1_4.accounts.payments.html b/docs/dyn/adsense_v1_4.accounts.payments.html
new file mode 100644
index 0000000..ab0f890
--- /dev/null
+++ b/docs/dyn/adsense_v1_4.accounts.payments.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="adsense_v1_4.html">AdSense Management API</a> . <a href="adsense_v1_4.accounts.html">accounts</a> . <a href="adsense_v1_4.accounts.payments.html">payments</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(accountId)</a></code></p>
+<p class="firstline">List the payments for the specified AdSense account.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(accountId)</code>
+  <pre>List the payments for the specified AdSense account.
+
+Args:
+  accountId: string, Account for which to retrieve the payments. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "items": [ # The list of Payments for the account. One or both of a) the account's most recent payment; and b) the account's upcoming payment.
+      {
+        "paymentAmountCurrencyCode": "A String", # The currency code for the amount to be paid.
+        "kind": "adsense#payment", # Kind of resource this is, in this case adsense#payment.
+        "paymentAmount": "A String", # The amount to be paid.
+        "id": "A String", # Unique identifier of this Payment.
+        "paymentDate": "A String", # The date this payment was/will be credited to the user, or none if the payment threshold has not been met.
+      },
+    ],
+    "kind": "adsense#payments", # Kind of list this is, in this case adsense#payments.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/adsense_v1_4.accounts.reports.html b/docs/dyn/adsense_v1_4.accounts.reports.html
new file mode 100644
index 0000000..941a51f
--- /dev/null
+++ b/docs/dyn/adsense_v1_4.accounts.reports.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="adsense_v1_4.html">AdSense Management API</a> . <a href="adsense_v1_4.accounts.html">accounts</a> . <a href="adsense_v1_4.accounts.reports.html">reports</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="adsense_v1_4.accounts.reports.saved.html">saved()</a></code>
+</p>
+<p class="firstline">Returns the saved Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#generate">generate(accountId, startDate, endDate, locale=None, metric=None, currency=None, startIndex=None, useTimezoneReporting=None, sort=None, maxResults=None, filter=None, dimension=None)</a></code></p>
+<p class="firstline">Generate an AdSense report based on the report request sent in the query parameters. Returns the result as JSON; to retrieve output in CSV format specify "alt=csv" as a query parameter.</p>
+<p class="toc_element">
+  <code><a href="#generate_media">generate_media(accountId, startDate, endDate, locale=None, metric=None, currency=None, startIndex=None, useTimezoneReporting=None, sort=None, maxResults=None, filter=None, dimension=None)</a></code></p>
+<p class="firstline">Generate an AdSense report based on the report request sent in the query parameters. Returns the result as JSON; to retrieve output in CSV format specify "alt=csv" as a query parameter.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="generate">generate(accountId, startDate, endDate, locale=None, metric=None, currency=None, startIndex=None, useTimezoneReporting=None, sort=None, maxResults=None, filter=None, dimension=None)</code>
+  <pre>Generate an AdSense report based on the report request sent in the query parameters. Returns the result as JSON; to retrieve output in CSV format specify "alt=csv" as a query parameter.
+
+Args:
+  accountId: string, Account upon which to report. (required)
+  startDate: string, Start of the date range to report on in "YYYY-MM-DD" format, inclusive. (required)
+  endDate: string, End of the date range to report on in "YYYY-MM-DD" format, inclusive. (required)
+  locale: string, Optional locale to use for translating report output to a local language. Defaults to "en_US" if not specified.
+  metric: string, Numeric columns to include in the report. (repeated)
+  currency: string, Optional currency to use when reporting on monetary metrics. Defaults to the account's currency if not set.
+  startIndex: integer, Index of the first row of report data to return.
+  useTimezoneReporting: boolean, Whether the report should be generated in the AdSense account's local timezone. If false default PST/PDT timezone will be used.
+  sort: string, The name of a dimension or metric to sort the resulting report on, optionally prefixed with "+" to sort ascending or "-" to sort descending. If no prefix is specified, the column is sorted ascending. (repeated)
+  maxResults: integer, The maximum number of rows of report data to return.
+  filter: string, Filters to be run on the report. (repeated)
+  dimension: string, Dimensions to base the report on. (repeated)
+
+Returns:
+  An object of the form:
+
+    {
+    "startDate": "A String", # The requested start date in yyyy-mm-dd format.
+    "kind": "adsense#report", # Kind this is, in this case adsense#report.
+    "rows": [ # The output rows of the report. Each row is a list of cells; one for each dimension in the request, followed by one for each metric in the request. The dimension cells contain strings, and the metric cells contain numbers.
+      [
+        "A String",
+      ],
+    ],
+    "endDate": "A String", # The requested end date in yyyy-mm-dd format.
+    "warnings": [ # Any warnings associated with generation of the report.
+      "A String",
+    ],
+    "totals": [ # The totals of the report. This is the same length as any other row in the report; cells corresponding to dimension columns are empty.
+      "A String",
+    ],
+    "headers": [ # The header information of the columns requested in the report. This is a list of headers; one for each dimension in the request, followed by one for each metric in the request.
+      {
+        "currency": "A String", # The currency of this column. Only present if the header type is METRIC_CURRENCY.
+        "type": "A String", # The type of the header; one of DIMENSION, METRIC_TALLY, METRIC_RATIO, or METRIC_CURRENCY.
+        "name": "A String", # The name of the header.
+      },
+    ],
+    "totalMatchedRows": "A String", # The total number of rows matched by the report request. Fewer rows may be returned in the response due to being limited by the row count requested or the report row limit.
+    "averages": [ # The averages of the report. This is the same length as any other row in the report; cells corresponding to dimension columns are empty.
+      "A String",
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="generate_media">generate_media(accountId, startDate, endDate, locale=None, metric=None, currency=None, startIndex=None, useTimezoneReporting=None, sort=None, maxResults=None, filter=None, dimension=None)</code>
+  <pre>Generate an AdSense report based on the report request sent in the query parameters. Returns the result as JSON; to retrieve output in CSV format specify "alt=csv" as a query parameter.
+
+Args:
+  accountId: string, Account upon which to report. (required)
+  startDate: string, Start of the date range to report on in "YYYY-MM-DD" format, inclusive. (required)
+  endDate: string, End of the date range to report on in "YYYY-MM-DD" format, inclusive. (required)
+  locale: string, Optional locale to use for translating report output to a local language. Defaults to "en_US" if not specified.
+  metric: string, Numeric columns to include in the report. (repeated)
+  currency: string, Optional currency to use when reporting on monetary metrics. Defaults to the account's currency if not set.
+  startIndex: integer, Index of the first row of report data to return.
+  useTimezoneReporting: boolean, Whether the report should be generated in the AdSense account's local timezone. If false default PST/PDT timezone will be used.
+  sort: string, The name of a dimension or metric to sort the resulting report on, optionally prefixed with "+" to sort ascending or "-" to sort descending. If no prefix is specified, the column is sorted ascending. (repeated)
+  maxResults: integer, The maximum number of rows of report data to return.
+  filter: string, Filters to be run on the report. (repeated)
+  dimension: string, Dimensions to base the report on. (repeated)
+
+Returns:
+  The media object as a string.
+
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/adsense_v1_4.accounts.reports.saved.html b/docs/dyn/adsense_v1_4.accounts.reports.saved.html
new file mode 100644
index 0000000..06a9cc8
--- /dev/null
+++ b/docs/dyn/adsense_v1_4.accounts.reports.saved.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="adsense_v1_4.html">AdSense Management API</a> . <a href="adsense_v1_4.accounts.html">accounts</a> . <a href="adsense_v1_4.accounts.reports.html">reports</a> . <a href="adsense_v1_4.accounts.reports.saved.html">saved</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#generate">generate(accountId, savedReportId, locale=None, maxResults=None, startIndex=None)</a></code></p>
+<p class="firstline">Generate an AdSense report based on the saved report ID sent in the query parameters.</p>
+<p class="toc_element">
+  <code><a href="#list">list(accountId, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">List all saved reports in the specified AdSense 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="generate">generate(accountId, savedReportId, locale=None, maxResults=None, startIndex=None)</code>
+  <pre>Generate an AdSense report based on the saved report ID sent in the query parameters.
+
+Args:
+  accountId: string, Account to which the saved reports belong. (required)
+  savedReportId: string, The saved report to retrieve. (required)
+  locale: string, Optional locale to use for translating report output to a local language. Defaults to "en_US" if not specified.
+  maxResults: integer, The maximum number of rows of report data to return.
+  startIndex: integer, Index of the first row of report data to return.
+
+Returns:
+  An object of the form:
+
+    {
+    "startDate": "A String", # The requested start date in yyyy-mm-dd format.
+    "kind": "adsense#report", # Kind this is, in this case adsense#report.
+    "rows": [ # The output rows of the report. Each row is a list of cells; one for each dimension in the request, followed by one for each metric in the request. The dimension cells contain strings, and the metric cells contain numbers.
+      [
+        "A String",
+      ],
+    ],
+    "endDate": "A String", # The requested end date in yyyy-mm-dd format.
+    "warnings": [ # Any warnings associated with generation of the report.
+      "A String",
+    ],
+    "totals": [ # The totals of the report. This is the same length as any other row in the report; cells corresponding to dimension columns are empty.
+      "A String",
+    ],
+    "headers": [ # The header information of the columns requested in the report. This is a list of headers; one for each dimension in the request, followed by one for each metric in the request.
+      {
+        "currency": "A String", # The currency of this column. Only present if the header type is METRIC_CURRENCY.
+        "type": "A String", # The type of the header; one of DIMENSION, METRIC_TALLY, METRIC_RATIO, or METRIC_CURRENCY.
+        "name": "A String", # The name of the header.
+      },
+    ],
+    "totalMatchedRows": "A String", # The total number of rows matched by the report request. Fewer rows may be returned in the response due to being limited by the row count requested or the report row limit.
+    "averages": [ # The averages of the report. This is the same length as any other row in the report; cells corresponding to dimension columns are empty.
+      "A String",
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(accountId, pageToken=None, maxResults=None)</code>
+  <pre>List all saved reports in the specified AdSense account.
+
+Args:
+  accountId: string, Account to which the saved reports belong. (required)
+  pageToken: string, A continuation token, used to page through saved reports. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+  maxResults: integer, The maximum number of saved reports to include in the response, used for paging.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Continuation token used to page through saved reports. To retrieve the next page of results, set the next request's "pageToken" value to this.
+    "items": [ # The saved reports returned in this list response.
+      {
+        "kind": "adsense#savedReport", # Kind of resource this is, in this case adsense#savedReport.
+        "id": "A String", # Unique identifier of this saved report.
+        "name": "A String", # This saved report's name.
+      },
+    ],
+    "kind": "adsense#savedReports", # Kind of list this is, in this case adsense#savedReports.
+    "etag": "A String", # 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/adsense_v1_4.accounts.savedadstyles.html b/docs/dyn/adsense_v1_4.accounts.savedadstyles.html
new file mode 100644
index 0000000..5c7e7fb
--- /dev/null
+++ b/docs/dyn/adsense_v1_4.accounts.savedadstyles.html
@@ -0,0 +1,175 @@
+<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="adsense_v1_4.html">AdSense Management API</a> . <a href="adsense_v1_4.accounts.html">accounts</a> . <a href="adsense_v1_4.accounts.savedadstyles.html">savedadstyles</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(accountId, savedAdStyleId)</a></code></p>
+<p class="firstline">List a specific saved ad style for the specified account.</p>
+<p class="toc_element">
+  <code><a href="#list">list(accountId, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">List all saved ad styles in the specified 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="get">get(accountId, savedAdStyleId)</code>
+  <pre>List a specific saved ad style for the specified account.
+
+Args:
+  accountId: string, Account for which to get the saved ad style. (required)
+  savedAdStyleId: string, Saved ad style to retrieve. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "adsense#savedAdStyle", # Kind of resource this is, in this case adsense#savedAdStyle.
+    "adStyle": { # The AdStyle itself.
+      "corners": "A String", # The style of the corners in the ad.
+      "colors": { # The colors which are included in the style. These are represented as six hexadecimal characters, similar to HTML color codes, but without the leading hash.
+        "url": "A String", # The color of the ad url.
+        "text": "A String", # The color of the ad text.
+        "border": "A String", # The color of the ad border.
+        "background": "A String", # The color of the ad background.
+        "title": "A String", # The color of the ad title.
+      },
+      "font": { # The font which is included in the style.
+        "family": "A String", # The family of the font.
+        "size": "A String", # The size of the font.
+      },
+      "kind": "adsense#adStyle", # Kind this is, in this case adsense#adStyle.
+    },
+    "name": "A String", # The user selected name of this SavedAdStyle.
+    "id": "A String", # Unique identifier of this saved ad style. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(accountId, pageToken=None, maxResults=None)</code>
+  <pre>List all saved ad styles in the specified account.
+
+Args:
+  accountId: string, Account for which to list saved ad styles. (required)
+  pageToken: string, A continuation token, used to page through saved ad styles. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+  maxResults: integer, The maximum number of saved ad styles to include in the response, used for paging.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Continuation token used to page through ad units. To retrieve the next page of results, set the next request's "pageToken" value to this.
+    "items": [ # The saved ad styles returned in this list response.
+      {
+        "kind": "adsense#savedAdStyle", # Kind of resource this is, in this case adsense#savedAdStyle.
+        "adStyle": { # The AdStyle itself.
+          "corners": "A String", # The style of the corners in the ad.
+          "colors": { # The colors which are included in the style. These are represented as six hexadecimal characters, similar to HTML color codes, but without the leading hash.
+            "url": "A String", # The color of the ad url.
+            "text": "A String", # The color of the ad text.
+            "border": "A String", # The color of the ad border.
+            "background": "A String", # The color of the ad background.
+            "title": "A String", # The color of the ad title.
+          },
+          "font": { # The font which is included in the style.
+            "family": "A String", # The family of the font.
+            "size": "A String", # The size of the font.
+          },
+          "kind": "adsense#adStyle", # Kind this is, in this case adsense#adStyle.
+        },
+        "name": "A String", # The user selected name of this SavedAdStyle.
+        "id": "A String", # Unique identifier of this saved ad style. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+      },
+    ],
+    "kind": "adsense#savedAdStyles", # Kind of list this is, in this case adsense#savedAdStyles.
+    "etag": "A String", # 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/adsense_v1_4.accounts.urlchannels.html b/docs/dyn/adsense_v1_4.accounts.urlchannels.html
new file mode 100644
index 0000000..529f5a5
--- /dev/null
+++ b/docs/dyn/adsense_v1_4.accounts.urlchannels.html
@@ -0,0 +1,125 @@
+<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="adsense_v1_4.html">AdSense Management API</a> . <a href="adsense_v1_4.accounts.html">accounts</a> . <a href="adsense_v1_4.accounts.urlchannels.html">urlchannels</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(accountId, adClientId, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">List all URL channels in the specified ad client for the specified 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="list">list(accountId, adClientId, pageToken=None, maxResults=None)</code>
+  <pre>List all URL channels in the specified ad client for the specified account.
+
+Args:
+  accountId: string, Account to which the ad client belongs. (required)
+  adClientId: string, Ad client for which to list URL channels. (required)
+  pageToken: string, A continuation token, used to page through URL channels. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+  maxResults: integer, The maximum number of URL channels to include in the response, used for paging.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Continuation token used to page through URL channels. To retrieve the next page of results, set the next request's "pageToken" value to this.
+    "items": [ # The URL channels returned in this list response.
+      {
+        "kind": "adsense#urlChannel", # Kind of resource this is, in this case adsense#urlChannel.
+        "id": "A String", # Unique identifier of this URL channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+        "urlPattern": "A String", # URL Pattern of this URL channel. Does not include "http://" or "https://". Example: www.example.com/home
+      },
+    ],
+    "kind": "adsense#urlChannels", # Kind of list this is, in this case adsense#urlChannels.
+    "etag": "A String", # 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/adsense_v1_4.adclients.html b/docs/dyn/adsense_v1_4.adclients.html
new file mode 100644
index 0000000..1afb896
--- /dev/null
+++ b/docs/dyn/adsense_v1_4.adclients.html
@@ -0,0 +1,126 @@
+<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="adsense_v1_4.html">AdSense Management API</a> . <a href="adsense_v1_4.adclients.html">adclients</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">List all ad clients in this AdSense 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="list">list(pageToken=None, maxResults=None)</code>
+  <pre>List all ad clients in this AdSense account.
+
+Args:
+  pageToken: string, A continuation token, used to page through ad clients. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+  maxResults: integer, The maximum number of ad clients to include in the response, used for paging.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Continuation token used to page through ad clients. To retrieve the next page of results, set the next request's "pageToken" value to this.
+    "items": [ # The ad clients returned in this list response.
+      {
+        "productCode": "A String", # This ad client's product code, which corresponds to the PRODUCT_CODE report dimension.
+        "kind": "adsense#adClient", # Kind of resource this is, in this case adsense#adClient.
+        "supportsReporting": True or False, # Whether this ad client supports being reported on.
+        "arcReviewMode": "A String", # ARC review mode this ad client is in. Empty if the client is not opted in to ARC. Possible values: POST_REVIEW, AUTOMATIC_PRE_REVIEW.
+        "arcOptIn": True or False, # Whether this ad client is opted in to ARC.
+        "id": "A String", # Unique identifier of this ad client.
+      },
+    ],
+    "kind": "adsense#adClients", # Kind of list this is, in this case adsense#adClients.
+    "etag": "A String", # 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/adsense_v1_4.adunits.customchannels.html b/docs/dyn/adsense_v1_4.adunits.customchannels.html
new file mode 100644
index 0000000..7ee2cbb
--- /dev/null
+++ b/docs/dyn/adsense_v1_4.adunits.customchannels.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="adsense_v1_4.html">AdSense Management API</a> . <a href="adsense_v1_4.adunits.html">adunits</a> . <a href="adsense_v1_4.adunits.customchannels.html">customchannels</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(adClientId, adUnitId, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">List all custom channels which the specified ad unit belongs to.</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(adClientId, adUnitId, pageToken=None, maxResults=None)</code>
+  <pre>List all custom channels which the specified ad unit belongs to.
+
+Args:
+  adClientId: string, Ad client which contains the ad unit. (required)
+  adUnitId: string, Ad unit for which to list custom channels. (required)
+  pageToken: string, A continuation token, used to page through custom channels. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+  maxResults: integer, The maximum number of custom channels to include in the response, used for paging.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Continuation token used to page through custom channels. To retrieve the next page of results, set the next request's "pageToken" value to this.
+    "items": [ # The custom channels returned in this list response.
+      {
+        "kind": "adsense#customChannel", # Kind of resource this is, in this case adsense#customChannel.
+        "code": "A String", # Code of this custom channel, not necessarily unique across ad clients.
+        "targetingInfo": { # The targeting information of this custom channel, if activated.
+          "location": "A String", # The locations in which ads appear. (Only valid for content and mobile content ads). Acceptable values for content ads are: TOP_LEFT, TOP_CENTER, TOP_RIGHT, MIDDLE_LEFT, MIDDLE_CENTER, MIDDLE_RIGHT, BOTTOM_LEFT, BOTTOM_CENTER, BOTTOM_RIGHT, MULTIPLE_LOCATIONS. Acceptable values for mobile content ads are: TOP, MIDDLE, BOTTOM, MULTIPLE_LOCATIONS.
+          "adsAppearOn": "A String", # The name used to describe this channel externally.
+          "siteLanguage": "A String", # The language of the sites ads will be displayed on.
+          "description": "A String", # The external description of the channel.
+        },
+        "id": "A String", # Unique identifier of this custom channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+        "name": "A String", # Name of this custom channel.
+      },
+    ],
+    "kind": "adsense#customChannels", # Kind of list this is, in this case adsense#customChannels.
+    "etag": "A String", # 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/adsense_v1_4.adunits.html b/docs/dyn/adsense_v1_4.adunits.html
new file mode 100644
index 0000000..303c688
--- /dev/null
+++ b/docs/dyn/adsense_v1_4.adunits.html
@@ -0,0 +1,259 @@
+<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="adsense_v1_4.html">AdSense Management API</a> . <a href="adsense_v1_4.adunits.html">adunits</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="adsense_v1_4.adunits.customchannels.html">customchannels()</a></code>
+</p>
+<p class="firstline">Returns the customchannels Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#get">get(adClientId, adUnitId)</a></code></p>
+<p class="firstline">Gets the specified ad unit in the specified ad client.</p>
+<p class="toc_element">
+  <code><a href="#getAdCode">getAdCode(adClientId, adUnitId)</a></code></p>
+<p class="firstline">Get ad code for the specified ad unit.</p>
+<p class="toc_element">
+  <code><a href="#list">list(adClientId, pageToken=None, includeInactive=None, maxResults=None)</a></code></p>
+<p class="firstline">List all ad units in the specified ad client for this AdSense 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="get">get(adClientId, adUnitId)</code>
+  <pre>Gets the specified ad unit in the specified ad client.
+
+Args:
+  adClientId: string, Ad client for which to get the ad unit. (required)
+  adUnitId: string, Ad unit to retrieve. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "status": "A String", # Status of this ad unit. Possible values are:
+        # NEW: Indicates that the ad unit was created within the last seven days and does not yet have any activity associated with it.
+        #
+        # ACTIVE: Indicates that there has been activity on this ad unit in the last seven days.
+        #
+        # INACTIVE: Indicates that there has been no activity on this ad unit in the last seven days.
+    "kind": "adsense#adUnit", # Kind of resource this is, in this case adsense#adUnit.
+    "code": "A String", # Identity code of this ad unit, not necessarily unique across ad clients.
+    "name": "A String", # Name of this ad unit.
+    "feedAdsSettings": { # Settings specific to feed ads (AFF).
+      "minimumWordCount": 42, # The minimum length an entry should be in order to have attached ads.
+      "frequency": 42, # The frequency at which ads should appear in the feed (i.e. every N entries).
+      "adPosition": "A String", # The position of the ads relative to the feed entries.
+      "type": "A String", # The type of ads which should appear.
+    },
+    "savedStyleId": "A String", # ID of the saved ad style which holds this ad unit's style information.
+    "contentAdsSettings": { # Settings specific to content ads (AFC) and highend mobile content ads (AFMC).
+      "type": "A String", # Type of this ad unit.
+      "backupOption": { # The backup option to be used in instances where no ad is available.
+        "color": "A String", # Color to use when type is set to COLOR.
+        "url": "A String", # URL to use when type is set to URL.
+        "type": "A String", # Type of the backup option. Possible values are BLANK, COLOR and URL.
+      },
+      "size": "A String", # Size of this ad unit.
+    },
+    "id": "A String", # Unique identifier of this ad unit. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+    "mobileContentAdsSettings": { # Settings specific to WAP mobile content ads (AFMC).
+      "scriptingLanguage": "A String", # The scripting language to use for this ad unit.
+      "type": "A String", # Type of this ad unit.
+      "markupLanguage": "A String", # The markup language to use for this ad unit.
+      "size": "A String", # Size of this ad unit.
+    },
+    "customStyle": { # Custom style information specific to this ad unit.
+      "corners": "A String", # The style of the corners in the ad.
+      "colors": { # The colors which are included in the style. These are represented as six hexadecimal characters, similar to HTML color codes, but without the leading hash.
+        "url": "A String", # The color of the ad url.
+        "text": "A String", # The color of the ad text.
+        "border": "A String", # The color of the ad border.
+        "background": "A String", # The color of the ad background.
+        "title": "A String", # The color of the ad title.
+      },
+      "font": { # The font which is included in the style.
+        "family": "A String", # The family of the font.
+        "size": "A String", # The size of the font.
+      },
+      "kind": "adsense#adStyle", # Kind this is, in this case adsense#adStyle.
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getAdCode">getAdCode(adClientId, adUnitId)</code>
+  <pre>Get ad code for the specified ad unit.
+
+Args:
+  adClientId: string, Ad client with contains the ad unit. (required)
+  adUnitId: string, Ad unit to get the code for. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "adCode": "A String", # The ad code snippet.
+    "kind": "adsense#adCode", # Kind this is, in this case adsense#adCode.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(adClientId, pageToken=None, includeInactive=None, maxResults=None)</code>
+  <pre>List all ad units in the specified ad client for this AdSense account.
+
+Args:
+  adClientId: string, Ad client for which to list ad units. (required)
+  pageToken: string, A continuation token, used to page through ad units. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+  includeInactive: boolean, Whether to include inactive ad units. Default: true.
+  maxResults: integer, The maximum number of ad units to include in the response, used for paging.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Continuation token used to page through ad units. To retrieve the next page of results, set the next request's "pageToken" value to this.
+    "items": [ # The ad units returned in this list response.
+      {
+        "status": "A String", # Status of this ad unit. Possible values are:
+            # NEW: Indicates that the ad unit was created within the last seven days and does not yet have any activity associated with it.
+            #
+            # ACTIVE: Indicates that there has been activity on this ad unit in the last seven days.
+            #
+            # INACTIVE: Indicates that there has been no activity on this ad unit in the last seven days.
+        "kind": "adsense#adUnit", # Kind of resource this is, in this case adsense#adUnit.
+        "code": "A String", # Identity code of this ad unit, not necessarily unique across ad clients.
+        "name": "A String", # Name of this ad unit.
+        "feedAdsSettings": { # Settings specific to feed ads (AFF).
+          "minimumWordCount": 42, # The minimum length an entry should be in order to have attached ads.
+          "frequency": 42, # The frequency at which ads should appear in the feed (i.e. every N entries).
+          "adPosition": "A String", # The position of the ads relative to the feed entries.
+          "type": "A String", # The type of ads which should appear.
+        },
+        "savedStyleId": "A String", # ID of the saved ad style which holds this ad unit's style information.
+        "contentAdsSettings": { # Settings specific to content ads (AFC) and highend mobile content ads (AFMC).
+          "type": "A String", # Type of this ad unit.
+          "backupOption": { # The backup option to be used in instances where no ad is available.
+            "color": "A String", # Color to use when type is set to COLOR.
+            "url": "A String", # URL to use when type is set to URL.
+            "type": "A String", # Type of the backup option. Possible values are BLANK, COLOR and URL.
+          },
+          "size": "A String", # Size of this ad unit.
+        },
+        "id": "A String", # Unique identifier of this ad unit. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+        "mobileContentAdsSettings": { # Settings specific to WAP mobile content ads (AFMC).
+          "scriptingLanguage": "A String", # The scripting language to use for this ad unit.
+          "type": "A String", # Type of this ad unit.
+          "markupLanguage": "A String", # The markup language to use for this ad unit.
+          "size": "A String", # Size of this ad unit.
+        },
+        "customStyle": { # Custom style information specific to this ad unit.
+          "corners": "A String", # The style of the corners in the ad.
+          "colors": { # The colors which are included in the style. These are represented as six hexadecimal characters, similar to HTML color codes, but without the leading hash.
+            "url": "A String", # The color of the ad url.
+            "text": "A String", # The color of the ad text.
+            "border": "A String", # The color of the ad border.
+            "background": "A String", # The color of the ad background.
+            "title": "A String", # The color of the ad title.
+          },
+          "font": { # The font which is included in the style.
+            "family": "A String", # The family of the font.
+            "size": "A String", # The size of the font.
+          },
+          "kind": "adsense#adStyle", # Kind this is, in this case adsense#adStyle.
+        },
+      },
+    ],
+    "kind": "adsense#adUnits", # Kind of list this is, in this case adsense#adUnits.
+    "etag": "A String", # 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/adsense_v1_4.alerts.html b/docs/dyn/adsense_v1_4.alerts.html
new file mode 100644
index 0000000..dd5cb72
--- /dev/null
+++ b/docs/dyn/adsense_v1_4.alerts.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="adsense_v1_4.html">AdSense Management API</a> . <a href="adsense_v1_4.alerts.html">alerts</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(alertId)</a></code></p>
+<p class="firstline">Dismiss (delete) the specified alert from the publisher's AdSense account.</p>
+<p class="toc_element">
+  <code><a href="#list">list(locale=None)</a></code></p>
+<p class="firstline">List the alerts for this AdSense account.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(alertId)</code>
+  <pre>Dismiss (delete) the specified alert from the publisher's AdSense account.
+
+Args:
+  alertId: string, Alert to delete. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(locale=None)</code>
+  <pre>List the alerts for this AdSense account.
+
+Args:
+  locale: string, The locale to use for translating alert messages. The account locale will be used if this is not supplied. The AdSense default (English) will be used if the supplied locale is invalid or unsupported.
+
+Returns:
+  An object of the form:
+
+    {
+    "items": [ # The alerts returned in this list response.
+      {
+        "kind": "adsense#alert", # Kind of resource this is, in this case adsense#alert.
+        "severity": "A String", # Severity of this alert. Possible values: INFO, WARNING, SEVERE.
+        "isDismissible": True or False, # Whether this alert can be dismissed.
+        "message": "A String", # The localized alert message.
+        "type": "A String", # Type of this alert. Possible values: SELF_HOLD, MIGRATED_TO_BILLING3, ADDRESS_PIN_VERIFICATION, PHONE_PIN_VERIFICATION, CORPORATE_ENTITY, GRAYLISTED_PUBLISHER, API_HOLD.
+        "id": "A String", # Unique identifier of this alert. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+      },
+    ],
+    "kind": "adsense#alerts", # Kind of list this is, in this case adsense#alerts.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/adsense_v1_4.customchannels.adunits.html b/docs/dyn/adsense_v1_4.customchannels.adunits.html
new file mode 100644
index 0000000..665efe6
--- /dev/null
+++ b/docs/dyn/adsense_v1_4.customchannels.adunits.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="adsense_v1_4.html">AdSense Management API</a> . <a href="adsense_v1_4.customchannels.html">customchannels</a> . <a href="adsense_v1_4.customchannels.adunits.html">adunits</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(adClientId, customChannelId, pageToken=None, includeInactive=None, maxResults=None)</a></code></p>
+<p class="firstline">List all ad units in the specified custom channel.</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(adClientId, customChannelId, pageToken=None, includeInactive=None, maxResults=None)</code>
+  <pre>List all ad units in the specified custom channel.
+
+Args:
+  adClientId: string, Ad client which contains the custom channel. (required)
+  customChannelId: string, Custom channel for which to list ad units. (required)
+  pageToken: string, A continuation token, used to page through ad units. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+  includeInactive: boolean, Whether to include inactive ad units. Default: true.
+  maxResults: integer, The maximum number of ad units to include in the response, used for paging.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Continuation token used to page through ad units. To retrieve the next page of results, set the next request's "pageToken" value to this.
+    "items": [ # The ad units returned in this list response.
+      {
+        "status": "A String", # Status of this ad unit. Possible values are:
+            # NEW: Indicates that the ad unit was created within the last seven days and does not yet have any activity associated with it.
+            #
+            # ACTIVE: Indicates that there has been activity on this ad unit in the last seven days.
+            #
+            # INACTIVE: Indicates that there has been no activity on this ad unit in the last seven days.
+        "kind": "adsense#adUnit", # Kind of resource this is, in this case adsense#adUnit.
+        "code": "A String", # Identity code of this ad unit, not necessarily unique across ad clients.
+        "name": "A String", # Name of this ad unit.
+        "feedAdsSettings": { # Settings specific to feed ads (AFF).
+          "minimumWordCount": 42, # The minimum length an entry should be in order to have attached ads.
+          "frequency": 42, # The frequency at which ads should appear in the feed (i.e. every N entries).
+          "adPosition": "A String", # The position of the ads relative to the feed entries.
+          "type": "A String", # The type of ads which should appear.
+        },
+        "savedStyleId": "A String", # ID of the saved ad style which holds this ad unit's style information.
+        "contentAdsSettings": { # Settings specific to content ads (AFC) and highend mobile content ads (AFMC).
+          "type": "A String", # Type of this ad unit.
+          "backupOption": { # The backup option to be used in instances where no ad is available.
+            "color": "A String", # Color to use when type is set to COLOR.
+            "url": "A String", # URL to use when type is set to URL.
+            "type": "A String", # Type of the backup option. Possible values are BLANK, COLOR and URL.
+          },
+          "size": "A String", # Size of this ad unit.
+        },
+        "id": "A String", # Unique identifier of this ad unit. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+        "mobileContentAdsSettings": { # Settings specific to WAP mobile content ads (AFMC).
+          "scriptingLanguage": "A String", # The scripting language to use for this ad unit.
+          "type": "A String", # Type of this ad unit.
+          "markupLanguage": "A String", # The markup language to use for this ad unit.
+          "size": "A String", # Size of this ad unit.
+        },
+        "customStyle": { # Custom style information specific to this ad unit.
+          "corners": "A String", # The style of the corners in the ad.
+          "colors": { # The colors which are included in the style. These are represented as six hexadecimal characters, similar to HTML color codes, but without the leading hash.
+            "url": "A String", # The color of the ad url.
+            "text": "A String", # The color of the ad text.
+            "border": "A String", # The color of the ad border.
+            "background": "A String", # The color of the ad background.
+            "title": "A String", # The color of the ad title.
+          },
+          "font": { # The font which is included in the style.
+            "family": "A String", # The family of the font.
+            "size": "A String", # The size of the font.
+          },
+          "kind": "adsense#adStyle", # Kind this is, in this case adsense#adStyle.
+        },
+      },
+    ],
+    "kind": "adsense#adUnits", # Kind of list this is, in this case adsense#adUnits.
+    "etag": "A String", # 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/adsense_v1_4.customchannels.html b/docs/dyn/adsense_v1_4.customchannels.html
new file mode 100644
index 0000000..255f7ab
--- /dev/null
+++ b/docs/dyn/adsense_v1_4.customchannels.html
@@ -0,0 +1,164 @@
+<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="adsense_v1_4.html">AdSense Management API</a> . <a href="adsense_v1_4.customchannels.html">customchannels</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="adsense_v1_4.customchannels.adunits.html">adunits()</a></code>
+</p>
+<p class="firstline">Returns the adunits Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#get">get(adClientId, customChannelId)</a></code></p>
+<p class="firstline">Get the specified custom channel from the specified ad client.</p>
+<p class="toc_element">
+  <code><a href="#list">list(adClientId, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">List all custom channels in the specified ad client for this AdSense 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="get">get(adClientId, customChannelId)</code>
+  <pre>Get the specified custom channel from the specified ad client.
+
+Args:
+  adClientId: string, Ad client which contains the custom channel. (required)
+  customChannelId: string, Custom channel to retrieve. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "adsense#customChannel", # Kind of resource this is, in this case adsense#customChannel.
+    "code": "A String", # Code of this custom channel, not necessarily unique across ad clients.
+    "targetingInfo": { # The targeting information of this custom channel, if activated.
+      "location": "A String", # The locations in which ads appear. (Only valid for content and mobile content ads). Acceptable values for content ads are: TOP_LEFT, TOP_CENTER, TOP_RIGHT, MIDDLE_LEFT, MIDDLE_CENTER, MIDDLE_RIGHT, BOTTOM_LEFT, BOTTOM_CENTER, BOTTOM_RIGHT, MULTIPLE_LOCATIONS. Acceptable values for mobile content ads are: TOP, MIDDLE, BOTTOM, MULTIPLE_LOCATIONS.
+      "adsAppearOn": "A String", # The name used to describe this channel externally.
+      "siteLanguage": "A String", # The language of the sites ads will be displayed on.
+      "description": "A String", # The external description of the channel.
+    },
+    "id": "A String", # Unique identifier of this custom channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+    "name": "A String", # Name of this custom channel.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(adClientId, pageToken=None, maxResults=None)</code>
+  <pre>List all custom channels in the specified ad client for this AdSense account.
+
+Args:
+  adClientId: string, Ad client for which to list custom channels. (required)
+  pageToken: string, A continuation token, used to page through custom channels. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+  maxResults: integer, The maximum number of custom channels to include in the response, used for paging.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Continuation token used to page through custom channels. To retrieve the next page of results, set the next request's "pageToken" value to this.
+    "items": [ # The custom channels returned in this list response.
+      {
+        "kind": "adsense#customChannel", # Kind of resource this is, in this case adsense#customChannel.
+        "code": "A String", # Code of this custom channel, not necessarily unique across ad clients.
+        "targetingInfo": { # The targeting information of this custom channel, if activated.
+          "location": "A String", # The locations in which ads appear. (Only valid for content and mobile content ads). Acceptable values for content ads are: TOP_LEFT, TOP_CENTER, TOP_RIGHT, MIDDLE_LEFT, MIDDLE_CENTER, MIDDLE_RIGHT, BOTTOM_LEFT, BOTTOM_CENTER, BOTTOM_RIGHT, MULTIPLE_LOCATIONS. Acceptable values for mobile content ads are: TOP, MIDDLE, BOTTOM, MULTIPLE_LOCATIONS.
+          "adsAppearOn": "A String", # The name used to describe this channel externally.
+          "siteLanguage": "A String", # The language of the sites ads will be displayed on.
+          "description": "A String", # The external description of the channel.
+        },
+        "id": "A String", # Unique identifier of this custom channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+        "name": "A String", # Name of this custom channel.
+      },
+    ],
+    "kind": "adsense#customChannels", # Kind of list this is, in this case adsense#customChannels.
+    "etag": "A String", # 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/adsense_v1_4.html b/docs/dyn/adsense_v1_4.html
new file mode 100644
index 0000000..8ef7582
--- /dev/null
+++ b/docs/dyn/adsense_v1_4.html
@@ -0,0 +1,127 @@
+<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="adsense_v1_4.html">AdSense Management API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="adsense_v1_4.accounts.html">accounts()</a></code>
+</p>
+<p class="firstline">Returns the accounts Resource.</p>
+
+<p class="toc_element">
+  <code><a href="adsense_v1_4.adclients.html">adclients()</a></code>
+</p>
+<p class="firstline">Returns the adclients Resource.</p>
+
+<p class="toc_element">
+  <code><a href="adsense_v1_4.adunits.html">adunits()</a></code>
+</p>
+<p class="firstline">Returns the adunits Resource.</p>
+
+<p class="toc_element">
+  <code><a href="adsense_v1_4.alerts.html">alerts()</a></code>
+</p>
+<p class="firstline">Returns the alerts Resource.</p>
+
+<p class="toc_element">
+  <code><a href="adsense_v1_4.customchannels.html">customchannels()</a></code>
+</p>
+<p class="firstline">Returns the customchannels Resource.</p>
+
+<p class="toc_element">
+  <code><a href="adsense_v1_4.metadata.html">metadata()</a></code>
+</p>
+<p class="firstline">Returns the metadata Resource.</p>
+
+<p class="toc_element">
+  <code><a href="adsense_v1_4.payments.html">payments()</a></code>
+</p>
+<p class="firstline">Returns the payments Resource.</p>
+
+<p class="toc_element">
+  <code><a href="adsense_v1_4.reports.html">reports()</a></code>
+</p>
+<p class="firstline">Returns the reports Resource.</p>
+
+<p class="toc_element">
+  <code><a href="adsense_v1_4.savedadstyles.html">savedadstyles()</a></code>
+</p>
+<p class="firstline">Returns the savedadstyles Resource.</p>
+
+<p class="toc_element">
+  <code><a href="adsense_v1_4.urlchannels.html">urlchannels()</a></code>
+</p>
+<p class="firstline">Returns the urlchannels Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/adsense_v1_4.metadata.dimensions.html b/docs/dyn/adsense_v1_4.metadata.dimensions.html
new file mode 100644
index 0000000..a96d004
--- /dev/null
+++ b/docs/dyn/adsense_v1_4.metadata.dimensions.html
@@ -0,0 +1,116 @@
+<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="adsense_v1_4.html">AdSense Management API</a> . <a href="adsense_v1_4.metadata.html">metadata</a> . <a href="adsense_v1_4.metadata.dimensions.html">dimensions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list()</a></code></p>
+<p class="firstline">List the metadata for the dimensions available to this AdSense account.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list()</code>
+  <pre>List the metadata for the dimensions available to this AdSense account.
+
+Args:
+
+Returns:
+  An object of the form:
+
+    {
+    "items": [
+      {
+        "requiredMetrics": [ # The names of the metrics which the dimension or metric this reporting metadata entry describes requires to also be present in order for the report to be valid. Omitting these will not cause an error or warning, but may result in data which cannot be correctly interpreted.
+          "A String",
+        ],
+        "kind": "adsense#reportingMetadataEntry", # Kind of resource this is, in this case adsense#reportingMetadataEntry.
+        "compatibleMetrics": [ # The names of the metrics the dimension or metric this reporting metadata entry describes is compatible with.
+          "A String",
+        ],
+        "requiredDimensions": [ # The names of the dimensions which the dimension or metric this reporting metadata entry describes requires to also be present in order for the report to be valid. Omitting these will not cause an error or warning, but may result in data which cannot be correctly interpreted.
+          "A String",
+        ],
+        "compatibleDimensions": [ # For metrics this is a list of dimension IDs which the metric is compatible with, for dimensions it is a list of compatibility groups the dimension belongs to.
+          "A String",
+        ],
+        "id": "A String", # Unique identifier of this reporting metadata entry, corresponding to the name of the appropriate dimension or metric.
+        "supportedProducts": [ # The codes of the projects supported by the dimension or metric this reporting metadata entry describes.
+          "A String",
+        ],
+      },
+    ],
+    "kind": "adsense#metadata", # Kind of list this is, in this case adsense#metadata.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/adsense_v1_4.metadata.html b/docs/dyn/adsense_v1_4.metadata.html
new file mode 100644
index 0000000..52524d0
--- /dev/null
+++ b/docs/dyn/adsense_v1_4.metadata.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="adsense_v1_4.html">AdSense Management API</a> . <a href="adsense_v1_4.metadata.html">metadata</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="adsense_v1_4.metadata.dimensions.html">dimensions()</a></code>
+</p>
+<p class="firstline">Returns the dimensions Resource.</p>
+
+<p class="toc_element">
+  <code><a href="adsense_v1_4.metadata.metrics.html">metrics()</a></code>
+</p>
+<p class="firstline">Returns the metrics Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/adsense_v1_4.metadata.metrics.html b/docs/dyn/adsense_v1_4.metadata.metrics.html
new file mode 100644
index 0000000..8e958c8
--- /dev/null
+++ b/docs/dyn/adsense_v1_4.metadata.metrics.html
@@ -0,0 +1,116 @@
+<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="adsense_v1_4.html">AdSense Management API</a> . <a href="adsense_v1_4.metadata.html">metadata</a> . <a href="adsense_v1_4.metadata.metrics.html">metrics</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list()</a></code></p>
+<p class="firstline">List the metadata for the metrics available to this AdSense account.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list()</code>
+  <pre>List the metadata for the metrics available to this AdSense account.
+
+Args:
+
+Returns:
+  An object of the form:
+
+    {
+    "items": [
+      {
+        "requiredMetrics": [ # The names of the metrics which the dimension or metric this reporting metadata entry describes requires to also be present in order for the report to be valid. Omitting these will not cause an error or warning, but may result in data which cannot be correctly interpreted.
+          "A String",
+        ],
+        "kind": "adsense#reportingMetadataEntry", # Kind of resource this is, in this case adsense#reportingMetadataEntry.
+        "compatibleMetrics": [ # The names of the metrics the dimension or metric this reporting metadata entry describes is compatible with.
+          "A String",
+        ],
+        "requiredDimensions": [ # The names of the dimensions which the dimension or metric this reporting metadata entry describes requires to also be present in order for the report to be valid. Omitting these will not cause an error or warning, but may result in data which cannot be correctly interpreted.
+          "A String",
+        ],
+        "compatibleDimensions": [ # For metrics this is a list of dimension IDs which the metric is compatible with, for dimensions it is a list of compatibility groups the dimension belongs to.
+          "A String",
+        ],
+        "id": "A String", # Unique identifier of this reporting metadata entry, corresponding to the name of the appropriate dimension or metric.
+        "supportedProducts": [ # The codes of the projects supported by the dimension or metric this reporting metadata entry describes.
+          "A String",
+        ],
+      },
+    ],
+    "kind": "adsense#metadata", # Kind of list this is, in this case adsense#metadata.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/adsense_v1_4.payments.html b/docs/dyn/adsense_v1_4.payments.html
new file mode 100644
index 0000000..27b0ede
--- /dev/null
+++ b/docs/dyn/adsense_v1_4.payments.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="adsense_v1_4.html">AdSense Management API</a> . <a href="adsense_v1_4.payments.html">payments</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list()</a></code></p>
+<p class="firstline">List the payments for this AdSense account.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list()</code>
+  <pre>List the payments for this AdSense account.
+
+Args:
+
+Returns:
+  An object of the form:
+
+    {
+    "items": [ # The list of Payments for the account. One or both of a) the account's most recent payment; and b) the account's upcoming payment.
+      {
+        "paymentAmountCurrencyCode": "A String", # The currency code for the amount to be paid.
+        "kind": "adsense#payment", # Kind of resource this is, in this case adsense#payment.
+        "paymentAmount": "A String", # The amount to be paid.
+        "id": "A String", # Unique identifier of this Payment.
+        "paymentDate": "A String", # The date this payment was/will be credited to the user, or none if the payment threshold has not been met.
+      },
+    ],
+    "kind": "adsense#payments", # Kind of list this is, in this case adsense#payments.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/adsense_v1_4.reports.html b/docs/dyn/adsense_v1_4.reports.html
new file mode 100644
index 0000000..6b796fe
--- /dev/null
+++ b/docs/dyn/adsense_v1_4.reports.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="adsense_v1_4.html">AdSense Management API</a> . <a href="adsense_v1_4.reports.html">reports</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="adsense_v1_4.reports.saved.html">saved()</a></code>
+</p>
+<p class="firstline">Returns the saved Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#generate">generate(startDate, endDate, locale=None, metric=None, currency=None, startIndex=None, accountId=None, useTimezoneReporting=None, sort=None, maxResults=None, filter=None, dimension=None)</a></code></p>
+<p class="firstline">Generate an AdSense report based on the report request sent in the query parameters. Returns the result as JSON; to retrieve output in CSV format specify "alt=csv" as a query parameter.</p>
+<p class="toc_element">
+  <code><a href="#generate_media">generate_media(startDate, endDate, locale=None, metric=None, currency=None, startIndex=None, accountId=None, useTimezoneReporting=None, sort=None, maxResults=None, filter=None, dimension=None)</a></code></p>
+<p class="firstline">Generate an AdSense report based on the report request sent in the query parameters. Returns the result as JSON; to retrieve output in CSV format specify "alt=csv" as a query parameter.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="generate">generate(startDate, endDate, locale=None, metric=None, currency=None, startIndex=None, accountId=None, useTimezoneReporting=None, sort=None, maxResults=None, filter=None, dimension=None)</code>
+  <pre>Generate an AdSense report based on the report request sent in the query parameters. Returns the result as JSON; to retrieve output in CSV format specify "alt=csv" as a query parameter.
+
+Args:
+  startDate: string, Start of the date range to report on in "YYYY-MM-DD" format, inclusive. (required)
+  endDate: string, End of the date range to report on in "YYYY-MM-DD" format, inclusive. (required)
+  locale: string, Optional locale to use for translating report output to a local language. Defaults to "en_US" if not specified.
+  metric: string, Numeric columns to include in the report. (repeated)
+  currency: string, Optional currency to use when reporting on monetary metrics. Defaults to the account's currency if not set.
+  startIndex: integer, Index of the first row of report data to return.
+  accountId: string, Accounts upon which to report. (repeated)
+  useTimezoneReporting: boolean, Whether the report should be generated in the AdSense account's local timezone. If false default PST/PDT timezone will be used.
+  sort: string, The name of a dimension or metric to sort the resulting report on, optionally prefixed with "+" to sort ascending or "-" to sort descending. If no prefix is specified, the column is sorted ascending. (repeated)
+  maxResults: integer, The maximum number of rows of report data to return.
+  filter: string, Filters to be run on the report. (repeated)
+  dimension: string, Dimensions to base the report on. (repeated)
+
+Returns:
+  An object of the form:
+
+    {
+    "startDate": "A String", # The requested start date in yyyy-mm-dd format.
+    "kind": "adsense#report", # Kind this is, in this case adsense#report.
+    "rows": [ # The output rows of the report. Each row is a list of cells; one for each dimension in the request, followed by one for each metric in the request. The dimension cells contain strings, and the metric cells contain numbers.
+      [
+        "A String",
+      ],
+    ],
+    "endDate": "A String", # The requested end date in yyyy-mm-dd format.
+    "warnings": [ # Any warnings associated with generation of the report.
+      "A String",
+    ],
+    "totals": [ # The totals of the report. This is the same length as any other row in the report; cells corresponding to dimension columns are empty.
+      "A String",
+    ],
+    "headers": [ # The header information of the columns requested in the report. This is a list of headers; one for each dimension in the request, followed by one for each metric in the request.
+      {
+        "currency": "A String", # The currency of this column. Only present if the header type is METRIC_CURRENCY.
+        "type": "A String", # The type of the header; one of DIMENSION, METRIC_TALLY, METRIC_RATIO, or METRIC_CURRENCY.
+        "name": "A String", # The name of the header.
+      },
+    ],
+    "totalMatchedRows": "A String", # The total number of rows matched by the report request. Fewer rows may be returned in the response due to being limited by the row count requested or the report row limit.
+    "averages": [ # The averages of the report. This is the same length as any other row in the report; cells corresponding to dimension columns are empty.
+      "A String",
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="generate_media">generate_media(startDate, endDate, locale=None, metric=None, currency=None, startIndex=None, accountId=None, useTimezoneReporting=None, sort=None, maxResults=None, filter=None, dimension=None)</code>
+  <pre>Generate an AdSense report based on the report request sent in the query parameters. Returns the result as JSON; to retrieve output in CSV format specify "alt=csv" as a query parameter.
+
+Args:
+  startDate: string, Start of the date range to report on in "YYYY-MM-DD" format, inclusive. (required)
+  endDate: string, End of the date range to report on in "YYYY-MM-DD" format, inclusive. (required)
+  locale: string, Optional locale to use for translating report output to a local language. Defaults to "en_US" if not specified.
+  metric: string, Numeric columns to include in the report. (repeated)
+  currency: string, Optional currency to use when reporting on monetary metrics. Defaults to the account's currency if not set.
+  startIndex: integer, Index of the first row of report data to return.
+  accountId: string, Accounts upon which to report. (repeated)
+  useTimezoneReporting: boolean, Whether the report should be generated in the AdSense account's local timezone. If false default PST/PDT timezone will be used.
+  sort: string, The name of a dimension or metric to sort the resulting report on, optionally prefixed with "+" to sort ascending or "-" to sort descending. If no prefix is specified, the column is sorted ascending. (repeated)
+  maxResults: integer, The maximum number of rows of report data to return.
+  filter: string, Filters to be run on the report. (repeated)
+  dimension: string, Dimensions to base the report on. (repeated)
+
+Returns:
+  The media object as a string.
+
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/adsense_v1_4.reports.saved.html b/docs/dyn/adsense_v1_4.reports.saved.html
new file mode 100644
index 0000000..1647e4c
--- /dev/null
+++ b/docs/dyn/adsense_v1_4.reports.saved.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="adsense_v1_4.html">AdSense Management API</a> . <a href="adsense_v1_4.reports.html">reports</a> . <a href="adsense_v1_4.reports.saved.html">saved</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#generate">generate(savedReportId, locale=None, maxResults=None, startIndex=None)</a></code></p>
+<p class="firstline">Generate an AdSense report based on the saved report ID sent in the query parameters.</p>
+<p class="toc_element">
+  <code><a href="#list">list(pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">List all saved reports in this AdSense 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="generate">generate(savedReportId, locale=None, maxResults=None, startIndex=None)</code>
+  <pre>Generate an AdSense report based on the saved report ID sent in the query parameters.
+
+Args:
+  savedReportId: string, The saved report to retrieve. (required)
+  locale: string, Optional locale to use for translating report output to a local language. Defaults to "en_US" if not specified.
+  maxResults: integer, The maximum number of rows of report data to return.
+  startIndex: integer, Index of the first row of report data to return.
+
+Returns:
+  An object of the form:
+
+    {
+    "startDate": "A String", # The requested start date in yyyy-mm-dd format.
+    "kind": "adsense#report", # Kind this is, in this case adsense#report.
+    "rows": [ # The output rows of the report. Each row is a list of cells; one for each dimension in the request, followed by one for each metric in the request. The dimension cells contain strings, and the metric cells contain numbers.
+      [
+        "A String",
+      ],
+    ],
+    "endDate": "A String", # The requested end date in yyyy-mm-dd format.
+    "warnings": [ # Any warnings associated with generation of the report.
+      "A String",
+    ],
+    "totals": [ # The totals of the report. This is the same length as any other row in the report; cells corresponding to dimension columns are empty.
+      "A String",
+    ],
+    "headers": [ # The header information of the columns requested in the report. This is a list of headers; one for each dimension in the request, followed by one for each metric in the request.
+      {
+        "currency": "A String", # The currency of this column. Only present if the header type is METRIC_CURRENCY.
+        "type": "A String", # The type of the header; one of DIMENSION, METRIC_TALLY, METRIC_RATIO, or METRIC_CURRENCY.
+        "name": "A String", # The name of the header.
+      },
+    ],
+    "totalMatchedRows": "A String", # The total number of rows matched by the report request. Fewer rows may be returned in the response due to being limited by the row count requested or the report row limit.
+    "averages": [ # The averages of the report. This is the same length as any other row in the report; cells corresponding to dimension columns are empty.
+      "A String",
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(pageToken=None, maxResults=None)</code>
+  <pre>List all saved reports in this AdSense account.
+
+Args:
+  pageToken: string, A continuation token, used to page through saved reports. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+  maxResults: integer, The maximum number of saved reports to include in the response, used for paging.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Continuation token used to page through saved reports. To retrieve the next page of results, set the next request's "pageToken" value to this.
+    "items": [ # The saved reports returned in this list response.
+      {
+        "kind": "adsense#savedReport", # Kind of resource this is, in this case adsense#savedReport.
+        "id": "A String", # Unique identifier of this saved report.
+        "name": "A String", # This saved report's name.
+      },
+    ],
+    "kind": "adsense#savedReports", # Kind of list this is, in this case adsense#savedReports.
+    "etag": "A String", # 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/adsense_v1_4.savedadstyles.html b/docs/dyn/adsense_v1_4.savedadstyles.html
new file mode 100644
index 0000000..ccc5ff6
--- /dev/null
+++ b/docs/dyn/adsense_v1_4.savedadstyles.html
@@ -0,0 +1,173 @@
+<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="adsense_v1_4.html">AdSense Management API</a> . <a href="adsense_v1_4.savedadstyles.html">savedadstyles</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(savedAdStyleId)</a></code></p>
+<p class="firstline">Get a specific saved ad style from the user's account.</p>
+<p class="toc_element">
+  <code><a href="#list">list(pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">List all saved ad styles in the user's 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="get">get(savedAdStyleId)</code>
+  <pre>Get a specific saved ad style from the user's account.
+
+Args:
+  savedAdStyleId: string, Saved ad style to retrieve. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "adsense#savedAdStyle", # Kind of resource this is, in this case adsense#savedAdStyle.
+    "adStyle": { # The AdStyle itself.
+      "corners": "A String", # The style of the corners in the ad.
+      "colors": { # The colors which are included in the style. These are represented as six hexadecimal characters, similar to HTML color codes, but without the leading hash.
+        "url": "A String", # The color of the ad url.
+        "text": "A String", # The color of the ad text.
+        "border": "A String", # The color of the ad border.
+        "background": "A String", # The color of the ad background.
+        "title": "A String", # The color of the ad title.
+      },
+      "font": { # The font which is included in the style.
+        "family": "A String", # The family of the font.
+        "size": "A String", # The size of the font.
+      },
+      "kind": "adsense#adStyle", # Kind this is, in this case adsense#adStyle.
+    },
+    "name": "A String", # The user selected name of this SavedAdStyle.
+    "id": "A String", # Unique identifier of this saved ad style. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(pageToken=None, maxResults=None)</code>
+  <pre>List all saved ad styles in the user's account.
+
+Args:
+  pageToken: string, A continuation token, used to page through saved ad styles. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+  maxResults: integer, The maximum number of saved ad styles to include in the response, used for paging.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Continuation token used to page through ad units. To retrieve the next page of results, set the next request's "pageToken" value to this.
+    "items": [ # The saved ad styles returned in this list response.
+      {
+        "kind": "adsense#savedAdStyle", # Kind of resource this is, in this case adsense#savedAdStyle.
+        "adStyle": { # The AdStyle itself.
+          "corners": "A String", # The style of the corners in the ad.
+          "colors": { # The colors which are included in the style. These are represented as six hexadecimal characters, similar to HTML color codes, but without the leading hash.
+            "url": "A String", # The color of the ad url.
+            "text": "A String", # The color of the ad text.
+            "border": "A String", # The color of the ad border.
+            "background": "A String", # The color of the ad background.
+            "title": "A String", # The color of the ad title.
+          },
+          "font": { # The font which is included in the style.
+            "family": "A String", # The family of the font.
+            "size": "A String", # The size of the font.
+          },
+          "kind": "adsense#adStyle", # Kind this is, in this case adsense#adStyle.
+        },
+        "name": "A String", # The user selected name of this SavedAdStyle.
+        "id": "A String", # Unique identifier of this saved ad style. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+      },
+    ],
+    "kind": "adsense#savedAdStyles", # Kind of list this is, in this case adsense#savedAdStyles.
+    "etag": "A String", # 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/adsense_v1_4.urlchannels.html b/docs/dyn/adsense_v1_4.urlchannels.html
new file mode 100644
index 0000000..30b3bb2
--- /dev/null
+++ b/docs/dyn/adsense_v1_4.urlchannels.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="adsense_v1_4.html">AdSense Management API</a> . <a href="adsense_v1_4.urlchannels.html">urlchannels</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(adClientId, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">List all URL channels in the specified ad client for this AdSense 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="list">list(adClientId, pageToken=None, maxResults=None)</code>
+  <pre>List all URL channels in the specified ad client for this AdSense account.
+
+Args:
+  adClientId: string, Ad client for which to list URL channels. (required)
+  pageToken: string, A continuation token, used to page through URL channels. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+  maxResults: integer, The maximum number of URL channels to include in the response, used for paging.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Continuation token used to page through URL channels. To retrieve the next page of results, set the next request's "pageToken" value to this.
+    "items": [ # The URL channels returned in this list response.
+      {
+        "kind": "adsense#urlChannel", # Kind of resource this is, in this case adsense#urlChannel.
+        "id": "A String", # Unique identifier of this URL channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+        "urlPattern": "A String", # URL Pattern of this URL channel. Does not include "http://" or "https://". Example: www.example.com/home
+      },
+    ],
+    "kind": "adsense#urlChannels", # Kind of list this is, in this case adsense#urlChannels.
+    "etag": "A String", # 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/adsensehost_v4_1.accounts.adclients.html b/docs/dyn/adsensehost_v4_1.accounts.adclients.html
new file mode 100644
index 0000000..9fb1929
--- /dev/null
+++ b/docs/dyn/adsensehost_v4_1.accounts.adclients.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="adsensehost_v4_1.html">AdSense Host API</a> . <a href="adsensehost_v4_1.accounts.html">accounts</a> . <a href="adsensehost_v4_1.accounts.adclients.html">adclients</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(accountId, adClientId)</a></code></p>
+<p class="firstline">Get information about one of the ad clients in the specified publisher's AdSense account.</p>
+<p class="toc_element">
+  <code><a href="#list">list(accountId, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">List all hosted ad clients in the specified hosted 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="get">get(accountId, adClientId)</code>
+  <pre>Get information about one of the ad clients in the specified publisher's AdSense account.
+
+Args:
+  accountId: string, Account which contains the ad client. (required)
+  adClientId: string, Ad client to get. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "productCode": "A String", # This ad client's product code, which corresponds to the PRODUCT_CODE report dimension.
+    "kind": "adsensehost#adClient", # Kind of resource this is, in this case adsensehost#adClient.
+    "id": "A String", # Unique identifier of this ad client.
+    "arcOptIn": True or False, # Whether this ad client is opted in to ARC.
+    "supportsReporting": True or False, # Whether this ad client supports being reported on.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(accountId, pageToken=None, maxResults=None)</code>
+  <pre>List all hosted ad clients in the specified hosted account.
+
+Args:
+  accountId: string, Account for which to list ad clients. (required)
+  pageToken: string, A continuation token, used to page through ad clients. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+  maxResults: integer, The maximum number of ad clients to include in the response, used for paging.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Continuation token used to page through ad clients. To retrieve the next page of results, set the next request's "pageToken" value to this.
+    "items": [ # The ad clients returned in this list response.
+      {
+        "productCode": "A String", # This ad client's product code, which corresponds to the PRODUCT_CODE report dimension.
+        "kind": "adsensehost#adClient", # Kind of resource this is, in this case adsensehost#adClient.
+        "id": "A String", # Unique identifier of this ad client.
+        "arcOptIn": True or False, # Whether this ad client is opted in to ARC.
+        "supportsReporting": True or False, # Whether this ad client supports being reported on.
+      },
+    ],
+    "kind": "adsensehost#adClients", # Kind of list this is, in this case adsensehost#adClients.
+    "etag": "A String", # 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/adsensehost_v4_1.accounts.adunits.html b/docs/dyn/adsensehost_v4_1.accounts.adunits.html
new file mode 100644
index 0000000..167fa1e
--- /dev/null
+++ b/docs/dyn/adsensehost_v4_1.accounts.adunits.html
@@ -0,0 +1,616 @@
+<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="adsensehost_v4_1.html">AdSense Host API</a> . <a href="adsensehost_v4_1.accounts.html">accounts</a> . <a href="adsensehost_v4_1.accounts.adunits.html">adunits</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(accountId, adClientId, adUnitId)</a></code></p>
+<p class="firstline">Delete the specified ad unit from the specified publisher AdSense account.</p>
+<p class="toc_element">
+  <code><a href="#get">get(accountId, adClientId, adUnitId)</a></code></p>
+<p class="firstline">Get the specified host ad unit in this AdSense account.</p>
+<p class="toc_element">
+  <code><a href="#getAdCode">getAdCode(accountId, adClientId, adUnitId, hostCustomChannelId=None)</a></code></p>
+<p class="firstline">Get ad code for the specified ad unit, attaching the specified host custom channels.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(accountId, adClientId, body)</a></code></p>
+<p class="firstline">Insert the supplied ad unit into the specified publisher AdSense account.</p>
+<p class="toc_element">
+  <code><a href="#list">list(accountId, adClientId, pageToken=None, includeInactive=None, maxResults=None)</a></code></p>
+<p class="firstline">List all ad units in the specified publisher's AdSense 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(accountId, adClientId, adUnitId, body)</a></code></p>
+<p class="firstline">Update the supplied ad unit in the specified publisher AdSense account. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(accountId, adClientId, body)</a></code></p>
+<p class="firstline">Update the supplied ad unit in the specified publisher AdSense account.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(accountId, adClientId, adUnitId)</code>
+  <pre>Delete the specified ad unit from the specified publisher AdSense account.
+
+Args:
+  accountId: string, Account which contains the ad unit. (required)
+  adClientId: string, Ad client for which to get ad unit. (required)
+  adUnitId: string, Ad unit to delete. (required)
+
+Returns:
+  An object of the form:
+
+    {
+      "status": "A String", # Status of this ad unit. Possible values are:
+          # NEW: Indicates that the ad unit was created within the last seven days and does not yet have any activity associated with it.
+          #
+          # ACTIVE: Indicates that there has been activity on this ad unit in the last seven days.
+          #
+          # INACTIVE: Indicates that there has been no activity on this ad unit in the last seven days.
+      "kind": "adsensehost#adUnit", # Kind of resource this is, in this case adsensehost#adUnit.
+      "code": "A String", # Identity code of this ad unit, not necessarily unique across ad clients.
+      "name": "A String", # Name of this ad unit.
+      "contentAdsSettings": { # Settings specific to content ads (AFC) and highend mobile content ads (AFMC).
+        "type": "A String", # Type of this ad unit. Possible values are TEXT, TEXT_IMAGE, IMAGE and LINK.
+        "backupOption": { # The backup option to be used in instances where no ad is available.
+          "color": "A String", # Color to use when type is set to COLOR. These are represented as six hexadecimal characters, similar to HTML color codes, but without the leading hash.
+          "url": "A String", # URL to use when type is set to URL.
+          "type": "A String", # Type of the backup option. Possible values are BLANK, COLOR and URL.
+        },
+        "size": "A String", # Size of this ad unit. Size values are in the form SIZE_{width}_{height}.
+      },
+      "id": "A String", # Unique identifier of this ad unit. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+      "mobileContentAdsSettings": { # Settings specific to WAP mobile content ads (AFMC).
+        "scriptingLanguage": "A String", # The scripting language to use for this ad unit.
+        "type": "A String", # Type of this ad unit.
+        "markupLanguage": "A String", # The markup language to use for this ad unit.
+        "size": "A String", # Size of this ad unit.
+      },
+      "customStyle": { # Custom style information specific to this ad unit.
+        "corners": "A String", # The style of the corners in the ad. Possible values are SQUARE, SLIGHTLY_ROUNDED and VERY_ROUNDED.
+        "colors": { # The colors included in the style. These are represented as six hexadecimal characters, similar to HTML color codes, but without the leading hash.
+          "url": "A String", # The color of the ad url.
+          "text": "A String", # The color of the ad text.
+          "border": "A String", # The color of the ad border.
+          "background": "A String", # The color of the ad background.
+          "title": "A String", # The color of the ad title.
+        },
+        "font": { # The font which is included in the style.
+          "family": "A String", # The family of the font. Possible values are: ACCOUNT_DEFAULT_FAMILY, ADSENSE_DEFAULT_FAMILY, ARIAL, TIMES and VERDANA.
+          "size": "A String", # The size of the font. Possible values are: ACCOUNT_DEFAULT_SIZE, ADSENSE_DEFAULT_SIZE, SMALL, MEDIUM and LARGE.
+        },
+        "kind": "adsensehost#adStyle", # Kind this is, in this case adsensehost#adStyle.
+      },
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(accountId, adClientId, adUnitId)</code>
+  <pre>Get the specified host ad unit in this AdSense account.
+
+Args:
+  accountId: string, Account which contains the ad unit. (required)
+  adClientId: string, Ad client for which to get ad unit. (required)
+  adUnitId: string, Ad unit to get. (required)
+
+Returns:
+  An object of the form:
+
+    {
+      "status": "A String", # Status of this ad unit. Possible values are:
+          # NEW: Indicates that the ad unit was created within the last seven days and does not yet have any activity associated with it.
+          #
+          # ACTIVE: Indicates that there has been activity on this ad unit in the last seven days.
+          #
+          # INACTIVE: Indicates that there has been no activity on this ad unit in the last seven days.
+      "kind": "adsensehost#adUnit", # Kind of resource this is, in this case adsensehost#adUnit.
+      "code": "A String", # Identity code of this ad unit, not necessarily unique across ad clients.
+      "name": "A String", # Name of this ad unit.
+      "contentAdsSettings": { # Settings specific to content ads (AFC) and highend mobile content ads (AFMC).
+        "type": "A String", # Type of this ad unit. Possible values are TEXT, TEXT_IMAGE, IMAGE and LINK.
+        "backupOption": { # The backup option to be used in instances where no ad is available.
+          "color": "A String", # Color to use when type is set to COLOR. These are represented as six hexadecimal characters, similar to HTML color codes, but without the leading hash.
+          "url": "A String", # URL to use when type is set to URL.
+          "type": "A String", # Type of the backup option. Possible values are BLANK, COLOR and URL.
+        },
+        "size": "A String", # Size of this ad unit. Size values are in the form SIZE_{width}_{height}.
+      },
+      "id": "A String", # Unique identifier of this ad unit. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+      "mobileContentAdsSettings": { # Settings specific to WAP mobile content ads (AFMC).
+        "scriptingLanguage": "A String", # The scripting language to use for this ad unit.
+        "type": "A String", # Type of this ad unit.
+        "markupLanguage": "A String", # The markup language to use for this ad unit.
+        "size": "A String", # Size of this ad unit.
+      },
+      "customStyle": { # Custom style information specific to this ad unit.
+        "corners": "A String", # The style of the corners in the ad. Possible values are SQUARE, SLIGHTLY_ROUNDED and VERY_ROUNDED.
+        "colors": { # The colors included in the style. These are represented as six hexadecimal characters, similar to HTML color codes, but without the leading hash.
+          "url": "A String", # The color of the ad url.
+          "text": "A String", # The color of the ad text.
+          "border": "A String", # The color of the ad border.
+          "background": "A String", # The color of the ad background.
+          "title": "A String", # The color of the ad title.
+        },
+        "font": { # The font which is included in the style.
+          "family": "A String", # The family of the font. Possible values are: ACCOUNT_DEFAULT_FAMILY, ADSENSE_DEFAULT_FAMILY, ARIAL, TIMES and VERDANA.
+          "size": "A String", # The size of the font. Possible values are: ACCOUNT_DEFAULT_SIZE, ADSENSE_DEFAULT_SIZE, SMALL, MEDIUM and LARGE.
+        },
+        "kind": "adsensehost#adStyle", # Kind this is, in this case adsensehost#adStyle.
+      },
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getAdCode">getAdCode(accountId, adClientId, adUnitId, hostCustomChannelId=None)</code>
+  <pre>Get ad code for the specified ad unit, attaching the specified host custom channels.
+
+Args:
+  accountId: string, Account which contains the ad client. (required)
+  adClientId: string, Ad client with contains the ad unit. (required)
+  adUnitId: string, Ad unit to get the code for. (required)
+  hostCustomChannelId: string, Host custom channel to attach to the ad code. (repeated)
+
+Returns:
+  An object of the form:
+
+    {
+    "adCode": "A String", # The ad code snippet.
+    "kind": "adsensehost#adCode", # Kind this is, in this case adsensehost#adCode.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(accountId, adClientId, body)</code>
+  <pre>Insert the supplied ad unit into the specified publisher AdSense account.
+
+Args:
+  accountId: string, Account which will contain the ad unit. (required)
+  adClientId: string, Ad client into which to insert the ad unit. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "status": "A String", # Status of this ad unit. Possible values are:
+        # NEW: Indicates that the ad unit was created within the last seven days and does not yet have any activity associated with it.
+        # 
+        # ACTIVE: Indicates that there has been activity on this ad unit in the last seven days.
+        # 
+        # INACTIVE: Indicates that there has been no activity on this ad unit in the last seven days.
+    "kind": "adsensehost#adUnit", # Kind of resource this is, in this case adsensehost#adUnit.
+    "code": "A String", # Identity code of this ad unit, not necessarily unique across ad clients.
+    "name": "A String", # Name of this ad unit.
+    "contentAdsSettings": { # Settings specific to content ads (AFC) and highend mobile content ads (AFMC).
+      "type": "A String", # Type of this ad unit. Possible values are TEXT, TEXT_IMAGE, IMAGE and LINK.
+      "backupOption": { # The backup option to be used in instances where no ad is available.
+        "color": "A String", # Color to use when type is set to COLOR. These are represented as six hexadecimal characters, similar to HTML color codes, but without the leading hash.
+        "url": "A String", # URL to use when type is set to URL.
+        "type": "A String", # Type of the backup option. Possible values are BLANK, COLOR and URL.
+      },
+      "size": "A String", # Size of this ad unit. Size values are in the form SIZE_{width}_{height}.
+    },
+    "id": "A String", # Unique identifier of this ad unit. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+    "mobileContentAdsSettings": { # Settings specific to WAP mobile content ads (AFMC).
+      "scriptingLanguage": "A String", # The scripting language to use for this ad unit.
+      "type": "A String", # Type of this ad unit.
+      "markupLanguage": "A String", # The markup language to use for this ad unit.
+      "size": "A String", # Size of this ad unit.
+    },
+    "customStyle": { # Custom style information specific to this ad unit.
+      "corners": "A String", # The style of the corners in the ad. Possible values are SQUARE, SLIGHTLY_ROUNDED and VERY_ROUNDED.
+      "colors": { # The colors included in the style. These are represented as six hexadecimal characters, similar to HTML color codes, but without the leading hash.
+        "url": "A String", # The color of the ad url.
+        "text": "A String", # The color of the ad text.
+        "border": "A String", # The color of the ad border.
+        "background": "A String", # The color of the ad background.
+        "title": "A String", # The color of the ad title.
+      },
+      "font": { # The font which is included in the style.
+        "family": "A String", # The family of the font. Possible values are: ACCOUNT_DEFAULT_FAMILY, ADSENSE_DEFAULT_FAMILY, ARIAL, TIMES and VERDANA.
+        "size": "A String", # The size of the font. Possible values are: ACCOUNT_DEFAULT_SIZE, ADSENSE_DEFAULT_SIZE, SMALL, MEDIUM and LARGE.
+      },
+      "kind": "adsensehost#adStyle", # Kind this is, in this case adsensehost#adStyle.
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "status": "A String", # Status of this ad unit. Possible values are:
+          # NEW: Indicates that the ad unit was created within the last seven days and does not yet have any activity associated with it.
+          #
+          # ACTIVE: Indicates that there has been activity on this ad unit in the last seven days.
+          #
+          # INACTIVE: Indicates that there has been no activity on this ad unit in the last seven days.
+      "kind": "adsensehost#adUnit", # Kind of resource this is, in this case adsensehost#adUnit.
+      "code": "A String", # Identity code of this ad unit, not necessarily unique across ad clients.
+      "name": "A String", # Name of this ad unit.
+      "contentAdsSettings": { # Settings specific to content ads (AFC) and highend mobile content ads (AFMC).
+        "type": "A String", # Type of this ad unit. Possible values are TEXT, TEXT_IMAGE, IMAGE and LINK.
+        "backupOption": { # The backup option to be used in instances where no ad is available.
+          "color": "A String", # Color to use when type is set to COLOR. These are represented as six hexadecimal characters, similar to HTML color codes, but without the leading hash.
+          "url": "A String", # URL to use when type is set to URL.
+          "type": "A String", # Type of the backup option. Possible values are BLANK, COLOR and URL.
+        },
+        "size": "A String", # Size of this ad unit. Size values are in the form SIZE_{width}_{height}.
+      },
+      "id": "A String", # Unique identifier of this ad unit. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+      "mobileContentAdsSettings": { # Settings specific to WAP mobile content ads (AFMC).
+        "scriptingLanguage": "A String", # The scripting language to use for this ad unit.
+        "type": "A String", # Type of this ad unit.
+        "markupLanguage": "A String", # The markup language to use for this ad unit.
+        "size": "A String", # Size of this ad unit.
+      },
+      "customStyle": { # Custom style information specific to this ad unit.
+        "corners": "A String", # The style of the corners in the ad. Possible values are SQUARE, SLIGHTLY_ROUNDED and VERY_ROUNDED.
+        "colors": { # The colors included in the style. These are represented as six hexadecimal characters, similar to HTML color codes, but without the leading hash.
+          "url": "A String", # The color of the ad url.
+          "text": "A String", # The color of the ad text.
+          "border": "A String", # The color of the ad border.
+          "background": "A String", # The color of the ad background.
+          "title": "A String", # The color of the ad title.
+        },
+        "font": { # The font which is included in the style.
+          "family": "A String", # The family of the font. Possible values are: ACCOUNT_DEFAULT_FAMILY, ADSENSE_DEFAULT_FAMILY, ARIAL, TIMES and VERDANA.
+          "size": "A String", # The size of the font. Possible values are: ACCOUNT_DEFAULT_SIZE, ADSENSE_DEFAULT_SIZE, SMALL, MEDIUM and LARGE.
+        },
+        "kind": "adsensehost#adStyle", # Kind this is, in this case adsensehost#adStyle.
+      },
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(accountId, adClientId, pageToken=None, includeInactive=None, maxResults=None)</code>
+  <pre>List all ad units in the specified publisher's AdSense account.
+
+Args:
+  accountId: string, Account which contains the ad client. (required)
+  adClientId: string, Ad client for which to list ad units. (required)
+  pageToken: string, A continuation token, used to page through ad units. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+  includeInactive: boolean, Whether to include inactive ad units. Default: true.
+  maxResults: integer, The maximum number of ad units to include in the response, used for paging.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Continuation token used to page through ad units. To retrieve the next page of results, set the next request's "pageToken" value to this.
+    "items": [ # The ad units returned in this list response.
+      {
+          "status": "A String", # Status of this ad unit. Possible values are:
+              # NEW: Indicates that the ad unit was created within the last seven days and does not yet have any activity associated with it.
+              #
+              # ACTIVE: Indicates that there has been activity on this ad unit in the last seven days.
+              #
+              # INACTIVE: Indicates that there has been no activity on this ad unit in the last seven days.
+          "kind": "adsensehost#adUnit", # Kind of resource this is, in this case adsensehost#adUnit.
+          "code": "A String", # Identity code of this ad unit, not necessarily unique across ad clients.
+          "name": "A String", # Name of this ad unit.
+          "contentAdsSettings": { # Settings specific to content ads (AFC) and highend mobile content ads (AFMC).
+            "type": "A String", # Type of this ad unit. Possible values are TEXT, TEXT_IMAGE, IMAGE and LINK.
+            "backupOption": { # The backup option to be used in instances where no ad is available.
+              "color": "A String", # Color to use when type is set to COLOR. These are represented as six hexadecimal characters, similar to HTML color codes, but without the leading hash.
+              "url": "A String", # URL to use when type is set to URL.
+              "type": "A String", # Type of the backup option. Possible values are BLANK, COLOR and URL.
+            },
+            "size": "A String", # Size of this ad unit. Size values are in the form SIZE_{width}_{height}.
+          },
+          "id": "A String", # Unique identifier of this ad unit. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+          "mobileContentAdsSettings": { # Settings specific to WAP mobile content ads (AFMC).
+            "scriptingLanguage": "A String", # The scripting language to use for this ad unit.
+            "type": "A String", # Type of this ad unit.
+            "markupLanguage": "A String", # The markup language to use for this ad unit.
+            "size": "A String", # Size of this ad unit.
+          },
+          "customStyle": { # Custom style information specific to this ad unit.
+            "corners": "A String", # The style of the corners in the ad. Possible values are SQUARE, SLIGHTLY_ROUNDED and VERY_ROUNDED.
+            "colors": { # The colors included in the style. These are represented as six hexadecimal characters, similar to HTML color codes, but without the leading hash.
+              "url": "A String", # The color of the ad url.
+              "text": "A String", # The color of the ad text.
+              "border": "A String", # The color of the ad border.
+              "background": "A String", # The color of the ad background.
+              "title": "A String", # The color of the ad title.
+            },
+            "font": { # The font which is included in the style.
+              "family": "A String", # The family of the font. Possible values are: ACCOUNT_DEFAULT_FAMILY, ADSENSE_DEFAULT_FAMILY, ARIAL, TIMES and VERDANA.
+              "size": "A String", # The size of the font. Possible values are: ACCOUNT_DEFAULT_SIZE, ADSENSE_DEFAULT_SIZE, SMALL, MEDIUM and LARGE.
+            },
+            "kind": "adsensehost#adStyle", # Kind this is, in this case adsensehost#adStyle.
+          },
+        },
+    ],
+    "kind": "adsensehost#adUnits", # Kind of list this is, in this case adsensehost#adUnits.
+    "etag": "A String", # 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(accountId, adClientId, adUnitId, body)</code>
+  <pre>Update the supplied ad unit in the specified publisher AdSense account. This method supports patch semantics.
+
+Args:
+  accountId: string, Account which contains the ad client. (required)
+  adClientId: string, Ad client which contains the ad unit. (required)
+  adUnitId: string, Ad unit to get. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "status": "A String", # Status of this ad unit. Possible values are:
+        # NEW: Indicates that the ad unit was created within the last seven days and does not yet have any activity associated with it.
+        # 
+        # ACTIVE: Indicates that there has been activity on this ad unit in the last seven days.
+        # 
+        # INACTIVE: Indicates that there has been no activity on this ad unit in the last seven days.
+    "kind": "adsensehost#adUnit", # Kind of resource this is, in this case adsensehost#adUnit.
+    "code": "A String", # Identity code of this ad unit, not necessarily unique across ad clients.
+    "name": "A String", # Name of this ad unit.
+    "contentAdsSettings": { # Settings specific to content ads (AFC) and highend mobile content ads (AFMC).
+      "type": "A String", # Type of this ad unit. Possible values are TEXT, TEXT_IMAGE, IMAGE and LINK.
+      "backupOption": { # The backup option to be used in instances where no ad is available.
+        "color": "A String", # Color to use when type is set to COLOR. These are represented as six hexadecimal characters, similar to HTML color codes, but without the leading hash.
+        "url": "A String", # URL to use when type is set to URL.
+        "type": "A String", # Type of the backup option. Possible values are BLANK, COLOR and URL.
+      },
+      "size": "A String", # Size of this ad unit. Size values are in the form SIZE_{width}_{height}.
+    },
+    "id": "A String", # Unique identifier of this ad unit. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+    "mobileContentAdsSettings": { # Settings specific to WAP mobile content ads (AFMC).
+      "scriptingLanguage": "A String", # The scripting language to use for this ad unit.
+      "type": "A String", # Type of this ad unit.
+      "markupLanguage": "A String", # The markup language to use for this ad unit.
+      "size": "A String", # Size of this ad unit.
+    },
+    "customStyle": { # Custom style information specific to this ad unit.
+      "corners": "A String", # The style of the corners in the ad. Possible values are SQUARE, SLIGHTLY_ROUNDED and VERY_ROUNDED.
+      "colors": { # The colors included in the style. These are represented as six hexadecimal characters, similar to HTML color codes, but without the leading hash.
+        "url": "A String", # The color of the ad url.
+        "text": "A String", # The color of the ad text.
+        "border": "A String", # The color of the ad border.
+        "background": "A String", # The color of the ad background.
+        "title": "A String", # The color of the ad title.
+      },
+      "font": { # The font which is included in the style.
+        "family": "A String", # The family of the font. Possible values are: ACCOUNT_DEFAULT_FAMILY, ADSENSE_DEFAULT_FAMILY, ARIAL, TIMES and VERDANA.
+        "size": "A String", # The size of the font. Possible values are: ACCOUNT_DEFAULT_SIZE, ADSENSE_DEFAULT_SIZE, SMALL, MEDIUM and LARGE.
+      },
+      "kind": "adsensehost#adStyle", # Kind this is, in this case adsensehost#adStyle.
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "status": "A String", # Status of this ad unit. Possible values are:
+          # NEW: Indicates that the ad unit was created within the last seven days and does not yet have any activity associated with it.
+          #
+          # ACTIVE: Indicates that there has been activity on this ad unit in the last seven days.
+          #
+          # INACTIVE: Indicates that there has been no activity on this ad unit in the last seven days.
+      "kind": "adsensehost#adUnit", # Kind of resource this is, in this case adsensehost#adUnit.
+      "code": "A String", # Identity code of this ad unit, not necessarily unique across ad clients.
+      "name": "A String", # Name of this ad unit.
+      "contentAdsSettings": { # Settings specific to content ads (AFC) and highend mobile content ads (AFMC).
+        "type": "A String", # Type of this ad unit. Possible values are TEXT, TEXT_IMAGE, IMAGE and LINK.
+        "backupOption": { # The backup option to be used in instances where no ad is available.
+          "color": "A String", # Color to use when type is set to COLOR. These are represented as six hexadecimal characters, similar to HTML color codes, but without the leading hash.
+          "url": "A String", # URL to use when type is set to URL.
+          "type": "A String", # Type of the backup option. Possible values are BLANK, COLOR and URL.
+        },
+        "size": "A String", # Size of this ad unit. Size values are in the form SIZE_{width}_{height}.
+      },
+      "id": "A String", # Unique identifier of this ad unit. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+      "mobileContentAdsSettings": { # Settings specific to WAP mobile content ads (AFMC).
+        "scriptingLanguage": "A String", # The scripting language to use for this ad unit.
+        "type": "A String", # Type of this ad unit.
+        "markupLanguage": "A String", # The markup language to use for this ad unit.
+        "size": "A String", # Size of this ad unit.
+      },
+      "customStyle": { # Custom style information specific to this ad unit.
+        "corners": "A String", # The style of the corners in the ad. Possible values are SQUARE, SLIGHTLY_ROUNDED and VERY_ROUNDED.
+        "colors": { # The colors included in the style. These are represented as six hexadecimal characters, similar to HTML color codes, but without the leading hash.
+          "url": "A String", # The color of the ad url.
+          "text": "A String", # The color of the ad text.
+          "border": "A String", # The color of the ad border.
+          "background": "A String", # The color of the ad background.
+          "title": "A String", # The color of the ad title.
+        },
+        "font": { # The font which is included in the style.
+          "family": "A String", # The family of the font. Possible values are: ACCOUNT_DEFAULT_FAMILY, ADSENSE_DEFAULT_FAMILY, ARIAL, TIMES and VERDANA.
+          "size": "A String", # The size of the font. Possible values are: ACCOUNT_DEFAULT_SIZE, ADSENSE_DEFAULT_SIZE, SMALL, MEDIUM and LARGE.
+        },
+        "kind": "adsensehost#adStyle", # Kind this is, in this case adsensehost#adStyle.
+      },
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(accountId, adClientId, body)</code>
+  <pre>Update the supplied ad unit in the specified publisher AdSense account.
+
+Args:
+  accountId: string, Account which contains the ad client. (required)
+  adClientId: string, Ad client which contains the ad unit. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "status": "A String", # Status of this ad unit. Possible values are:
+        # NEW: Indicates that the ad unit was created within the last seven days and does not yet have any activity associated with it.
+        # 
+        # ACTIVE: Indicates that there has been activity on this ad unit in the last seven days.
+        # 
+        # INACTIVE: Indicates that there has been no activity on this ad unit in the last seven days.
+    "kind": "adsensehost#adUnit", # Kind of resource this is, in this case adsensehost#adUnit.
+    "code": "A String", # Identity code of this ad unit, not necessarily unique across ad clients.
+    "name": "A String", # Name of this ad unit.
+    "contentAdsSettings": { # Settings specific to content ads (AFC) and highend mobile content ads (AFMC).
+      "type": "A String", # Type of this ad unit. Possible values are TEXT, TEXT_IMAGE, IMAGE and LINK.
+      "backupOption": { # The backup option to be used in instances where no ad is available.
+        "color": "A String", # Color to use when type is set to COLOR. These are represented as six hexadecimal characters, similar to HTML color codes, but without the leading hash.
+        "url": "A String", # URL to use when type is set to URL.
+        "type": "A String", # Type of the backup option. Possible values are BLANK, COLOR and URL.
+      },
+      "size": "A String", # Size of this ad unit. Size values are in the form SIZE_{width}_{height}.
+    },
+    "id": "A String", # Unique identifier of this ad unit. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+    "mobileContentAdsSettings": { # Settings specific to WAP mobile content ads (AFMC).
+      "scriptingLanguage": "A String", # The scripting language to use for this ad unit.
+      "type": "A String", # Type of this ad unit.
+      "markupLanguage": "A String", # The markup language to use for this ad unit.
+      "size": "A String", # Size of this ad unit.
+    },
+    "customStyle": { # Custom style information specific to this ad unit.
+      "corners": "A String", # The style of the corners in the ad. Possible values are SQUARE, SLIGHTLY_ROUNDED and VERY_ROUNDED.
+      "colors": { # The colors included in the style. These are represented as six hexadecimal characters, similar to HTML color codes, but without the leading hash.
+        "url": "A String", # The color of the ad url.
+        "text": "A String", # The color of the ad text.
+        "border": "A String", # The color of the ad border.
+        "background": "A String", # The color of the ad background.
+        "title": "A String", # The color of the ad title.
+      },
+      "font": { # The font which is included in the style.
+        "family": "A String", # The family of the font. Possible values are: ACCOUNT_DEFAULT_FAMILY, ADSENSE_DEFAULT_FAMILY, ARIAL, TIMES and VERDANA.
+        "size": "A String", # The size of the font. Possible values are: ACCOUNT_DEFAULT_SIZE, ADSENSE_DEFAULT_SIZE, SMALL, MEDIUM and LARGE.
+      },
+      "kind": "adsensehost#adStyle", # Kind this is, in this case adsensehost#adStyle.
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "status": "A String", # Status of this ad unit. Possible values are:
+          # NEW: Indicates that the ad unit was created within the last seven days and does not yet have any activity associated with it.
+          #
+          # ACTIVE: Indicates that there has been activity on this ad unit in the last seven days.
+          #
+          # INACTIVE: Indicates that there has been no activity on this ad unit in the last seven days.
+      "kind": "adsensehost#adUnit", # Kind of resource this is, in this case adsensehost#adUnit.
+      "code": "A String", # Identity code of this ad unit, not necessarily unique across ad clients.
+      "name": "A String", # Name of this ad unit.
+      "contentAdsSettings": { # Settings specific to content ads (AFC) and highend mobile content ads (AFMC).
+        "type": "A String", # Type of this ad unit. Possible values are TEXT, TEXT_IMAGE, IMAGE and LINK.
+        "backupOption": { # The backup option to be used in instances where no ad is available.
+          "color": "A String", # Color to use when type is set to COLOR. These are represented as six hexadecimal characters, similar to HTML color codes, but without the leading hash.
+          "url": "A String", # URL to use when type is set to URL.
+          "type": "A String", # Type of the backup option. Possible values are BLANK, COLOR and URL.
+        },
+        "size": "A String", # Size of this ad unit. Size values are in the form SIZE_{width}_{height}.
+      },
+      "id": "A String", # Unique identifier of this ad unit. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+      "mobileContentAdsSettings": { # Settings specific to WAP mobile content ads (AFMC).
+        "scriptingLanguage": "A String", # The scripting language to use for this ad unit.
+        "type": "A String", # Type of this ad unit.
+        "markupLanguage": "A String", # The markup language to use for this ad unit.
+        "size": "A String", # Size of this ad unit.
+      },
+      "customStyle": { # Custom style information specific to this ad unit.
+        "corners": "A String", # The style of the corners in the ad. Possible values are SQUARE, SLIGHTLY_ROUNDED and VERY_ROUNDED.
+        "colors": { # The colors included in the style. These are represented as six hexadecimal characters, similar to HTML color codes, but without the leading hash.
+          "url": "A String", # The color of the ad url.
+          "text": "A String", # The color of the ad text.
+          "border": "A String", # The color of the ad border.
+          "background": "A String", # The color of the ad background.
+          "title": "A String", # The color of the ad title.
+        },
+        "font": { # The font which is included in the style.
+          "family": "A String", # The family of the font. Possible values are: ACCOUNT_DEFAULT_FAMILY, ADSENSE_DEFAULT_FAMILY, ARIAL, TIMES and VERDANA.
+          "size": "A String", # The size of the font. Possible values are: ACCOUNT_DEFAULT_SIZE, ADSENSE_DEFAULT_SIZE, SMALL, MEDIUM and LARGE.
+        },
+        "kind": "adsensehost#adStyle", # Kind this is, in this case adsensehost#adStyle.
+      },
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/adsensehost_v4_1.accounts.html b/docs/dyn/adsensehost_v4_1.accounts.html
new file mode 100644
index 0000000..733bf72
--- /dev/null
+++ b/docs/dyn/adsensehost_v4_1.accounts.html
@@ -0,0 +1,141 @@
+<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="adsensehost_v4_1.html">AdSense Host API</a> . <a href="adsensehost_v4_1.accounts.html">accounts</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="adsensehost_v4_1.accounts.adclients.html">adclients()</a></code>
+</p>
+<p class="firstline">Returns the adclients Resource.</p>
+
+<p class="toc_element">
+  <code><a href="adsensehost_v4_1.accounts.adunits.html">adunits()</a></code>
+</p>
+<p class="firstline">Returns the adunits Resource.</p>
+
+<p class="toc_element">
+  <code><a href="adsensehost_v4_1.accounts.reports.html">reports()</a></code>
+</p>
+<p class="firstline">Returns the reports Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#get">get(accountId)</a></code></p>
+<p class="firstline">Get information about the selected associated AdSense account.</p>
+<p class="toc_element">
+  <code><a href="#list">list(filterAdClientId)</a></code></p>
+<p class="firstline">List hosted accounts associated with this AdSense account by ad client id.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(accountId)</code>
+  <pre>Get information about the selected associated AdSense account.
+
+Args:
+  accountId: string, Account to get information about. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "status": "A String", # Approval status of this account. One of: PENDING, APPROVED, DISABLED.
+    "kind": "adsensehost#account", # Kind of resource this is, in this case adsensehost#account.
+    "id": "A String", # Unique identifier of this account.
+    "name": "A String", # Name of this account.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(filterAdClientId)</code>
+  <pre>List hosted accounts associated with this AdSense account by ad client id.
+
+Args:
+  filterAdClientId: string, Ad clients to list accounts for. (required) (repeated)
+
+Returns:
+  An object of the form:
+
+    {
+    "items": [ # The accounts returned in this list response.
+      {
+        "status": "A String", # Approval status of this account. One of: PENDING, APPROVED, DISABLED.
+        "kind": "adsensehost#account", # Kind of resource this is, in this case adsensehost#account.
+        "id": "A String", # Unique identifier of this account.
+        "name": "A String", # Name of this account.
+      },
+    ],
+    "kind": "adsensehost#accounts", # Kind of list this is, in this case adsensehost#accounts.
+    "etag": "A String", # ETag of this response for caching purposes.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/adsensehost_v4_1.accounts.reports.html b/docs/dyn/adsensehost_v4_1.accounts.reports.html
new file mode 100644
index 0000000..920e3b6
--- /dev/null
+++ b/docs/dyn/adsensehost_v4_1.accounts.reports.html
@@ -0,0 +1,127 @@
+<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="adsensehost_v4_1.html">AdSense Host API</a> . <a href="adsensehost_v4_1.accounts.html">accounts</a> . <a href="adsensehost_v4_1.accounts.reports.html">reports</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#generate">generate(accountId, startDate, endDate, sort=None, locale=None, metric=None, maxResults=None, dimension=None, startIndex=None, filter=None)</a></code></p>
+<p class="firstline">Generate an AdSense report based on the report request sent in the query parameters. Returns the result as JSON; to retrieve output in CSV format specify "alt=csv" as a query parameter.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="generate">generate(accountId, startDate, endDate, sort=None, locale=None, metric=None, maxResults=None, dimension=None, startIndex=None, filter=None)</code>
+  <pre>Generate an AdSense report based on the report request sent in the query parameters. Returns the result as JSON; to retrieve output in CSV format specify "alt=csv" as a query parameter.
+
+Args:
+  accountId: string, Hosted account upon which to report. (required)
+  startDate: string, Start of the date range to report on in "YYYY-MM-DD" format, inclusive. (required)
+  endDate: string, End of the date range to report on in "YYYY-MM-DD" format, inclusive. (required)
+  sort: string, The name of a dimension or metric to sort the resulting report on, optionally prefixed with "+" to sort ascending or "-" to sort descending. If no prefix is specified, the column is sorted ascending. (repeated)
+  locale: string, Optional locale to use for translating report output to a local language. Defaults to "en_US" if not specified.
+  metric: string, Numeric columns to include in the report. (repeated)
+  maxResults: integer, The maximum number of rows of report data to return.
+  dimension: string, Dimensions to base the report on. (repeated)
+  startIndex: integer, Index of the first row of report data to return.
+  filter: string, Filters to be run on the report. (repeated)
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "adsensehost#report", # Kind this is, in this case adsensehost#report.
+    "rows": [ # The output rows of the report. Each row is a list of cells; one for each dimension in the request, followed by one for each metric in the request. The dimension cells contain strings, and the metric cells contain numbers.
+      [
+        "A String",
+      ],
+    ],
+    "warnings": [ # Any warnings associated with generation of the report.
+      "A String",
+    ],
+    "totals": [ # The totals of the report. This is the same length as any other row in the report; cells corresponding to dimension columns are empty.
+      "A String",
+    ],
+    "headers": [ # The header information of the columns requested in the report. This is a list of headers; one for each dimension in the request, followed by one for each metric in the request.
+      {
+        "currency": "A String", # The currency of this column. Only present if the header type is METRIC_CURRENCY.
+        "type": "A String", # The type of the header; one of DIMENSION, METRIC_TALLY, METRIC_RATIO, or METRIC_CURRENCY.
+        "name": "A String", # The name of the header.
+      },
+    ],
+    "totalMatchedRows": "A String", # The total number of rows matched by the report request. Fewer rows may be returned in the response due to being limited by the row count requested or the report row limit.
+    "averages": [ # The averages of the report. This is the same length as any other row in the report; cells corresponding to dimension columns are empty.
+      "A String",
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/adsensehost_v4_1.adclients.html b/docs/dyn/adsensehost_v4_1.adclients.html
new file mode 100644
index 0000000..57422e4
--- /dev/null
+++ b/docs/dyn/adsensehost_v4_1.adclients.html
@@ -0,0 +1,147 @@
+<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="adsensehost_v4_1.html">AdSense Host API</a> . <a href="adsensehost_v4_1.adclients.html">adclients</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(adClientId)</a></code></p>
+<p class="firstline">Get information about one of the ad clients in the Host AdSense account.</p>
+<p class="toc_element">
+  <code><a href="#list">list(pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">List all host ad clients in this AdSense 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="get">get(adClientId)</code>
+  <pre>Get information about one of the ad clients in the Host AdSense account.
+
+Args:
+  adClientId: string, Ad client to get. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "productCode": "A String", # This ad client's product code, which corresponds to the PRODUCT_CODE report dimension.
+    "kind": "adsensehost#adClient", # Kind of resource this is, in this case adsensehost#adClient.
+    "id": "A String", # Unique identifier of this ad client.
+    "arcOptIn": True or False, # Whether this ad client is opted in to ARC.
+    "supportsReporting": True or False, # Whether this ad client supports being reported on.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(pageToken=None, maxResults=None)</code>
+  <pre>List all host ad clients in this AdSense account.
+
+Args:
+  pageToken: string, A continuation token, used to page through ad clients. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+  maxResults: integer, The maximum number of ad clients to include in the response, used for paging.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Continuation token used to page through ad clients. To retrieve the next page of results, set the next request's "pageToken" value to this.
+    "items": [ # The ad clients returned in this list response.
+      {
+        "productCode": "A String", # This ad client's product code, which corresponds to the PRODUCT_CODE report dimension.
+        "kind": "adsensehost#adClient", # Kind of resource this is, in this case adsensehost#adClient.
+        "id": "A String", # Unique identifier of this ad client.
+        "arcOptIn": True or False, # Whether this ad client is opted in to ARC.
+        "supportsReporting": True or False, # Whether this ad client supports being reported on.
+      },
+    ],
+    "kind": "adsensehost#adClients", # Kind of list this is, in this case adsensehost#adClients.
+    "etag": "A String", # 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/adsensehost_v4_1.associationsessions.html b/docs/dyn/adsensehost_v4_1.associationsessions.html
new file mode 100644
index 0000000..2bd44a5
--- /dev/null
+++ b/docs/dyn/adsensehost_v4_1.associationsessions.html
@@ -0,0 +1,143 @@
+<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="adsensehost_v4_1.html">AdSense Host API</a> . <a href="adsensehost_v4_1.associationsessions.html">associationsessions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#start">start(productCode, websiteUrl, websiteLocale=None, userLocale=None)</a></code></p>
+<p class="firstline">Create an association session for initiating an association with an AdSense user.</p>
+<p class="toc_element">
+  <code><a href="#verify">verify(token)</a></code></p>
+<p class="firstline">Verify an association session after the association callback returns from AdSense signup.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="start">start(productCode, websiteUrl, websiteLocale=None, userLocale=None)</code>
+  <pre>Create an association session for initiating an association with an AdSense user.
+
+Args:
+  productCode: string, Products to associate with the user. (required) (repeated)
+    Allowed values
+      AFC - AdSense For Content
+      AFG - AdSense For Games
+      AFMC - AdSense For Mobile Content
+      AFS - AdSense For Search
+      AFV - AdSense For Video
+  websiteUrl: string, The URL of the user's hosted website. (required)
+  websiteLocale: string, The locale of the user's hosted website.
+  userLocale: string, The preferred locale of the user.
+
+Returns:
+  An object of the form:
+
+    {
+    "status": "A String", # Status of the completed association, available once the association callback token has been verified. One of ACCEPTED, REJECTED, or ERROR.
+    "productCodes": [ # The products to associate with the user. Options: AFC, AFF, AFS, AFMC
+      "A String",
+    ],
+    "kind": "adsensehost#associationSession", # Kind of resource this is, in this case adsensehost#associationSession.
+    "userLocale": "A String", # The preferred locale of the user themselves when going through the AdSense association flow.
+    "websiteLocale": "A String", # The locale of the user's hosted website.
+    "redirectUrl": "A String", # Redirect URL of this association session. Used to redirect users into the AdSense association flow.
+    "websiteUrl": "A String", # The URL of the user's hosted website.
+    "id": "A String", # Unique identifier of this association session.
+    "accountId": "A String", # Hosted account id of the associated publisher after association. Present if status is ACCEPTED.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="verify">verify(token)</code>
+  <pre>Verify an association session after the association callback returns from AdSense signup.
+
+Args:
+  token: string, The token returned to the association callback URL. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "status": "A String", # Status of the completed association, available once the association callback token has been verified. One of ACCEPTED, REJECTED, or ERROR.
+    "productCodes": [ # The products to associate with the user. Options: AFC, AFF, AFS, AFMC
+      "A String",
+    ],
+    "kind": "adsensehost#associationSession", # Kind of resource this is, in this case adsensehost#associationSession.
+    "userLocale": "A String", # The preferred locale of the user themselves when going through the AdSense association flow.
+    "websiteLocale": "A String", # The locale of the user's hosted website.
+    "redirectUrl": "A String", # Redirect URL of this association session. Used to redirect users into the AdSense association flow.
+    "websiteUrl": "A String", # The URL of the user's hosted website.
+    "id": "A String", # Unique identifier of this association session.
+    "accountId": "A String", # Hosted account id of the associated publisher after association. Present if status is ACCEPTED.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/adsensehost_v4_1.customchannels.html b/docs/dyn/adsensehost_v4_1.customchannels.html
new file mode 100644
index 0000000..a0cd089
--- /dev/null
+++ b/docs/dyn/adsensehost_v4_1.customchannels.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="adsensehost_v4_1.html">AdSense Host API</a> . <a href="adsensehost_v4_1.customchannels.html">customchannels</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(adClientId, customChannelId)</a></code></p>
+<p class="firstline">Delete a specific custom channel from the host AdSense account.</p>
+<p class="toc_element">
+  <code><a href="#get">get(adClientId, customChannelId)</a></code></p>
+<p class="firstline">Get a specific custom channel from the host AdSense account.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(adClientId, body)</a></code></p>
+<p class="firstline">Add a new custom channel to the host AdSense account.</p>
+<p class="toc_element">
+  <code><a href="#list">list(adClientId, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">List all host custom channels in this AdSense 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(adClientId, customChannelId, body)</a></code></p>
+<p class="firstline">Update a custom channel in the host AdSense account. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(adClientId, body)</a></code></p>
+<p class="firstline">Update a custom channel in the host AdSense account.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(adClientId, customChannelId)</code>
+  <pre>Delete a specific custom channel from the host AdSense account.
+
+Args:
+  adClientId: string, Ad client from which to delete the custom channel. (required)
+  customChannelId: string, Custom channel to delete. (required)
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "adsensehost#customChannel", # Kind of resource this is, in this case adsensehost#customChannel.
+      "code": "A String", # Code of this custom channel, not necessarily unique across ad clients.
+      "id": "A String", # Unique identifier of this custom channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+      "name": "A String", # Name of this custom channel.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(adClientId, customChannelId)</code>
+  <pre>Get a specific custom channel from the host AdSense account.
+
+Args:
+  adClientId: string, Ad client from which to get the custom channel. (required)
+  customChannelId: string, Custom channel to get. (required)
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "adsensehost#customChannel", # Kind of resource this is, in this case adsensehost#customChannel.
+      "code": "A String", # Code of this custom channel, not necessarily unique across ad clients.
+      "id": "A String", # Unique identifier of this custom channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+      "name": "A String", # Name of this custom channel.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(adClientId, body)</code>
+  <pre>Add a new custom channel to the host AdSense account.
+
+Args:
+  adClientId: string, Ad client to which the new custom channel will be added. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "kind": "adsensehost#customChannel", # Kind of resource this is, in this case adsensehost#customChannel.
+    "code": "A String", # Code of this custom channel, not necessarily unique across ad clients.
+    "id": "A String", # Unique identifier of this custom channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+    "name": "A String", # Name of this custom channel.
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "adsensehost#customChannel", # Kind of resource this is, in this case adsensehost#customChannel.
+      "code": "A String", # Code of this custom channel, not necessarily unique across ad clients.
+      "id": "A String", # Unique identifier of this custom channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+      "name": "A String", # Name of this custom channel.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(adClientId, pageToken=None, maxResults=None)</code>
+  <pre>List all host custom channels in this AdSense account.
+
+Args:
+  adClientId: string, Ad client for which to list custom channels. (required)
+  pageToken: string, A continuation token, used to page through custom channels. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+  maxResults: integer, The maximum number of custom channels to include in the response, used for paging.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Continuation token used to page through custom channels. To retrieve the next page of results, set the next request's "pageToken" value to this.
+    "items": [ # The custom channels returned in this list response.
+      {
+          "kind": "adsensehost#customChannel", # Kind of resource this is, in this case adsensehost#customChannel.
+          "code": "A String", # Code of this custom channel, not necessarily unique across ad clients.
+          "id": "A String", # Unique identifier of this custom channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+          "name": "A String", # Name of this custom channel.
+        },
+    ],
+    "kind": "adsensehost#customChannels", # Kind of list this is, in this case adsensehost#customChannels.
+    "etag": "A String", # 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(adClientId, customChannelId, body)</code>
+  <pre>Update a custom channel in the host AdSense account. This method supports patch semantics.
+
+Args:
+  adClientId: string, Ad client in which the custom channel will be updated. (required)
+  customChannelId: string, Custom channel to get. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "kind": "adsensehost#customChannel", # Kind of resource this is, in this case adsensehost#customChannel.
+    "code": "A String", # Code of this custom channel, not necessarily unique across ad clients.
+    "id": "A String", # Unique identifier of this custom channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+    "name": "A String", # Name of this custom channel.
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "adsensehost#customChannel", # Kind of resource this is, in this case adsensehost#customChannel.
+      "code": "A String", # Code of this custom channel, not necessarily unique across ad clients.
+      "id": "A String", # Unique identifier of this custom channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+      "name": "A String", # Name of this custom channel.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(adClientId, body)</code>
+  <pre>Update a custom channel in the host AdSense account.
+
+Args:
+  adClientId: string, Ad client in which the custom channel will be updated. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "kind": "adsensehost#customChannel", # Kind of resource this is, in this case adsensehost#customChannel.
+    "code": "A String", # Code of this custom channel, not necessarily unique across ad clients.
+    "id": "A String", # Unique identifier of this custom channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+    "name": "A String", # Name of this custom channel.
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "adsensehost#customChannel", # Kind of resource this is, in this case adsensehost#customChannel.
+      "code": "A String", # Code of this custom channel, not necessarily unique across ad clients.
+      "id": "A String", # Unique identifier of this custom channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+      "name": "A String", # Name of this custom channel.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/adsensehost_v4_1.html b/docs/dyn/adsensehost_v4_1.html
new file mode 100644
index 0000000..52a5227
--- /dev/null
+++ b/docs/dyn/adsensehost_v4_1.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="adsensehost_v4_1.html">AdSense Host API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="adsensehost_v4_1.accounts.html">accounts()</a></code>
+</p>
+<p class="firstline">Returns the accounts Resource.</p>
+
+<p class="toc_element">
+  <code><a href="adsensehost_v4_1.adclients.html">adclients()</a></code>
+</p>
+<p class="firstline">Returns the adclients Resource.</p>
+
+<p class="toc_element">
+  <code><a href="adsensehost_v4_1.associationsessions.html">associationsessions()</a></code>
+</p>
+<p class="firstline">Returns the associationsessions Resource.</p>
+
+<p class="toc_element">
+  <code><a href="adsensehost_v4_1.customchannels.html">customchannels()</a></code>
+</p>
+<p class="firstline">Returns the customchannels Resource.</p>
+
+<p class="toc_element">
+  <code><a href="adsensehost_v4_1.reports.html">reports()</a></code>
+</p>
+<p class="firstline">Returns the reports Resource.</p>
+
+<p class="toc_element">
+  <code><a href="adsensehost_v4_1.urlchannels.html">urlchannels()</a></code>
+</p>
+<p class="firstline">Returns the urlchannels Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/adsensehost_v4_1.reports.html b/docs/dyn/adsensehost_v4_1.reports.html
new file mode 100644
index 0000000..6e9c039
--- /dev/null
+++ b/docs/dyn/adsensehost_v4_1.reports.html
@@ -0,0 +1,126 @@
+<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="adsensehost_v4_1.html">AdSense Host API</a> . <a href="adsensehost_v4_1.reports.html">reports</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#generate">generate(startDate, endDate, sort=None, locale=None, metric=None, maxResults=None, dimension=None, startIndex=None, filter=None)</a></code></p>
+<p class="firstline">Generate an AdSense report based on the report request sent in the query parameters. Returns the result as JSON; to retrieve output in CSV format specify "alt=csv" as a query parameter.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="generate">generate(startDate, endDate, sort=None, locale=None, metric=None, maxResults=None, dimension=None, startIndex=None, filter=None)</code>
+  <pre>Generate an AdSense report based on the report request sent in the query parameters. Returns the result as JSON; to retrieve output in CSV format specify "alt=csv" as a query parameter.
+
+Args:
+  startDate: string, Start of the date range to report on in "YYYY-MM-DD" format, inclusive. (required)
+  endDate: string, End of the date range to report on in "YYYY-MM-DD" format, inclusive. (required)
+  sort: string, The name of a dimension or metric to sort the resulting report on, optionally prefixed with "+" to sort ascending or "-" to sort descending. If no prefix is specified, the column is sorted ascending. (repeated)
+  locale: string, Optional locale to use for translating report output to a local language. Defaults to "en_US" if not specified.
+  metric: string, Numeric columns to include in the report. (repeated)
+  maxResults: integer, The maximum number of rows of report data to return.
+  dimension: string, Dimensions to base the report on. (repeated)
+  startIndex: integer, Index of the first row of report data to return.
+  filter: string, Filters to be run on the report. (repeated)
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "adsensehost#report", # Kind this is, in this case adsensehost#report.
+    "rows": [ # The output rows of the report. Each row is a list of cells; one for each dimension in the request, followed by one for each metric in the request. The dimension cells contain strings, and the metric cells contain numbers.
+      [
+        "A String",
+      ],
+    ],
+    "warnings": [ # Any warnings associated with generation of the report.
+      "A String",
+    ],
+    "totals": [ # The totals of the report. This is the same length as any other row in the report; cells corresponding to dimension columns are empty.
+      "A String",
+    ],
+    "headers": [ # The header information of the columns requested in the report. This is a list of headers; one for each dimension in the request, followed by one for each metric in the request.
+      {
+        "currency": "A String", # The currency of this column. Only present if the header type is METRIC_CURRENCY.
+        "type": "A String", # The type of the header; one of DIMENSION, METRIC_TALLY, METRIC_RATIO, or METRIC_CURRENCY.
+        "name": "A String", # The name of the header.
+      },
+    ],
+    "totalMatchedRows": "A String", # The total number of rows matched by the report request. Fewer rows may be returned in the response due to being limited by the row count requested or the report row limit.
+    "averages": [ # The averages of the report. This is the same length as any other row in the report; cells corresponding to dimension columns are empty.
+      "A String",
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/adsensehost_v4_1.urlchannels.html b/docs/dyn/adsensehost_v4_1.urlchannels.html
new file mode 100644
index 0000000..fa85805
--- /dev/null
+++ b/docs/dyn/adsensehost_v4_1.urlchannels.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="adsensehost_v4_1.html">AdSense Host API</a> . <a href="adsensehost_v4_1.urlchannels.html">urlchannels</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(adClientId, urlChannelId)</a></code></p>
+<p class="firstline">Delete a URL channel from the host AdSense account.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(adClientId, body)</a></code></p>
+<p class="firstline">Add a new URL channel to the host AdSense account.</p>
+<p class="toc_element">
+  <code><a href="#list">list(adClientId, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">List all host URL channels in the host AdSense 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="delete">delete(adClientId, urlChannelId)</code>
+  <pre>Delete a URL channel from the host AdSense account.
+
+Args:
+  adClientId: string, Ad client from which to delete the URL channel. (required)
+  urlChannelId: string, URL channel to delete. (required)
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "adsensehost#urlChannel", # Kind of resource this is, in this case adsensehost#urlChannel.
+      "id": "A String", # Unique identifier of this URL channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+      "urlPattern": "A String", # URL Pattern of this URL channel. Does not include "http://" or "https://". Example: www.example.com/home
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(adClientId, body)</code>
+  <pre>Add a new URL channel to the host AdSense account.
+
+Args:
+  adClientId: string, Ad client to which the new URL channel will be added. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "kind": "adsensehost#urlChannel", # Kind of resource this is, in this case adsensehost#urlChannel.
+    "id": "A String", # Unique identifier of this URL channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+    "urlPattern": "A String", # URL Pattern of this URL channel. Does not include "http://" or "https://". Example: www.example.com/home
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "adsensehost#urlChannel", # Kind of resource this is, in this case adsensehost#urlChannel.
+      "id": "A String", # Unique identifier of this URL channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+      "urlPattern": "A String", # URL Pattern of this URL channel. Does not include "http://" or "https://". Example: www.example.com/home
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(adClientId, pageToken=None, maxResults=None)</code>
+  <pre>List all host URL channels in the host AdSense account.
+
+Args:
+  adClientId: string, Ad client for which to list URL channels. (required)
+  pageToken: string, A continuation token, used to page through URL channels. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
+  maxResults: integer, The maximum number of URL channels to include in the response, used for paging.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Continuation token used to page through URL channels. To retrieve the next page of results, set the next request's "pageToken" value to this.
+    "items": [ # The URL channels returned in this list response.
+      {
+          "kind": "adsensehost#urlChannel", # Kind of resource this is, in this case adsensehost#urlChannel.
+          "id": "A String", # Unique identifier of this URL channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format.
+          "urlPattern": "A String", # URL Pattern of this URL channel. Does not include "http://" or "https://". Example: www.example.com/home
+        },
+    ],
+    "kind": "adsensehost#urlChannels", # Kind of list this is, in this case adsensehost#urlChannels.
+    "etag": "A String", # 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/analytics_v3.data.ga.html b/docs/dyn/analytics_v3.data.ga.html
new file mode 100644
index 0000000..5f7894e
--- /dev/null
+++ b/docs/dyn/analytics_v3.data.ga.html
@@ -0,0 +1,181 @@
+<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.data.html">data</a> . <a href="analytics_v3.data.ga.html">ga</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(ids, start_date, end_date, metrics, max_results=None, filters=None, dimensions=None, sort=None, samplingLevel=None, segment=None, start_index=None, output=None)</a></code></p>
+<p class="firstline">Returns Analytics data for a view (profile).</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(ids, start_date, end_date, metrics, max_results=None, filters=None, dimensions=None, sort=None, samplingLevel=None, segment=None, start_index=None, output=None)</code>
+  <pre>Returns Analytics data for a view (profile).
+
+Args:
+  ids: string, Unique table ID for retrieving Analytics data. Table ID is of the form ga:XXXX, where XXXX is the Analytics view (profile) ID. (required)
+  start_date: string, Start date for fetching Analytics data. Requests can specify a start date formatted as YYYY-MM-DD, or as a relative date (e.g., today, yesterday, or 7daysAgo). The default value is 7daysAgo. (required)
+  end_date: string, End date for fetching Analytics data. Request can should specify an end date formatted as YYYY-MM-DD, or as a relative date (e.g., today, yesterday, or 7daysAgo). The default value is yesterday. (required)
+  metrics: string, A comma-separated list of Analytics metrics. E.g., 'ga:sessions,ga:pageviews'. At least one metric must be specified. (required)
+  max_results: integer, The maximum number of entries to include in this feed.
+  filters: string, A comma-separated list of dimension or metric filters to be applied to Analytics data.
+  dimensions: string, A comma-separated list of Analytics dimensions. E.g., 'ga:browser,ga:city'.
+  sort: string, A comma-separated list of dimensions or metrics that determine the sort order for Analytics data.
+  samplingLevel: string, The desired sampling level.
+    Allowed values
+      DEFAULT - Returns response with a sample size that balances speed and accuracy.
+      FASTER - Returns a fast response with a smaller sample size.
+      HIGHER_PRECISION - Returns a more accurate response using a large sample size, but this may result in the response being slower.
+  segment: string, An Analytics segment to be applied to data.
+  start_index: integer, An index of the first entity to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.
+  output: string, The selected format for the response. Default format is JSON.
+    Allowed values
+      dataTable - Returns the response in Google Charts Data Table format. This is useful in creating visualization using Google Charts.
+      json - Returns the response in standard JSON format.
+
+Returns:
+  An object of the form:
+
+    { # Analytics data for a given view (profile).
+    "kind": "analytics#gaData", # Resource type.
+    "rows": [ # Analytics data rows, where each row contains a list of dimension values followed by the metric values. The order of dimensions and metrics is same as specified in the request.
+      [
+        "A String",
+      ],
+    ],
+    "containsSampledData": True or False, # Determines if Analytics data contains samples.
+    "totalResults": 42, # The total number of rows for the query, regardless of the number of rows in the response.
+    "itemsPerPage": 42, # The maximum number of rows the response can contain, regardless of the actual number of rows returned. Its value ranges from 1 to 10,000 with a value of 1000 by default, or otherwise specified by the max-results query parameter.
+    "totalsForAllResults": { # Total values for the requested metrics over all the results, not just the results returned in this response. The order of the metric totals is same as the metric order specified in the request.
+      "a_key": "A String", # Key-value pair for the total value of a metric. Key is the metric name and the value is the total value for that metric.
+    },
+    "columnHeaders": [ # Column headers that list dimension names followed by the metric names. The order of dimensions and metrics is same as specified in the request.
+      {
+        "dataType": "A String", # Data type. Dimension column headers have only STRING as the data type. Metric column headers have data types for metric values such as INTEGER, DOUBLE, CURRENCY etc.
+        "columnType": "A String", # Column Type. Either DIMENSION or METRIC.
+        "name": "A String", # Column name.
+      },
+    ],
+    "sampleSize": "A String", # The number of samples used to calculate the result.
+    "dataTable": {
+      "rows": [
+        {
+          "c": [
+            {
+              "v": "A String",
+            },
+          ],
+        },
+      ],
+      "cols": [
+        {
+          "type": "A String",
+          "id": "A String",
+          "label": "A String",
+        },
+      ],
+    },
+    "query": { # Analytics data request query parameters.
+      "max-results": 42, # Maximum results per page.
+      "sort": [ # List of dimensions or metrics based on which Analytics data is sorted.
+        "A String",
+      ],
+      "dimensions": "A String", # List of analytics dimensions.
+      "start-date": "A String", # Start date.
+      "start-index": 42, # Start index.
+      "segment": "A String", # Analytics advanced segment.
+      "ids": "A String", # Unique table ID.
+      "metrics": [ # List of analytics metrics.
+        "A String",
+      ],
+      "samplingLevel": "A String", # Desired sampling level
+      "filters": "A String", # Comma-separated list of dimension or metric filters.
+      "end-date": "A String", # End date.
+    },
+    "previousLink": "A String", # Link to previous page for this Analytics data query.
+    "nextLink": "A String", # Link to next page for this Analytics data query.
+    "profileInfo": { # Information for the view (profile), for which the Analytics data was requested.
+      "webPropertyId": "A String", # Web Property ID to which this view (profile) belongs.
+      "internalWebPropertyId": "A String", # Internal ID for the web property to which this view (profile) belongs.
+      "tableId": "A String", # Table ID for view (profile).
+      "profileId": "A String", # View (Profile) ID.
+      "profileName": "A String", # View (Profile) name.
+      "accountId": "A String", # Account ID to which this view (profile) belongs.
+    },
+    "id": "A String", # Unique ID for this data response.
+    "selfLink": "A String", # Link to this page.
+    "sampleSpace": "A String", # Total size of the sample space from which the samples were selected.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/analytics_v3.data.html b/docs/dyn/analytics_v3.data.html
new file mode 100644
index 0000000..7d24ed6
--- /dev/null
+++ b/docs/dyn/analytics_v3.data.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="analytics_v3.html">Google Analytics API</a> . <a href="analytics_v3.data.html">data</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="analytics_v3.data.ga.html">ga()</a></code>
+</p>
+<p class="firstline">Returns the ga Resource.</p>
+
+<p class="toc_element">
+  <code><a href="analytics_v3.data.mcf.html">mcf()</a></code>
+</p>
+<p class="firstline">Returns the mcf Resource.</p>
+
+<p class="toc_element">
+  <code><a href="analytics_v3.data.realtime.html">realtime()</a></code>
+</p>
+<p class="firstline">Returns the realtime Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/analytics_v3.data.mcf.html b/docs/dyn/analytics_v3.data.mcf.html
new file mode 100644
index 0000000..583b1f9
--- /dev/null
+++ b/docs/dyn/analytics_v3.data.mcf.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="analytics_v3.html">Google Analytics API</a> . <a href="analytics_v3.data.html">data</a> . <a href="analytics_v3.data.mcf.html">mcf</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(ids, start_date, end_date, metrics, sort=None, dimensions=None, filters=None, max_results=None, samplingLevel=None, start_index=None)</a></code></p>
+<p class="firstline">Returns Analytics Multi-Channel Funnels data for a view (profile).</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(ids, start_date, end_date, metrics, sort=None, dimensions=None, filters=None, max_results=None, samplingLevel=None, start_index=None)</code>
+  <pre>Returns Analytics Multi-Channel Funnels data for a view (profile).
+
+Args:
+  ids: string, Unique table ID for retrieving Analytics data. Table ID is of the form ga:XXXX, where XXXX is the Analytics view (profile) ID. (required)
+  start_date: string, Start date for fetching Analytics data. Requests can specify a start date formatted as YYYY-MM-DD, or as a relative date (e.g., today, yesterday, or 7daysAgo). The default value is 7daysAgo. (required)
+  end_date: string, End date for fetching Analytics data. Requests can specify a start date formatted as YYYY-MM-DD, or as a relative date (e.g., today, yesterday, or 7daysAgo). The default value is 7daysAgo. (required)
+  metrics: string, A comma-separated list of Multi-Channel Funnels metrics. E.g., 'mcf:totalConversions,mcf:totalConversionValue'. At least one metric must be specified. (required)
+  sort: string, A comma-separated list of dimensions or metrics that determine the sort order for the Analytics data.
+  dimensions: string, A comma-separated list of Multi-Channel Funnels dimensions. E.g., 'mcf:source,mcf:medium'.
+  filters: string, A comma-separated list of dimension or metric filters to be applied to the Analytics data.
+  max_results: integer, The maximum number of entries to include in this feed.
+  samplingLevel: string, The desired sampling level.
+    Allowed values
+      DEFAULT - Returns response with a sample size that balances speed and accuracy.
+      FASTER - Returns a fast response with a smaller sample size.
+      HIGHER_PRECISION - Returns a more accurate response using a large sample size, but this may result in the response being slower.
+  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:
+
+    { # Multi-Channel Funnels data for a given view (profile).
+    "kind": "analytics#mcfData", # Resource type.
+    "rows": [ # Analytics data rows, where each row contains a list of dimension values followed by the metric values. The order of dimensions and metrics is same as specified in the request.
+      [
+        { # A union object representing a dimension or metric value. Only one of "primitiveValue" or "conversionPathValue" attribute will be populated.
+          "primitiveValue": "A String", # A primitive dimension value. A primitive metric value.
+          "conversionPathValue": [ # A conversion path dimension value, containing a list of interactions with their attributes.
+            {
+              "nodeValue": "A String", # Node value of an interaction on conversion path. Such as source, medium etc.
+              "interactionType": "A String", # Type of an interaction on conversion path. Such as CLICK, IMPRESSION etc.
+            },
+          ],
+        },
+      ],
+    ],
+    "containsSampledData": True or False, # Determines if the Analytics data contains sampled data.
+    "totalResults": 42, # The total number of rows for the query, regardless of the number of rows in the response.
+    "itemsPerPage": 42, # The maximum number of rows the response can contain, regardless of the actual number of rows returned. Its value ranges from 1 to 10,000 with a value of 1000 by default, or otherwise specified by the max-results query parameter.
+    "totalsForAllResults": { # Total values for the requested metrics over all the results, not just the results returned in this response. The order of the metric totals is same as the metric order specified in the request.
+      "a_key": "A String", # Key-value pair for the total value of a metric. Key is the metric name and the value is the total value for that metric.
+    },
+    "nextLink": "A String", # Link to next page for this Analytics data query.
+    "sampleSize": "A String", # The number of samples used to calculate the result.
+    "id": "A String", # Unique ID for this data response.
+    "query": { # Analytics data request query parameters.
+      "max-results": 42, # Maximum results per page.
+      "sort": [ # List of dimensions or metrics based on which Analytics data is sorted.
+        "A String",
+      ],
+      "dimensions": "A String", # List of analytics dimensions.
+      "start-date": "A String", # Start date.
+      "start-index": 42, # Start index.
+      "segment": "A String", # Analytics advanced segment.
+      "ids": "A String", # Unique table ID.
+      "metrics": [ # List of analytics metrics.
+        "A String",
+      ],
+      "samplingLevel": "A String", # Desired sampling level
+      "filters": "A String", # Comma-separated list of dimension or metric filters.
+      "end-date": "A String", # End date.
+    },
+    "previousLink": "A String", # Link to previous page for this Analytics data query.
+    "profileInfo": { # Information for the view (profile), for which the Analytics data was requested.
+      "webPropertyId": "A String", # Web Property ID to which this view (profile) belongs.
+      "internalWebPropertyId": "A String", # Internal ID for the web property to which this view (profile) belongs.
+      "tableId": "A String", # Table ID for view (profile).
+      "profileId": "A String", # View (Profile) ID.
+      "profileName": "A String", # View (Profile) name.
+      "accountId": "A String", # Account ID to which this view (profile) belongs.
+    },
+    "columnHeaders": [ # Column headers that list dimension names followed by the metric names. The order of dimensions and metrics is same as specified in the request.
+      {
+        "dataType": "A String", # Data type. Dimension and metric values data types such as INTEGER, DOUBLE, CURRENCY, MCF_SEQUENCE etc.
+        "columnType": "A String", # Column Type. Either DIMENSION or METRIC.
+        "name": "A String", # Column name.
+      },
+    ],
+    "selfLink": "A String", # Link to this page.
+    "sampleSpace": "A String", # Total size of the sample space from which the samples were selected.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/analytics_v3.data.realtime.html b/docs/dyn/analytics_v3.data.realtime.html
new file mode 100644
index 0000000..443500e
--- /dev/null
+++ b/docs/dyn/analytics_v3.data.realtime.html
@@ -0,0 +1,139 @@
+<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.data.html">data</a> . <a href="analytics_v3.data.realtime.html">realtime</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(ids, metrics, sort=None, dimensions=None, filters=None, max_results=None)</a></code></p>
+<p class="firstline">Returns real time data for a view (profile).</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(ids, metrics, sort=None, dimensions=None, filters=None, max_results=None)</code>
+  <pre>Returns real time data for a view (profile).
+
+Args:
+  ids: string, Unique table ID for retrieving real time data. Table ID is of the form ga:XXXX, where XXXX is the Analytics view (profile) ID. (required)
+  metrics: string, A comma-separated list of real time metrics. E.g., 'rt:activeUsers'. At least one metric must be specified. (required)
+  sort: string, A comma-separated list of dimensions or metrics that determine the sort order for real time data.
+  dimensions: string, A comma-separated list of real time dimensions. E.g., 'rt:medium,rt:city'.
+  filters: string, A comma-separated list of dimension or metric filters to be applied to real time data.
+  max_results: integer, The maximum number of entries to include in this feed.
+
+Returns:
+  An object of the form:
+
+    { # Real time data for a given view (profile).
+    "kind": "analytics#realtimeData", # Resource type.
+    "rows": [ # Real time data rows, where each row contains a list of dimension values followed by the metric values. The order of dimensions and metrics is same as specified in the request.
+      [
+        "A String",
+      ],
+    ],
+    "totalResults": 42, # The total number of rows for the query, regardless of the number of rows in the response.
+    "totalsForAllResults": { # Total values for the requested metrics over all the results, not just the results returned in this response. The order of the metric totals is same as the metric order specified in the request.
+      "a_key": "A String", # Key-value pair for the total value of a metric. Key is the metric name and the value is the total value for that metric.
+    },
+    "id": "A String", # Unique ID for this data response.
+    "query": { # Real time data request query parameters.
+      "max-results": 42, # Maximum results per page.
+      "sort": [ # List of dimensions or metrics based on which real time data is sorted.
+        "A String",
+      ],
+      "dimensions": "A String", # List of real time dimensions.
+      "ids": "A String", # Unique table ID.
+      "metrics": [ # List of real time metrics.
+        "A String",
+      ],
+      "filters": "A String", # Comma-separated list of dimension or metric filters.
+    },
+    "profileInfo": { # Information for the view (profile), for which the real time data was requested.
+      "webPropertyId": "A String", # Web Property ID to which this view (profile) belongs.
+      "internalWebPropertyId": "A String", # Internal ID for the web property to which this view (profile) belongs.
+      "tableId": "A String", # Table ID for view (profile).
+      "profileId": "A String", # View (Profile) ID.
+      "profileName": "A String", # View (Profile) name.
+      "accountId": "A String", # Account ID to which this view (profile) belongs.
+    },
+    "columnHeaders": [ # Column headers that list dimension names followed by the metric names. The order of dimensions and metrics is same as specified in the request.
+      {
+        "dataType": "A String", # Data type. Dimension column headers have only STRING as the data type. Metric column headers have data types for metric values such as INTEGER, DOUBLE, CURRENCY etc.
+        "columnType": "A String", # Column Type. Either DIMENSION or METRIC.
+        "name": "A String", # Column name.
+      },
+    ],
+    "selfLink": "A String", # Link to this page.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/analytics_v3.html b/docs/dyn/analytics_v3.html
new file mode 100644
index 0000000..e5ab16b
--- /dev/null
+++ b/docs/dyn/analytics_v3.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="analytics_v3.html">Google Analytics API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="analytics_v3.data.html">data()</a></code>
+</p>
+<p class="firstline">Returns the data Resource.</p>
+
+<p class="toc_element">
+  <code><a href="analytics_v3.management.html">management()</a></code>
+</p>
+<p class="firstline">Returns the management Resource.</p>
+
+<p class="toc_element">
+  <code><a href="analytics_v3.metadata.html">metadata()</a></code>
+</p>
+<p class="firstline">Returns the metadata Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/analytics_v3.management.accountSummaries.html b/docs/dyn/analytics_v3.management.accountSummaries.html
new file mode 100644
index 0000000..08696f2
--- /dev/null
+++ b/docs/dyn/analytics_v3.management.accountSummaries.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="analytics_v3.html">Google Analytics API</a> . <a href="analytics_v3.management.html">management</a> . <a href="analytics_v3.management.accountSummaries.html">accountSummaries</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(max_results=None, start_index=None)</a></code></p>
+<p class="firstline">Lists account summaries (lightweight tree comprised of accounts/properties/profiles) to which the user has access.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(max_results=None, start_index=None)</code>
+  <pre>Lists account summaries (lightweight tree comprised of accounts/properties/profiles) to which the user has access.
+
+Args:
+  max_results: integer, The maximum number of filters 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:
+
+    { # An AccountSummary collection lists a summary of accounts, properties and views (profiles) to which the user has access. Each resource in the collection corresponds to a single AccountSummary.
+    "username": "A String", # Email ID of the authenticated user
+    "kind": "analytics#accountSummaries", # Collection type.
+    "items": [ # A list of AccountSummaries.
+      { # JSON template for an Analytics AccountSummary. An AccountSummary is a lightweight tree comprised of properties/profiles.
+        "kind": "analytics#accountSummary", # Resource type for Analytics AccountSummary.
+        "webProperties": [ # List of web properties under this account.
+          { # JSON template for an Analytics WebPropertySummary. WebPropertySummary returns basic information (i.e., summary) for a web property.
+            "kind": "analytics#webPropertySummary", # Resource type for Analytics WebPropertySummary.
+            "name": "A String", # Web property name.
+            "level": "A String", # Level for this web property. Possible values are STANDARD or PREMIUM.
+            "profiles": [ # List of profiles under this web property.
+              { # JSON template for an Analytics ProfileSummary. ProfileSummary returns basic information (i.e., summary) for a profile.
+                "kind": "analytics#profileSummary", # Resource type for Analytics ProfileSummary.
+                "type": "A String", # View (Profile) type. Supported types: WEB or APP.
+                "id": "A String", # View (profile) ID.
+                "name": "A String", # View (profile) name.
+              },
+            ],
+            "websiteUrl": "A String", # Website url for this web property.
+            "internalWebPropertyId": "A String", # Internal ID for this web property.
+            "id": "A String", # Web property ID of the form UA-XXXXX-YY.
+          },
+        ],
+        "id": "A String", # Account ID.
+        "name": "A String", # Account name.
+      },
+    ],
+    "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 AccountSummary 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 AccountSummary collection.
+    "totalResults": 42, # The total number of results for the query, regardless of the number of results in the response.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/analytics_v3.management.accountUserLinks.html b/docs/dyn/analytics_v3.management.accountUserLinks.html
new file mode 100644
index 0000000..e607e2e
--- /dev/null
+++ b/docs/dyn/analytics_v3.management.accountUserLinks.html
@@ -0,0 +1,372 @@
+<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.accountUserLinks.html">accountUserLinks</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(accountId, linkId)</a></code></p>
+<p class="firstline">Removes a user from the given account.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(accountId, body)</a></code></p>
+<p class="firstline">Adds a new user to the given account.</p>
+<p class="toc_element">
+  <code><a href="#list">list(accountId, max_results=None, start_index=None)</a></code></p>
+<p class="firstline">Lists account-user links for a given account.</p>
+<p class="toc_element">
+  <code><a href="#update">update(accountId, linkId, body)</a></code></p>
+<p class="firstline">Updates permissions for an existing user on the given account.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(accountId, linkId)</code>
+  <pre>Removes a user from the given account.
+
+Args:
+  accountId: string, Account ID to delete the user link for. (required)
+  linkId: string, Link ID to delete the user link for. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(accountId, body)</code>
+  <pre>Adds a new user to the given account.
+
+Args:
+  accountId: string, Account ID to create the user link for. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # JSON template for an Analytics Entity-User Link. Returns permissions that a user has for an entity.
+    "kind": "analytics#entityUserLink", # Resource type for entity user link.
+    "entity": { # Entity for this link. It can be an account, a web property, or a view (profile).
+      "accountRef": { # JSON template for a linked account. # Account for this link.
+        "kind": "analytics#accountRef", # Analytics account reference.
+        "href": "A String", # Link for this account.
+        "id": "A String", # Account ID.
+        "name": "A String", # Account name.
+      },
+      "profileRef": { # JSON template for a linked view (profile). # View (Profile) for this link.
+        "kind": "analytics#profileRef", # Analytics view (profile) reference.
+        "name": "A String", # Name of this view (profile).
+        "internalWebPropertyId": "A String", # Internal ID for the web property to which this view (profile) belongs.
+        "href": "A String", # Link for this view (profile).
+        "webPropertyId": "A String", # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
+        "id": "A String", # View (Profile) ID.
+        "accountId": "A String", # Account ID to which this view (profile) belongs.
+      },
+      "webPropertyRef": { # JSON template for a web property reference. # Web property for this link.
+        "kind": "analytics#webPropertyRef", # Analytics web property reference.
+        "name": "A String", # Name of this web property.
+        "internalWebPropertyId": "A String", # Internal ID for this web property.
+        "href": "A String", # Link for this web property.
+        "id": "A String", # Web property ID of the form UA-XXXXX-YY.
+        "accountId": "A String", # Account ID to which this web property belongs.
+      },
+    },
+    "userRef": { # JSON template for a user reference. # User reference.
+      "kind": "analytics#userRef",
+      "email": "A String", # Email ID of this user.
+      "id": "A String", # User ID.
+    },
+    "id": "A String", # Entity user link ID
+    "selfLink": "A String", # Self link for this resource.
+    "permissions": { # Permissions the user has for this entity.
+      "local": [ # Permissions that a user has been assigned at this very level. Does not include any implied or inherited permissions. Local permissions are modifiable.
+        "A String",
+      ],
+      "effective": [ # Effective permissions represent all the permissions that a user has for this entity. These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent entity. Effective permissions are read-only.
+        "A String",
+      ],
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # JSON template for an Analytics Entity-User Link. Returns permissions that a user has for an entity.
+      "kind": "analytics#entityUserLink", # Resource type for entity user link.
+      "entity": { # Entity for this link. It can be an account, a web property, or a view (profile).
+        "accountRef": { # JSON template for a linked account. # Account for this link.
+          "kind": "analytics#accountRef", # Analytics account reference.
+          "href": "A String", # Link for this account.
+          "id": "A String", # Account ID.
+          "name": "A String", # Account name.
+        },
+        "profileRef": { # JSON template for a linked view (profile). # View (Profile) for this link.
+          "kind": "analytics#profileRef", # Analytics view (profile) reference.
+          "name": "A String", # Name of this view (profile).
+          "internalWebPropertyId": "A String", # Internal ID for the web property to which this view (profile) belongs.
+          "href": "A String", # Link for this view (profile).
+          "webPropertyId": "A String", # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
+          "id": "A String", # View (Profile) ID.
+          "accountId": "A String", # Account ID to which this view (profile) belongs.
+        },
+        "webPropertyRef": { # JSON template for a web property reference. # Web property for this link.
+          "kind": "analytics#webPropertyRef", # Analytics web property reference.
+          "name": "A String", # Name of this web property.
+          "internalWebPropertyId": "A String", # Internal ID for this web property.
+          "href": "A String", # Link for this web property.
+          "id": "A String", # Web property ID of the form UA-XXXXX-YY.
+          "accountId": "A String", # Account ID to which this web property belongs.
+        },
+      },
+      "userRef": { # JSON template for a user reference. # User reference.
+        "kind": "analytics#userRef",
+        "email": "A String", # Email ID of this user.
+        "id": "A String", # User ID.
+      },
+      "id": "A String", # Entity user link ID
+      "selfLink": "A String", # Self link for this resource.
+      "permissions": { # Permissions the user has for this entity.
+        "local": [ # Permissions that a user has been assigned at this very level. Does not include any implied or inherited permissions. Local permissions are modifiable.
+          "A String",
+        ],
+        "effective": [ # Effective permissions represent all the permissions that a user has for this entity. These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent entity. Effective permissions are read-only.
+          "A String",
+        ],
+      },
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(accountId, max_results=None, start_index=None)</code>
+  <pre>Lists account-user links for a given account.
+
+Args:
+  accountId: string, Account ID to retrieve the user links for. (required)
+  max_results: integer, The maximum number of account-user links to include in this response.
+  start_index: integer, An index of the first account-user link to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.
+
+Returns:
+  An object of the form:
+
+    { # An entity user link collection provides a list of Analytics ACL links Each resource in this collection corresponds to a single link.
+    "kind": "analytics#entityUserLinks", # Collection type.
+    "items": [ # A list of entity user links.
+      { # JSON template for an Analytics Entity-User Link. Returns permissions that a user has for an entity.
+          "kind": "analytics#entityUserLink", # Resource type for entity user link.
+          "entity": { # Entity for this link. It can be an account, a web property, or a view (profile).
+            "accountRef": { # JSON template for a linked account. # Account for this link.
+              "kind": "analytics#accountRef", # Analytics account reference.
+              "href": "A String", # Link for this account.
+              "id": "A String", # Account ID.
+              "name": "A String", # Account name.
+            },
+            "profileRef": { # JSON template for a linked view (profile). # View (Profile) for this link.
+              "kind": "analytics#profileRef", # Analytics view (profile) reference.
+              "name": "A String", # Name of this view (profile).
+              "internalWebPropertyId": "A String", # Internal ID for the web property to which this view (profile) belongs.
+              "href": "A String", # Link for this view (profile).
+              "webPropertyId": "A String", # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
+              "id": "A String", # View (Profile) ID.
+              "accountId": "A String", # Account ID to which this view (profile) belongs.
+            },
+            "webPropertyRef": { # JSON template for a web property reference. # Web property for this link.
+              "kind": "analytics#webPropertyRef", # Analytics web property reference.
+              "name": "A String", # Name of this web property.
+              "internalWebPropertyId": "A String", # Internal ID for this web property.
+              "href": "A String", # Link for this web property.
+              "id": "A String", # Web property ID of the form UA-XXXXX-YY.
+              "accountId": "A String", # Account ID to which this web property belongs.
+            },
+          },
+          "userRef": { # JSON template for a user reference. # User reference.
+            "kind": "analytics#userRef",
+            "email": "A String", # Email ID of this user.
+            "id": "A String", # User ID.
+          },
+          "id": "A String", # Entity user link ID
+          "selfLink": "A String", # Self link for this resource.
+          "permissions": { # Permissions the user has for this entity.
+            "local": [ # Permissions that a user has been assigned at this very level. Does not include any implied or inherited permissions. Local permissions are modifiable.
+              "A String",
+            ],
+            "effective": [ # Effective permissions represent all the permissions that a user has for this entity. These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent entity. Effective permissions are read-only.
+              "A String",
+            ],
+          },
+        },
+    ],
+    "itemsPerPage": 42, # The maximum number of entries the response can contain, regardless of the actual number of entries 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", # Previous link for this account collection.
+    "startIndex": 42, # The starting index of the entries, which is 1 by default or otherwise specified by the start-index query parameter.
+    "nextLink": "A String", # Next link for this account 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="update">update(accountId, linkId, body)</code>
+  <pre>Updates permissions for an existing user on the given account.
+
+Args:
+  accountId: string, Account ID to update the account-user link for. (required)
+  linkId: string, Link ID to update the account-user link for. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # JSON template for an Analytics Entity-User Link. Returns permissions that a user has for an entity.
+    "kind": "analytics#entityUserLink", # Resource type for entity user link.
+    "entity": { # Entity for this link. It can be an account, a web property, or a view (profile).
+      "accountRef": { # JSON template for a linked account. # Account for this link.
+        "kind": "analytics#accountRef", # Analytics account reference.
+        "href": "A String", # Link for this account.
+        "id": "A String", # Account ID.
+        "name": "A String", # Account name.
+      },
+      "profileRef": { # JSON template for a linked view (profile). # View (Profile) for this link.
+        "kind": "analytics#profileRef", # Analytics view (profile) reference.
+        "name": "A String", # Name of this view (profile).
+        "internalWebPropertyId": "A String", # Internal ID for the web property to which this view (profile) belongs.
+        "href": "A String", # Link for this view (profile).
+        "webPropertyId": "A String", # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
+        "id": "A String", # View (Profile) ID.
+        "accountId": "A String", # Account ID to which this view (profile) belongs.
+      },
+      "webPropertyRef": { # JSON template for a web property reference. # Web property for this link.
+        "kind": "analytics#webPropertyRef", # Analytics web property reference.
+        "name": "A String", # Name of this web property.
+        "internalWebPropertyId": "A String", # Internal ID for this web property.
+        "href": "A String", # Link for this web property.
+        "id": "A String", # Web property ID of the form UA-XXXXX-YY.
+        "accountId": "A String", # Account ID to which this web property belongs.
+      },
+    },
+    "userRef": { # JSON template for a user reference. # User reference.
+      "kind": "analytics#userRef",
+      "email": "A String", # Email ID of this user.
+      "id": "A String", # User ID.
+    },
+    "id": "A String", # Entity user link ID
+    "selfLink": "A String", # Self link for this resource.
+    "permissions": { # Permissions the user has for this entity.
+      "local": [ # Permissions that a user has been assigned at this very level. Does not include any implied or inherited permissions. Local permissions are modifiable.
+        "A String",
+      ],
+      "effective": [ # Effective permissions represent all the permissions that a user has for this entity. These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent entity. Effective permissions are read-only.
+        "A String",
+      ],
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # JSON template for an Analytics Entity-User Link. Returns permissions that a user has for an entity.
+      "kind": "analytics#entityUserLink", # Resource type for entity user link.
+      "entity": { # Entity for this link. It can be an account, a web property, or a view (profile).
+        "accountRef": { # JSON template for a linked account. # Account for this link.
+          "kind": "analytics#accountRef", # Analytics account reference.
+          "href": "A String", # Link for this account.
+          "id": "A String", # Account ID.
+          "name": "A String", # Account name.
+        },
+        "profileRef": { # JSON template for a linked view (profile). # View (Profile) for this link.
+          "kind": "analytics#profileRef", # Analytics view (profile) reference.
+          "name": "A String", # Name of this view (profile).
+          "internalWebPropertyId": "A String", # Internal ID for the web property to which this view (profile) belongs.
+          "href": "A String", # Link for this view (profile).
+          "webPropertyId": "A String", # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
+          "id": "A String", # View (Profile) ID.
+          "accountId": "A String", # Account ID to which this view (profile) belongs.
+        },
+        "webPropertyRef": { # JSON template for a web property reference. # Web property for this link.
+          "kind": "analytics#webPropertyRef", # Analytics web property reference.
+          "name": "A String", # Name of this web property.
+          "internalWebPropertyId": "A String", # Internal ID for this web property.
+          "href": "A String", # Link for this web property.
+          "id": "A String", # Web property ID of the form UA-XXXXX-YY.
+          "accountId": "A String", # Account ID to which this web property belongs.
+        },
+      },
+      "userRef": { # JSON template for a user reference. # User reference.
+        "kind": "analytics#userRef",
+        "email": "A String", # Email ID of this user.
+        "id": "A String", # User ID.
+      },
+      "id": "A String", # Entity user link ID
+      "selfLink": "A String", # Self link for this resource.
+      "permissions": { # Permissions the user has for this entity.
+        "local": [ # Permissions that a user has been assigned at this very level. Does not include any implied or inherited permissions. Local permissions are modifiable.
+          "A String",
+        ],
+        "effective": [ # Effective permissions represent all the permissions that a user has for this entity. These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent entity. Effective permissions are read-only.
+          "A String",
+        ],
+      },
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/analytics_v3.management.accounts.html b/docs/dyn/analytics_v3.management.accounts.html
new file mode 100644
index 0000000..f3dca44
--- /dev/null
+++ b/docs/dyn/analytics_v3.management.accounts.html
@@ -0,0 +1,122 @@
+<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.accounts.html">accounts</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(max_results=None, start_index=None)</a></code></p>
+<p class="firstline">Lists all accounts to which the user has access.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(max_results=None, start_index=None)</code>
+  <pre>Lists all accounts to which the user has access.
+
+Args:
+  max_results: integer, The maximum number of accounts to include in this response.
+  start_index: integer, An index of the first account to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.
+
+Returns:
+  An object of the form:
+
+    { # An account collection provides a list of Analytics accounts to which a user has access. The account collection is the entry point to all management information. Each resource in the collection corresponds to a single Analytics account.
+    "username": "A String", # Email ID of the authenticated user
+    "kind": "analytics#accounts", # Collection type.
+    "items": [ # A list of accounts.
+      { # JSON template for Analytics account entry.
+        "kind": "analytics#account", # Resource type for Analytics account.
+        "name": "A String", # Account name.
+        "created": "A String", # Time the account was created.
+        "updated": "A String", # Time the account was last modified.
+        "childLink": { # Child link for an account entry. Points to the list of web properties for this account.
+          "href": "A String", # Link to the list of web properties for this account.
+          "type": "analytics#webproperties", # Type of the child link. Its value is "analytics#webproperties".
+        },
+        "id": "A String", # Account ID.
+        "selfLink": "A String", # Link for this account.
+        "permissions": { # Permissions the user has for this account.
+          "effective": [ # All the permissions that the user has for this account. These include any implied permissions (e.g., EDIT implies VIEW).
+            "A String",
+          ],
+        },
+      },
+    ],
+    "itemsPerPage": 42, # The maximum number of entries the response can contain, regardless of the actual number of entries 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", # Previous link for this account collection.
+    "startIndex": 42, # The starting index of the entries, which is 1 by default or otherwise specified by the start-index query parameter.
+    "nextLink": "A String", # Next link for this account collection.
+    "totalResults": 42, # The total number of results for the query, regardless of the number of results in the response.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/analytics_v3.management.customDataSources.html b/docs/dyn/analytics_v3.management.customDataSources.html
new file mode 100644
index 0000000..51b15c0
--- /dev/null
+++ b/docs/dyn/analytics_v3.management.customDataSources.html
@@ -0,0 +1,130 @@
+<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.customDataSources.html">customDataSources</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(accountId, webPropertyId, max_results=None, start_index=None)</a></code></p>
+<p class="firstline">List custom data sources to which the user has access.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(accountId, webPropertyId, max_results=None, start_index=None)</code>
+  <pre>List custom data sources to which the user has access.
+
+Args:
+  accountId: string, Account Id for the custom data sources to retrieve. (required)
+  webPropertyId: string, Web property Id for the custom data sources to retrieve. (required)
+  max_results: integer, The maximum number of custom data sources to include in this response.
+  start_index: integer, A 1-based index of the first custom data source to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.
+
+Returns:
+  An object of the form:
+
+    { # Lists Analytics custom data sources to which the user has access. Each resource in the collection corresponds to a single Analytics custom data source.
+    "username": "A String", # Email ID of the authenticated user
+    "kind": "analytics#customDataSources", # Collection type.
+    "items": [ # Collection of custom data sources.
+      { # JSON template for an Analytics custom data source.
+        "kind": "analytics#customDataSource", # Resource type for Analytics custom data source.
+        "description": "A String", # Description of custom data source.
+        "created": "A String", # Time this custom data source was created.
+        "profilesLinked": [ # IDs of views (profiles) linked to the custom data source.
+          "A String",
+        ],
+        "updated": "A String", # Time this custom data source was last modified.
+        "name": "A String", # Name of this custom data source.
+        "childLink": {
+          "href": "A String", # Link to the list of daily uploads for this custom data source. Link to the list of uploads for this custom data source.
+          "type": "A String", # Value is "analytics#dailyUploads". Value is "analytics#uploads".
+        },
+        "webPropertyId": "A String", # Web property ID of the form UA-XXXXX-YY to which this custom data source belongs.
+        "parentLink": { # Parent link for this custom data source. Points to the web property to which this custom data source belongs.
+          "href": "A String", # Link to the web property to which this custom data source belongs.
+          "type": "analytics#webproperty", # Value is "analytics#webproperty".
+        },
+        "type": "A String", # Type of the custom data source.
+        "id": "A String", # Custom data source ID.
+        "selfLink": "A String", # Link for this Analytics custom data source.
+        "accountId": "A String", # Account ID to which this custom data source belongs.
+      },
+    ],
+    "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 data source 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 data source collection.
+    "totalResults": 42, # The total number of results for the query, regardless of the number of results in the response.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/analytics_v3.management.dailyUploads.html b/docs/dyn/analytics_v3.management.dailyUploads.html
new file mode 100644
index 0000000..80428b9
--- /dev/null
+++ b/docs/dyn/analytics_v3.management.dailyUploads.html
@@ -0,0 +1,182 @@
+<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.dailyUploads.html">dailyUploads</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(accountId, webPropertyId, customDataSourceId, date, type)</a></code></p>
+<p class="firstline">Delete uploaded data for the given date.</p>
+<p class="toc_element">
+  <code><a href="#list">list(accountId, webPropertyId, customDataSourceId, start_date, end_date, max_results=None, start_index=None)</a></code></p>
+<p class="firstline">List daily uploads to which the user has access.</p>
+<p class="toc_element">
+  <code><a href="#upload">upload(accountId, webPropertyId, customDataSourceId, date, appendNumber, type, reset=None, media_body=None)</a></code></p>
+<p class="firstline">Update/Overwrite data for a custom data source.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(accountId, webPropertyId, customDataSourceId, date, type)</code>
+  <pre>Delete uploaded data for the given date.
+
+Args:
+  accountId: string, Account Id associated with daily upload delete. (required)
+  webPropertyId: string, Web property Id associated with daily upload delete. (required)
+  customDataSourceId: string, Custom data source Id associated with daily upload delete. (required)
+  date: string, Date for which data is to be deleted. Date should be formatted as YYYY-MM-DD. (required)
+  type: string, Type of data for this delete. (required)
+    Allowed values
+      cost - Value for specifying cost data upload.
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(accountId, webPropertyId, customDataSourceId, start_date, end_date, max_results=None, start_index=None)</code>
+  <pre>List daily uploads to which the user has access.
+
+Args:
+  accountId: string, Account Id for the daily uploads to retrieve. (required)
+  webPropertyId: string, Web property Id for the daily uploads to retrieve. (required)
+  customDataSourceId: string, Custom data source Id for daily uploads to retrieve. (required)
+  start_date: string, Start date of the form YYYY-MM-DD. (required)
+  end_date: string, End date of the form YYYY-MM-DD. (required)
+  max_results: integer, The maximum number of custom data sources to include in this response.
+  start_index: integer, A 1-based index of the first daily upload to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.
+
+Returns:
+  An object of the form:
+
+    { # A daily upload collection lists Analytics daily uploads to which the user has access. Each resource in the collection corresponds to a single Analytics daily upload.
+    "username": "A String", # Email ID of the authenticated user
+    "kind": "analytics#dailyUploads", # Collection type. Value is analytics#dailyUploads.
+    "items": [ # A collection of daily uploads.
+      { # Metadata for daily upload entity.
+        "recentChanges": [ # Change log for last 10 changes in chronological order.
+          {
+            "change": "A String", # The type of change: APPEND, RESET, or DELETE.
+            "time": "A String", # The time when the change occurred.
+          },
+        ],
+        "kind": "analytics#dailyUpload", # Resource type for Analytics daily upload.
+        "modifiedTime": "A String", # Time this daily upload was last modified.
+        "appendCount": 42, # Number of appends for this date.
+        "customDataSourceId": "A String", # Custom data source ID to which this daily upload belongs.
+        "date": "A String", # Date associated with daily upload.
+        "webPropertyId": "A String", # Web property ID of the form UA-XXXXX-YY to which this daily upload belongs.
+        "createdTime": "A String", # Time this daily upload was created.
+        "parentLink": { # Parent link for a daily upload. Points to the custom data source to which this daily upload belongs.
+          "href": "A String", # Link to the custom data source to which this daily upload belongs.
+          "type": "analytics#customDataSource", # Value is "analytics#customDataSource".
+        },
+        "selfLink": "A String", # Link for this daily upload.
+        "accountId": "A String", # Account ID to which this daily upload belongs.
+      },
+    ],
+    "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 daily upload 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 daily upload 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="upload">upload(accountId, webPropertyId, customDataSourceId, date, appendNumber, type, reset=None, media_body=None)</code>
+  <pre>Update/Overwrite data for a custom data source.
+
+Args:
+  accountId: string, Account Id associated with daily upload. (required)
+  webPropertyId: string, Web property Id associated with daily upload. (required)
+  customDataSourceId: string, Custom data source Id to which the data being uploaded belongs. (required)
+  date: string, Date for which data is uploaded. Date should be formatted as YYYY-MM-DD. (required)
+  appendNumber: integer, Append number for this upload indexed from 1. (required)
+  type: string, Type of data for this upload. (required)
+    Allowed values
+      cost - Value for specifying cost data upload.
+  reset: boolean, Reset/Overwrite all previous appends for this date and start over with this file as the first upload.
+  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
+
+Returns:
+  An object of the form:
+
+    { # Metadata returned for a successful append operation.
+    "kind": "analytics#dailyUploadAppend", # Resource type for Analytics daily upload append.
+    "customDataSourceId": "A String", # Custom data source Id to which this daily upload append belongs.
+    "appendNumber": 42, # Append number.
+    "webPropertyId": "A String", # Web property Id of the form UA-XXXXX-YY to which this daily upload append belongs.
+    "date": "A String", # Date associated with daily upload append.
+    "nextAppendLink": "A String",
+    "accountId": "A String", # Account Id to which this daily upload append belongs.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/analytics_v3.management.experiments.html b/docs/dyn/analytics_v3.management.experiments.html
new file mode 100644
index 0000000..110387a
--- /dev/null
+++ b/docs/dyn/analytics_v3.management.experiments.html
@@ -0,0 +1,558 @@
+<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.experiments.html">experiments</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(accountId, webPropertyId, profileId, experimentId)</a></code></p>
+<p class="firstline">Delete an experiment.</p>
+<p class="toc_element">
+  <code><a href="#get">get(accountId, webPropertyId, profileId, experimentId)</a></code></p>
+<p class="firstline">Returns an experiment to which the user has access.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(accountId, webPropertyId, profileId, body)</a></code></p>
+<p class="firstline">Create a new experiment.</p>
+<p class="toc_element">
+  <code><a href="#list">list(accountId, webPropertyId, profileId, max_results=None, start_index=None)</a></code></p>
+<p class="firstline">Lists experiments to which the user has access.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(accountId, webPropertyId, profileId, experimentId, body)</a></code></p>
+<p class="firstline">Update an existing experiment. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(accountId, webPropertyId, profileId, experimentId, body)</a></code></p>
+<p class="firstline">Update an existing experiment.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(accountId, webPropertyId, profileId, experimentId)</code>
+  <pre>Delete an experiment.
+
+Args:
+  accountId: string, Account ID to which the experiment belongs (required)
+  webPropertyId: string, Web property ID to which the experiment belongs (required)
+  profileId: string, View (Profile) ID to which the experiment belongs (required)
+  experimentId: string, ID of the experiment to delete (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(accountId, webPropertyId, profileId, experimentId)</code>
+  <pre>Returns an experiment to which the user has access.
+
+Args:
+  accountId: string, Account ID to retrieve the experiment for. (required)
+  webPropertyId: string, Web property ID to retrieve the experiment for. (required)
+  profileId: string, View (Profile) ID to retrieve the experiment for. (required)
+  experimentId: string, Experiment ID to retrieve the experiment for. (required)
+
+Returns:
+  An object of the form:
+
+    { # JSON template for Analytics experiment resource.
+      "trafficCoverage": 3.14, # A floating-point number between 0 and 1. Specifies the fraction of the traffic that participates in the experiment. Can be changed for a running experiment. This field may not be changed for an experiments whose status is ENDED.
+      "webPropertyId": "A String", # Web property ID to which this experiment belongs. The web property ID is of the form UA-XXXXX-YY. This field is read-only.
+      "optimizationType": "A String", # Whether the objectiveMetric should be minimized or maximized. Possible values: "MAXIMUM", "MINIMUM". Optional--defaults to "MAXIMUM". Cannot be specified without objectiveMetric. Cannot be modified when status is "RUNNING" or "ENDED".
+      "objectiveMetric": "A String", # The metric that the experiment is optimizing. Valid values: "ga:goal(n)Completions", "ga:adsenseAdsClicks", "ga:adsenseAdsViewed", "ga:adsenseRevenue", "ga:bounces", "ga:pageviews", "ga:sessionDuration", "ga:transactions", "ga:transactionRevenue". This field is required if status is "RUNNING" and servingFramework is one of "REDIRECT" or "API".
+      "id": "A String", # Experiment ID. Required for patch and update. Disallowed for create.
+      "equalWeighting": True or False, # Boolean specifying whether to distribute traffic evenly across all variations. If the value is False, content experiments follows the default behavior of adjusting traffic dynamically based on variation performance. Optional -- defaults to False. This field may not be changed for an experiment whose status is ENDED.
+      "accountId": "A String", # Account ID to which this experiment belongs. This field is read-only.
+      "snippet": "A String", # The snippet of code to include on the control page(s). This field is read-only.
+      "editableInGaUi": True or False, # If true, the end user will be able to edit the experiment via the Google Analytics user interface.
+      "rewriteVariationUrlsAsOriginal": True or False, # Boolean specifying whether variations URLS are rewritten to match those of the original. This field may not be changed for an experiments whose status is ENDED.
+      "servingFramework": "A String", # The framework used to serve the experiment variations and evaluate the results. One of:
+          # - REDIRECT: Google Analytics redirects traffic to different variation pages, reports the chosen variation and evaluates the results.
+          # - API: Google Analytics chooses and reports the variation to serve and evaluates the results; the caller is responsible for serving the selected variation.
+          # - EXTERNAL: The variations will be served externally and the chosen variation reported to Google Analytics. The caller is responsible for serving the selected variation and evaluating the results.
+      "status": "A String", # Experiment status. Possible values: "DRAFT", "READY_TO_RUN", "RUNNING", "ENDED". Experiments can be created in the "DRAFT", "READY_TO_RUN" or "RUNNING" state. This field is required when creating an experiment.
+      "updated": "A String", # Time the experiment was last modified. This field is read-only.
+      "description": "A String", # Notes about this experiment.
+      "reasonExperimentEnded": "A String", # Why the experiment ended. Possible values: "STOPPED_BY_USER", "WINNER_FOUND", "EXPERIMENT_EXPIRED", "ENDED_WITH_NO_WINNER", "GOAL_OBJECTIVE_CHANGED". "ENDED_WITH_NO_WINNER" means that the experiment didn't expire but no winner was projected to be found. If the experiment status is changed via the API to ENDED this field is set to STOPPED_BY_USER. This field is read-only.
+      "internalWebPropertyId": "A String", # Internal ID for the web property to which this experiment belongs. This field is read-only.
+      "winnerConfidenceLevel": 3.14, # A floating-point number between 0 and 1. Specifies the necessary confidence level to choose a winner. This field may not be changed for an experiments whose status is ENDED.
+      "startTime": "A String", # The starting time of the experiment (the time the status changed from READY_TO_RUN to RUNNING). This field is present only if the experiment has started. This field is read-only.
+      "winnerFound": True or False, # Boolean specifying whether a winner has been found for this experiment. This field is read-only.
+      "kind": "analytics#experiment", # Resource type for an Analytics experiment. This field is read-only.
+      "name": "A String", # Experiment name. This field may not be changed for an experiment whose status is ENDED. This field is required when creating an experiment.
+      "created": "A String", # Time the experiment was created. This field is read-only.
+      "variations": [ # Array of variations. The first variation in the array is the original. The number of variations may not change once an experiment is in the RUNNING state. At least two variations are required before status can be set to RUNNING.
+        {
+          "status": "A String", # Status of the variation. Possible values: "ACTIVE", "INACTIVE". INACTIVE variations are not served. This field may not be changed for an experiment whose status is ENDED.
+          "url": "A String", # The URL of the variation. This field may not be changed for an experiment whose status is RUNNING or ENDED.
+          "won": True or False, # True if the experiment has ended and this variation performed (statistically) significantly better than the original. This field is read-only.
+          "name": "A String", # The name of the variation. This field is required when creating an experiment. This field may not be changed for an experiment whose status is ENDED.
+          "weight": 3.14, # Weight that this variation should receive. Only present if the experiment is running. This field is read-only.
+        },
+      ],
+      "minimumExperimentLengthInDays": 42, # Specifies the minimum length of the experiment. Can be changed for a running experiment. This field may not be changed for an experiments whose status is ENDED.
+      "profileId": "A String", # View (Profile) ID to which this experiment belongs. This field is read-only.
+      "parentLink": { # Parent link for an experiment. Points to the view (profile) to which this experiment belongs.
+        "href": "A String", # Link to the view (profile) to which this experiment belongs. This field is read-only.
+        "type": "analytics#profile", # Value is "analytics#profile". This field is read-only.
+      },
+      "endTime": "A String", # The ending time of the experiment (the time the status changed from RUNNING to ENDED). This field is present only if the experiment has ended. This field is read-only.
+      "selfLink": "A String", # Link for this experiment. This field is read-only.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(accountId, webPropertyId, profileId, body)</code>
+  <pre>Create a new experiment.
+
+Args:
+  accountId: string, Account ID to create the experiment for. (required)
+  webPropertyId: string, Web property ID to create the experiment for. (required)
+  profileId: string, View (Profile) ID to create the experiment for. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # JSON template for Analytics experiment resource.
+    "trafficCoverage": 3.14, # A floating-point number between 0 and 1. Specifies the fraction of the traffic that participates in the experiment. Can be changed for a running experiment. This field may not be changed for an experiments whose status is ENDED.
+    "webPropertyId": "A String", # Web property ID to which this experiment belongs. The web property ID is of the form UA-XXXXX-YY. This field is read-only.
+    "optimizationType": "A String", # Whether the objectiveMetric should be minimized or maximized. Possible values: "MAXIMUM", "MINIMUM". Optional--defaults to "MAXIMUM". Cannot be specified without objectiveMetric. Cannot be modified when status is "RUNNING" or "ENDED".
+    "objectiveMetric": "A String", # The metric that the experiment is optimizing. Valid values: "ga:goal(n)Completions", "ga:adsenseAdsClicks", "ga:adsenseAdsViewed", "ga:adsenseRevenue", "ga:bounces", "ga:pageviews", "ga:sessionDuration", "ga:transactions", "ga:transactionRevenue". This field is required if status is "RUNNING" and servingFramework is one of "REDIRECT" or "API".
+    "id": "A String", # Experiment ID. Required for patch and update. Disallowed for create.
+    "equalWeighting": True or False, # Boolean specifying whether to distribute traffic evenly across all variations. If the value is False, content experiments follows the default behavior of adjusting traffic dynamically based on variation performance. Optional -- defaults to False. This field may not be changed for an experiment whose status is ENDED.
+    "accountId": "A String", # Account ID to which this experiment belongs. This field is read-only.
+    "snippet": "A String", # The snippet of code to include on the control page(s). This field is read-only.
+    "editableInGaUi": True or False, # If true, the end user will be able to edit the experiment via the Google Analytics user interface.
+    "rewriteVariationUrlsAsOriginal": True or False, # Boolean specifying whether variations URLS are rewritten to match those of the original. This field may not be changed for an experiments whose status is ENDED.
+    "servingFramework": "A String", # The framework used to serve the experiment variations and evaluate the results. One of:
+        # - REDIRECT: Google Analytics redirects traffic to different variation pages, reports the chosen variation and evaluates the results.
+        # - API: Google Analytics chooses and reports the variation to serve and evaluates the results; the caller is responsible for serving the selected variation.
+        # - EXTERNAL: The variations will be served externally and the chosen variation reported to Google Analytics. The caller is responsible for serving the selected variation and evaluating the results.
+    "status": "A String", # Experiment status. Possible values: "DRAFT", "READY_TO_RUN", "RUNNING", "ENDED". Experiments can be created in the "DRAFT", "READY_TO_RUN" or "RUNNING" state. This field is required when creating an experiment.
+    "updated": "A String", # Time the experiment was last modified. This field is read-only.
+    "description": "A String", # Notes about this experiment.
+    "reasonExperimentEnded": "A String", # Why the experiment ended. Possible values: "STOPPED_BY_USER", "WINNER_FOUND", "EXPERIMENT_EXPIRED", "ENDED_WITH_NO_WINNER", "GOAL_OBJECTIVE_CHANGED". "ENDED_WITH_NO_WINNER" means that the experiment didn't expire but no winner was projected to be found. If the experiment status is changed via the API to ENDED this field is set to STOPPED_BY_USER. This field is read-only.
+    "internalWebPropertyId": "A String", # Internal ID for the web property to which this experiment belongs. This field is read-only.
+    "winnerConfidenceLevel": 3.14, # A floating-point number between 0 and 1. Specifies the necessary confidence level to choose a winner. This field may not be changed for an experiments whose status is ENDED.
+    "startTime": "A String", # The starting time of the experiment (the time the status changed from READY_TO_RUN to RUNNING). This field is present only if the experiment has started. This field is read-only.
+    "winnerFound": True or False, # Boolean specifying whether a winner has been found for this experiment. This field is read-only.
+    "kind": "analytics#experiment", # Resource type for an Analytics experiment. This field is read-only.
+    "name": "A String", # Experiment name. This field may not be changed for an experiment whose status is ENDED. This field is required when creating an experiment.
+    "created": "A String", # Time the experiment was created. This field is read-only.
+    "variations": [ # Array of variations. The first variation in the array is the original. The number of variations may not change once an experiment is in the RUNNING state. At least two variations are required before status can be set to RUNNING.
+      {
+        "status": "A String", # Status of the variation. Possible values: "ACTIVE", "INACTIVE". INACTIVE variations are not served. This field may not be changed for an experiment whose status is ENDED.
+        "url": "A String", # The URL of the variation. This field may not be changed for an experiment whose status is RUNNING or ENDED.
+        "won": True or False, # True if the experiment has ended and this variation performed (statistically) significantly better than the original. This field is read-only.
+        "name": "A String", # The name of the variation. This field is required when creating an experiment. This field may not be changed for an experiment whose status is ENDED.
+        "weight": 3.14, # Weight that this variation should receive. Only present if the experiment is running. This field is read-only.
+      },
+    ],
+    "minimumExperimentLengthInDays": 42, # Specifies the minimum length of the experiment. Can be changed for a running experiment. This field may not be changed for an experiments whose status is ENDED.
+    "profileId": "A String", # View (Profile) ID to which this experiment belongs. This field is read-only.
+    "parentLink": { # Parent link for an experiment. Points to the view (profile) to which this experiment belongs.
+      "href": "A String", # Link to the view (profile) to which this experiment belongs. This field is read-only.
+      "type": "analytics#profile", # Value is "analytics#profile". This field is read-only.
+    },
+    "endTime": "A String", # The ending time of the experiment (the time the status changed from RUNNING to ENDED). This field is present only if the experiment has ended. This field is read-only.
+    "selfLink": "A String", # Link for this experiment. This field is read-only.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # JSON template for Analytics experiment resource.
+      "trafficCoverage": 3.14, # A floating-point number between 0 and 1. Specifies the fraction of the traffic that participates in the experiment. Can be changed for a running experiment. This field may not be changed for an experiments whose status is ENDED.
+      "webPropertyId": "A String", # Web property ID to which this experiment belongs. The web property ID is of the form UA-XXXXX-YY. This field is read-only.
+      "optimizationType": "A String", # Whether the objectiveMetric should be minimized or maximized. Possible values: "MAXIMUM", "MINIMUM". Optional--defaults to "MAXIMUM". Cannot be specified without objectiveMetric. Cannot be modified when status is "RUNNING" or "ENDED".
+      "objectiveMetric": "A String", # The metric that the experiment is optimizing. Valid values: "ga:goal(n)Completions", "ga:adsenseAdsClicks", "ga:adsenseAdsViewed", "ga:adsenseRevenue", "ga:bounces", "ga:pageviews", "ga:sessionDuration", "ga:transactions", "ga:transactionRevenue". This field is required if status is "RUNNING" and servingFramework is one of "REDIRECT" or "API".
+      "id": "A String", # Experiment ID. Required for patch and update. Disallowed for create.
+      "equalWeighting": True or False, # Boolean specifying whether to distribute traffic evenly across all variations. If the value is False, content experiments follows the default behavior of adjusting traffic dynamically based on variation performance. Optional -- defaults to False. This field may not be changed for an experiment whose status is ENDED.
+      "accountId": "A String", # Account ID to which this experiment belongs. This field is read-only.
+      "snippet": "A String", # The snippet of code to include on the control page(s). This field is read-only.
+      "editableInGaUi": True or False, # If true, the end user will be able to edit the experiment via the Google Analytics user interface.
+      "rewriteVariationUrlsAsOriginal": True or False, # Boolean specifying whether variations URLS are rewritten to match those of the original. This field may not be changed for an experiments whose status is ENDED.
+      "servingFramework": "A String", # The framework used to serve the experiment variations and evaluate the results. One of:
+          # - REDIRECT: Google Analytics redirects traffic to different variation pages, reports the chosen variation and evaluates the results.
+          # - API: Google Analytics chooses and reports the variation to serve and evaluates the results; the caller is responsible for serving the selected variation.
+          # - EXTERNAL: The variations will be served externally and the chosen variation reported to Google Analytics. The caller is responsible for serving the selected variation and evaluating the results.
+      "status": "A String", # Experiment status. Possible values: "DRAFT", "READY_TO_RUN", "RUNNING", "ENDED". Experiments can be created in the "DRAFT", "READY_TO_RUN" or "RUNNING" state. This field is required when creating an experiment.
+      "updated": "A String", # Time the experiment was last modified. This field is read-only.
+      "description": "A String", # Notes about this experiment.
+      "reasonExperimentEnded": "A String", # Why the experiment ended. Possible values: "STOPPED_BY_USER", "WINNER_FOUND", "EXPERIMENT_EXPIRED", "ENDED_WITH_NO_WINNER", "GOAL_OBJECTIVE_CHANGED". "ENDED_WITH_NO_WINNER" means that the experiment didn't expire but no winner was projected to be found. If the experiment status is changed via the API to ENDED this field is set to STOPPED_BY_USER. This field is read-only.
+      "internalWebPropertyId": "A String", # Internal ID for the web property to which this experiment belongs. This field is read-only.
+      "winnerConfidenceLevel": 3.14, # A floating-point number between 0 and 1. Specifies the necessary confidence level to choose a winner. This field may not be changed for an experiments whose status is ENDED.
+      "startTime": "A String", # The starting time of the experiment (the time the status changed from READY_TO_RUN to RUNNING). This field is present only if the experiment has started. This field is read-only.
+      "winnerFound": True or False, # Boolean specifying whether a winner has been found for this experiment. This field is read-only.
+      "kind": "analytics#experiment", # Resource type for an Analytics experiment. This field is read-only.
+      "name": "A String", # Experiment name. This field may not be changed for an experiment whose status is ENDED. This field is required when creating an experiment.
+      "created": "A String", # Time the experiment was created. This field is read-only.
+      "variations": [ # Array of variations. The first variation in the array is the original. The number of variations may not change once an experiment is in the RUNNING state. At least two variations are required before status can be set to RUNNING.
+        {
+          "status": "A String", # Status of the variation. Possible values: "ACTIVE", "INACTIVE". INACTIVE variations are not served. This field may not be changed for an experiment whose status is ENDED.
+          "url": "A String", # The URL of the variation. This field may not be changed for an experiment whose status is RUNNING or ENDED.
+          "won": True or False, # True if the experiment has ended and this variation performed (statistically) significantly better than the original. This field is read-only.
+          "name": "A String", # The name of the variation. This field is required when creating an experiment. This field may not be changed for an experiment whose status is ENDED.
+          "weight": 3.14, # Weight that this variation should receive. Only present if the experiment is running. This field is read-only.
+        },
+      ],
+      "minimumExperimentLengthInDays": 42, # Specifies the minimum length of the experiment. Can be changed for a running experiment. This field may not be changed for an experiments whose status is ENDED.
+      "profileId": "A String", # View (Profile) ID to which this experiment belongs. This field is read-only.
+      "parentLink": { # Parent link for an experiment. Points to the view (profile) to which this experiment belongs.
+        "href": "A String", # Link to the view (profile) to which this experiment belongs. This field is read-only.
+        "type": "analytics#profile", # Value is "analytics#profile". This field is read-only.
+      },
+      "endTime": "A String", # The ending time of the experiment (the time the status changed from RUNNING to ENDED). This field is present only if the experiment has ended. This field is read-only.
+      "selfLink": "A String", # Link for this experiment. This field is read-only.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(accountId, webPropertyId, profileId, max_results=None, start_index=None)</code>
+  <pre>Lists experiments to which the user has access.
+
+Args:
+  accountId: string, Account ID to retrieve experiments for. (required)
+  webPropertyId: string, Web property ID to retrieve experiments for. (required)
+  profileId: string, View (Profile) ID to retrieve experiments for. (required)
+  max_results: integer, The maximum number of experiments to include in this response.
+  start_index: integer, An index of the first experiment to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.
+
+Returns:
+  An object of the form:
+
+    { # An experiment collection lists Analytics experiments to which the user has access. Each view (profile) can have a set of experiments. Each resource in the Experiment collection corresponds to a single Analytics experiment.
+    "username": "A String", # Email ID of the authenticated user
+    "kind": "analytics#experiments", # Collection type.
+    "items": [ # A list of experiments.
+      { # JSON template for Analytics experiment resource.
+          "trafficCoverage": 3.14, # A floating-point number between 0 and 1. Specifies the fraction of the traffic that participates in the experiment. Can be changed for a running experiment. This field may not be changed for an experiments whose status is ENDED.
+          "webPropertyId": "A String", # Web property ID to which this experiment belongs. The web property ID is of the form UA-XXXXX-YY. This field is read-only.
+          "optimizationType": "A String", # Whether the objectiveMetric should be minimized or maximized. Possible values: "MAXIMUM", "MINIMUM". Optional--defaults to "MAXIMUM". Cannot be specified without objectiveMetric. Cannot be modified when status is "RUNNING" or "ENDED".
+          "objectiveMetric": "A String", # The metric that the experiment is optimizing. Valid values: "ga:goal(n)Completions", "ga:adsenseAdsClicks", "ga:adsenseAdsViewed", "ga:adsenseRevenue", "ga:bounces", "ga:pageviews", "ga:sessionDuration", "ga:transactions", "ga:transactionRevenue". This field is required if status is "RUNNING" and servingFramework is one of "REDIRECT" or "API".
+          "id": "A String", # Experiment ID. Required for patch and update. Disallowed for create.
+          "equalWeighting": True or False, # Boolean specifying whether to distribute traffic evenly across all variations. If the value is False, content experiments follows the default behavior of adjusting traffic dynamically based on variation performance. Optional -- defaults to False. This field may not be changed for an experiment whose status is ENDED.
+          "accountId": "A String", # Account ID to which this experiment belongs. This field is read-only.
+          "snippet": "A String", # The snippet of code to include on the control page(s). This field is read-only.
+          "editableInGaUi": True or False, # If true, the end user will be able to edit the experiment via the Google Analytics user interface.
+          "rewriteVariationUrlsAsOriginal": True or False, # Boolean specifying whether variations URLS are rewritten to match those of the original. This field may not be changed for an experiments whose status is ENDED.
+          "servingFramework": "A String", # The framework used to serve the experiment variations and evaluate the results. One of:
+              # - REDIRECT: Google Analytics redirects traffic to different variation pages, reports the chosen variation and evaluates the results.
+              # - API: Google Analytics chooses and reports the variation to serve and evaluates the results; the caller is responsible for serving the selected variation.
+              # - EXTERNAL: The variations will be served externally and the chosen variation reported to Google Analytics. The caller is responsible for serving the selected variation and evaluating the results.
+          "status": "A String", # Experiment status. Possible values: "DRAFT", "READY_TO_RUN", "RUNNING", "ENDED". Experiments can be created in the "DRAFT", "READY_TO_RUN" or "RUNNING" state. This field is required when creating an experiment.
+          "updated": "A String", # Time the experiment was last modified. This field is read-only.
+          "description": "A String", # Notes about this experiment.
+          "reasonExperimentEnded": "A String", # Why the experiment ended. Possible values: "STOPPED_BY_USER", "WINNER_FOUND", "EXPERIMENT_EXPIRED", "ENDED_WITH_NO_WINNER", "GOAL_OBJECTIVE_CHANGED". "ENDED_WITH_NO_WINNER" means that the experiment didn't expire but no winner was projected to be found. If the experiment status is changed via the API to ENDED this field is set to STOPPED_BY_USER. This field is read-only.
+          "internalWebPropertyId": "A String", # Internal ID for the web property to which this experiment belongs. This field is read-only.
+          "winnerConfidenceLevel": 3.14, # A floating-point number between 0 and 1. Specifies the necessary confidence level to choose a winner. This field may not be changed for an experiments whose status is ENDED.
+          "startTime": "A String", # The starting time of the experiment (the time the status changed from READY_TO_RUN to RUNNING). This field is present only if the experiment has started. This field is read-only.
+          "winnerFound": True or False, # Boolean specifying whether a winner has been found for this experiment. This field is read-only.
+          "kind": "analytics#experiment", # Resource type for an Analytics experiment. This field is read-only.
+          "name": "A String", # Experiment name. This field may not be changed for an experiment whose status is ENDED. This field is required when creating an experiment.
+          "created": "A String", # Time the experiment was created. This field is read-only.
+          "variations": [ # Array of variations. The first variation in the array is the original. The number of variations may not change once an experiment is in the RUNNING state. At least two variations are required before status can be set to RUNNING.
+            {
+              "status": "A String", # Status of the variation. Possible values: "ACTIVE", "INACTIVE". INACTIVE variations are not served. This field may not be changed for an experiment whose status is ENDED.
+              "url": "A String", # The URL of the variation. This field may not be changed for an experiment whose status is RUNNING or ENDED.
+              "won": True or False, # True if the experiment has ended and this variation performed (statistically) significantly better than the original. This field is read-only.
+              "name": "A String", # The name of the variation. This field is required when creating an experiment. This field may not be changed for an experiment whose status is ENDED.
+              "weight": 3.14, # Weight that this variation should receive. Only present if the experiment is running. This field is read-only.
+            },
+          ],
+          "minimumExperimentLengthInDays": 42, # Specifies the minimum length of the experiment. Can be changed for a running experiment. This field may not be changed for an experiments whose status is ENDED.
+          "profileId": "A String", # View (Profile) ID to which this experiment belongs. This field is read-only.
+          "parentLink": { # Parent link for an experiment. Points to the view (profile) to which this experiment belongs.
+            "href": "A String", # Link to the view (profile) to which this experiment belongs. This field is read-only.
+            "type": "analytics#profile", # Value is "analytics#profile". This field is read-only.
+          },
+          "endTime": "A String", # The ending time of the experiment (the time the status changed from RUNNING to ENDED). This field is present only if the experiment has ended. This field is read-only.
+          "selfLink": "A String", # Link for this experiment. This field is read-only.
+        },
+    ],
+    "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 experiment 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 experiment collection.
+    "totalResults": 42, # The total number of results for the query, regardless of the number of resources in the result.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(accountId, webPropertyId, profileId, experimentId, body)</code>
+  <pre>Update an existing experiment. This method supports patch semantics.
+
+Args:
+  accountId: string, Account ID of the experiment to update. (required)
+  webPropertyId: string, Web property ID of the experiment to update. (required)
+  profileId: string, View (Profile) ID of the experiment to update. (required)
+  experimentId: string, Experiment ID of the experiment to update. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # JSON template for Analytics experiment resource.
+    "trafficCoverage": 3.14, # A floating-point number between 0 and 1. Specifies the fraction of the traffic that participates in the experiment. Can be changed for a running experiment. This field may not be changed for an experiments whose status is ENDED.
+    "webPropertyId": "A String", # Web property ID to which this experiment belongs. The web property ID is of the form UA-XXXXX-YY. This field is read-only.
+    "optimizationType": "A String", # Whether the objectiveMetric should be minimized or maximized. Possible values: "MAXIMUM", "MINIMUM". Optional--defaults to "MAXIMUM". Cannot be specified without objectiveMetric. Cannot be modified when status is "RUNNING" or "ENDED".
+    "objectiveMetric": "A String", # The metric that the experiment is optimizing. Valid values: "ga:goal(n)Completions", "ga:adsenseAdsClicks", "ga:adsenseAdsViewed", "ga:adsenseRevenue", "ga:bounces", "ga:pageviews", "ga:sessionDuration", "ga:transactions", "ga:transactionRevenue". This field is required if status is "RUNNING" and servingFramework is one of "REDIRECT" or "API".
+    "id": "A String", # Experiment ID. Required for patch and update. Disallowed for create.
+    "equalWeighting": True or False, # Boolean specifying whether to distribute traffic evenly across all variations. If the value is False, content experiments follows the default behavior of adjusting traffic dynamically based on variation performance. Optional -- defaults to False. This field may not be changed for an experiment whose status is ENDED.
+    "accountId": "A String", # Account ID to which this experiment belongs. This field is read-only.
+    "snippet": "A String", # The snippet of code to include on the control page(s). This field is read-only.
+    "editableInGaUi": True or False, # If true, the end user will be able to edit the experiment via the Google Analytics user interface.
+    "rewriteVariationUrlsAsOriginal": True or False, # Boolean specifying whether variations URLS are rewritten to match those of the original. This field may not be changed for an experiments whose status is ENDED.
+    "servingFramework": "A String", # The framework used to serve the experiment variations and evaluate the results. One of:
+        # - REDIRECT: Google Analytics redirects traffic to different variation pages, reports the chosen variation and evaluates the results.
+        # - API: Google Analytics chooses and reports the variation to serve and evaluates the results; the caller is responsible for serving the selected variation.
+        # - EXTERNAL: The variations will be served externally and the chosen variation reported to Google Analytics. The caller is responsible for serving the selected variation and evaluating the results.
+    "status": "A String", # Experiment status. Possible values: "DRAFT", "READY_TO_RUN", "RUNNING", "ENDED". Experiments can be created in the "DRAFT", "READY_TO_RUN" or "RUNNING" state. This field is required when creating an experiment.
+    "updated": "A String", # Time the experiment was last modified. This field is read-only.
+    "description": "A String", # Notes about this experiment.
+    "reasonExperimentEnded": "A String", # Why the experiment ended. Possible values: "STOPPED_BY_USER", "WINNER_FOUND", "EXPERIMENT_EXPIRED", "ENDED_WITH_NO_WINNER", "GOAL_OBJECTIVE_CHANGED". "ENDED_WITH_NO_WINNER" means that the experiment didn't expire but no winner was projected to be found. If the experiment status is changed via the API to ENDED this field is set to STOPPED_BY_USER. This field is read-only.
+    "internalWebPropertyId": "A String", # Internal ID for the web property to which this experiment belongs. This field is read-only.
+    "winnerConfidenceLevel": 3.14, # A floating-point number between 0 and 1. Specifies the necessary confidence level to choose a winner. This field may not be changed for an experiments whose status is ENDED.
+    "startTime": "A String", # The starting time of the experiment (the time the status changed from READY_TO_RUN to RUNNING). This field is present only if the experiment has started. This field is read-only.
+    "winnerFound": True or False, # Boolean specifying whether a winner has been found for this experiment. This field is read-only.
+    "kind": "analytics#experiment", # Resource type for an Analytics experiment. This field is read-only.
+    "name": "A String", # Experiment name. This field may not be changed for an experiment whose status is ENDED. This field is required when creating an experiment.
+    "created": "A String", # Time the experiment was created. This field is read-only.
+    "variations": [ # Array of variations. The first variation in the array is the original. The number of variations may not change once an experiment is in the RUNNING state. At least two variations are required before status can be set to RUNNING.
+      {
+        "status": "A String", # Status of the variation. Possible values: "ACTIVE", "INACTIVE". INACTIVE variations are not served. This field may not be changed for an experiment whose status is ENDED.
+        "url": "A String", # The URL of the variation. This field may not be changed for an experiment whose status is RUNNING or ENDED.
+        "won": True or False, # True if the experiment has ended and this variation performed (statistically) significantly better than the original. This field is read-only.
+        "name": "A String", # The name of the variation. This field is required when creating an experiment. This field may not be changed for an experiment whose status is ENDED.
+        "weight": 3.14, # Weight that this variation should receive. Only present if the experiment is running. This field is read-only.
+      },
+    ],
+    "minimumExperimentLengthInDays": 42, # Specifies the minimum length of the experiment. Can be changed for a running experiment. This field may not be changed for an experiments whose status is ENDED.
+    "profileId": "A String", # View (Profile) ID to which this experiment belongs. This field is read-only.
+    "parentLink": { # Parent link for an experiment. Points to the view (profile) to which this experiment belongs.
+      "href": "A String", # Link to the view (profile) to which this experiment belongs. This field is read-only.
+      "type": "analytics#profile", # Value is "analytics#profile". This field is read-only.
+    },
+    "endTime": "A String", # The ending time of the experiment (the time the status changed from RUNNING to ENDED). This field is present only if the experiment has ended. This field is read-only.
+    "selfLink": "A String", # Link for this experiment. This field is read-only.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # JSON template for Analytics experiment resource.
+      "trafficCoverage": 3.14, # A floating-point number between 0 and 1. Specifies the fraction of the traffic that participates in the experiment. Can be changed for a running experiment. This field may not be changed for an experiments whose status is ENDED.
+      "webPropertyId": "A String", # Web property ID to which this experiment belongs. The web property ID is of the form UA-XXXXX-YY. This field is read-only.
+      "optimizationType": "A String", # Whether the objectiveMetric should be minimized or maximized. Possible values: "MAXIMUM", "MINIMUM". Optional--defaults to "MAXIMUM". Cannot be specified without objectiveMetric. Cannot be modified when status is "RUNNING" or "ENDED".
+      "objectiveMetric": "A String", # The metric that the experiment is optimizing. Valid values: "ga:goal(n)Completions", "ga:adsenseAdsClicks", "ga:adsenseAdsViewed", "ga:adsenseRevenue", "ga:bounces", "ga:pageviews", "ga:sessionDuration", "ga:transactions", "ga:transactionRevenue". This field is required if status is "RUNNING" and servingFramework is one of "REDIRECT" or "API".
+      "id": "A String", # Experiment ID. Required for patch and update. Disallowed for create.
+      "equalWeighting": True or False, # Boolean specifying whether to distribute traffic evenly across all variations. If the value is False, content experiments follows the default behavior of adjusting traffic dynamically based on variation performance. Optional -- defaults to False. This field may not be changed for an experiment whose status is ENDED.
+      "accountId": "A String", # Account ID to which this experiment belongs. This field is read-only.
+      "snippet": "A String", # The snippet of code to include on the control page(s). This field is read-only.
+      "editableInGaUi": True or False, # If true, the end user will be able to edit the experiment via the Google Analytics user interface.
+      "rewriteVariationUrlsAsOriginal": True or False, # Boolean specifying whether variations URLS are rewritten to match those of the original. This field may not be changed for an experiments whose status is ENDED.
+      "servingFramework": "A String", # The framework used to serve the experiment variations and evaluate the results. One of:
+          # - REDIRECT: Google Analytics redirects traffic to different variation pages, reports the chosen variation and evaluates the results.
+          # - API: Google Analytics chooses and reports the variation to serve and evaluates the results; the caller is responsible for serving the selected variation.
+          # - EXTERNAL: The variations will be served externally and the chosen variation reported to Google Analytics. The caller is responsible for serving the selected variation and evaluating the results.
+      "status": "A String", # Experiment status. Possible values: "DRAFT", "READY_TO_RUN", "RUNNING", "ENDED". Experiments can be created in the "DRAFT", "READY_TO_RUN" or "RUNNING" state. This field is required when creating an experiment.
+      "updated": "A String", # Time the experiment was last modified. This field is read-only.
+      "description": "A String", # Notes about this experiment.
+      "reasonExperimentEnded": "A String", # Why the experiment ended. Possible values: "STOPPED_BY_USER", "WINNER_FOUND", "EXPERIMENT_EXPIRED", "ENDED_WITH_NO_WINNER", "GOAL_OBJECTIVE_CHANGED". "ENDED_WITH_NO_WINNER" means that the experiment didn't expire but no winner was projected to be found. If the experiment status is changed via the API to ENDED this field is set to STOPPED_BY_USER. This field is read-only.
+      "internalWebPropertyId": "A String", # Internal ID for the web property to which this experiment belongs. This field is read-only.
+      "winnerConfidenceLevel": 3.14, # A floating-point number between 0 and 1. Specifies the necessary confidence level to choose a winner. This field may not be changed for an experiments whose status is ENDED.
+      "startTime": "A String", # The starting time of the experiment (the time the status changed from READY_TO_RUN to RUNNING). This field is present only if the experiment has started. This field is read-only.
+      "winnerFound": True or False, # Boolean specifying whether a winner has been found for this experiment. This field is read-only.
+      "kind": "analytics#experiment", # Resource type for an Analytics experiment. This field is read-only.
+      "name": "A String", # Experiment name. This field may not be changed for an experiment whose status is ENDED. This field is required when creating an experiment.
+      "created": "A String", # Time the experiment was created. This field is read-only.
+      "variations": [ # Array of variations. The first variation in the array is the original. The number of variations may not change once an experiment is in the RUNNING state. At least two variations are required before status can be set to RUNNING.
+        {
+          "status": "A String", # Status of the variation. Possible values: "ACTIVE", "INACTIVE". INACTIVE variations are not served. This field may not be changed for an experiment whose status is ENDED.
+          "url": "A String", # The URL of the variation. This field may not be changed for an experiment whose status is RUNNING or ENDED.
+          "won": True or False, # True if the experiment has ended and this variation performed (statistically) significantly better than the original. This field is read-only.
+          "name": "A String", # The name of the variation. This field is required when creating an experiment. This field may not be changed for an experiment whose status is ENDED.
+          "weight": 3.14, # Weight that this variation should receive. Only present if the experiment is running. This field is read-only.
+        },
+      ],
+      "minimumExperimentLengthInDays": 42, # Specifies the minimum length of the experiment. Can be changed for a running experiment. This field may not be changed for an experiments whose status is ENDED.
+      "profileId": "A String", # View (Profile) ID to which this experiment belongs. This field is read-only.
+      "parentLink": { # Parent link for an experiment. Points to the view (profile) to which this experiment belongs.
+        "href": "A String", # Link to the view (profile) to which this experiment belongs. This field is read-only.
+        "type": "analytics#profile", # Value is "analytics#profile". This field is read-only.
+      },
+      "endTime": "A String", # The ending time of the experiment (the time the status changed from RUNNING to ENDED). This field is present only if the experiment has ended. This field is read-only.
+      "selfLink": "A String", # Link for this experiment. This field is read-only.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(accountId, webPropertyId, profileId, experimentId, body)</code>
+  <pre>Update an existing experiment.
+
+Args:
+  accountId: string, Account ID of the experiment to update. (required)
+  webPropertyId: string, Web property ID of the experiment to update. (required)
+  profileId: string, View (Profile) ID of the experiment to update. (required)
+  experimentId: string, Experiment ID of the experiment to update. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # JSON template for Analytics experiment resource.
+    "trafficCoverage": 3.14, # A floating-point number between 0 and 1. Specifies the fraction of the traffic that participates in the experiment. Can be changed for a running experiment. This field may not be changed for an experiments whose status is ENDED.
+    "webPropertyId": "A String", # Web property ID to which this experiment belongs. The web property ID is of the form UA-XXXXX-YY. This field is read-only.
+    "optimizationType": "A String", # Whether the objectiveMetric should be minimized or maximized. Possible values: "MAXIMUM", "MINIMUM". Optional--defaults to "MAXIMUM". Cannot be specified without objectiveMetric. Cannot be modified when status is "RUNNING" or "ENDED".
+    "objectiveMetric": "A String", # The metric that the experiment is optimizing. Valid values: "ga:goal(n)Completions", "ga:adsenseAdsClicks", "ga:adsenseAdsViewed", "ga:adsenseRevenue", "ga:bounces", "ga:pageviews", "ga:sessionDuration", "ga:transactions", "ga:transactionRevenue". This field is required if status is "RUNNING" and servingFramework is one of "REDIRECT" or "API".
+    "id": "A String", # Experiment ID. Required for patch and update. Disallowed for create.
+    "equalWeighting": True or False, # Boolean specifying whether to distribute traffic evenly across all variations. If the value is False, content experiments follows the default behavior of adjusting traffic dynamically based on variation performance. Optional -- defaults to False. This field may not be changed for an experiment whose status is ENDED.
+    "accountId": "A String", # Account ID to which this experiment belongs. This field is read-only.
+    "snippet": "A String", # The snippet of code to include on the control page(s). This field is read-only.
+    "editableInGaUi": True or False, # If true, the end user will be able to edit the experiment via the Google Analytics user interface.
+    "rewriteVariationUrlsAsOriginal": True or False, # Boolean specifying whether variations URLS are rewritten to match those of the original. This field may not be changed for an experiments whose status is ENDED.
+    "servingFramework": "A String", # The framework used to serve the experiment variations and evaluate the results. One of:
+        # - REDIRECT: Google Analytics redirects traffic to different variation pages, reports the chosen variation and evaluates the results.
+        # - API: Google Analytics chooses and reports the variation to serve and evaluates the results; the caller is responsible for serving the selected variation.
+        # - EXTERNAL: The variations will be served externally and the chosen variation reported to Google Analytics. The caller is responsible for serving the selected variation and evaluating the results.
+    "status": "A String", # Experiment status. Possible values: "DRAFT", "READY_TO_RUN", "RUNNING", "ENDED". Experiments can be created in the "DRAFT", "READY_TO_RUN" or "RUNNING" state. This field is required when creating an experiment.
+    "updated": "A String", # Time the experiment was last modified. This field is read-only.
+    "description": "A String", # Notes about this experiment.
+    "reasonExperimentEnded": "A String", # Why the experiment ended. Possible values: "STOPPED_BY_USER", "WINNER_FOUND", "EXPERIMENT_EXPIRED", "ENDED_WITH_NO_WINNER", "GOAL_OBJECTIVE_CHANGED". "ENDED_WITH_NO_WINNER" means that the experiment didn't expire but no winner was projected to be found. If the experiment status is changed via the API to ENDED this field is set to STOPPED_BY_USER. This field is read-only.
+    "internalWebPropertyId": "A String", # Internal ID for the web property to which this experiment belongs. This field is read-only.
+    "winnerConfidenceLevel": 3.14, # A floating-point number between 0 and 1. Specifies the necessary confidence level to choose a winner. This field may not be changed for an experiments whose status is ENDED.
+    "startTime": "A String", # The starting time of the experiment (the time the status changed from READY_TO_RUN to RUNNING). This field is present only if the experiment has started. This field is read-only.
+    "winnerFound": True or False, # Boolean specifying whether a winner has been found for this experiment. This field is read-only.
+    "kind": "analytics#experiment", # Resource type for an Analytics experiment. This field is read-only.
+    "name": "A String", # Experiment name. This field may not be changed for an experiment whose status is ENDED. This field is required when creating an experiment.
+    "created": "A String", # Time the experiment was created. This field is read-only.
+    "variations": [ # Array of variations. The first variation in the array is the original. The number of variations may not change once an experiment is in the RUNNING state. At least two variations are required before status can be set to RUNNING.
+      {
+        "status": "A String", # Status of the variation. Possible values: "ACTIVE", "INACTIVE". INACTIVE variations are not served. This field may not be changed for an experiment whose status is ENDED.
+        "url": "A String", # The URL of the variation. This field may not be changed for an experiment whose status is RUNNING or ENDED.
+        "won": True or False, # True if the experiment has ended and this variation performed (statistically) significantly better than the original. This field is read-only.
+        "name": "A String", # The name of the variation. This field is required when creating an experiment. This field may not be changed for an experiment whose status is ENDED.
+        "weight": 3.14, # Weight that this variation should receive. Only present if the experiment is running. This field is read-only.
+      },
+    ],
+    "minimumExperimentLengthInDays": 42, # Specifies the minimum length of the experiment. Can be changed for a running experiment. This field may not be changed for an experiments whose status is ENDED.
+    "profileId": "A String", # View (Profile) ID to which this experiment belongs. This field is read-only.
+    "parentLink": { # Parent link for an experiment. Points to the view (profile) to which this experiment belongs.
+      "href": "A String", # Link to the view (profile) to which this experiment belongs. This field is read-only.
+      "type": "analytics#profile", # Value is "analytics#profile". This field is read-only.
+    },
+    "endTime": "A String", # The ending time of the experiment (the time the status changed from RUNNING to ENDED). This field is present only if the experiment has ended. This field is read-only.
+    "selfLink": "A String", # Link for this experiment. This field is read-only.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # JSON template for Analytics experiment resource.
+      "trafficCoverage": 3.14, # A floating-point number between 0 and 1. Specifies the fraction of the traffic that participates in the experiment. Can be changed for a running experiment. This field may not be changed for an experiments whose status is ENDED.
+      "webPropertyId": "A String", # Web property ID to which this experiment belongs. The web property ID is of the form UA-XXXXX-YY. This field is read-only.
+      "optimizationType": "A String", # Whether the objectiveMetric should be minimized or maximized. Possible values: "MAXIMUM", "MINIMUM". Optional--defaults to "MAXIMUM". Cannot be specified without objectiveMetric. Cannot be modified when status is "RUNNING" or "ENDED".
+      "objectiveMetric": "A String", # The metric that the experiment is optimizing. Valid values: "ga:goal(n)Completions", "ga:adsenseAdsClicks", "ga:adsenseAdsViewed", "ga:adsenseRevenue", "ga:bounces", "ga:pageviews", "ga:sessionDuration", "ga:transactions", "ga:transactionRevenue". This field is required if status is "RUNNING" and servingFramework is one of "REDIRECT" or "API".
+      "id": "A String", # Experiment ID. Required for patch and update. Disallowed for create.
+      "equalWeighting": True or False, # Boolean specifying whether to distribute traffic evenly across all variations. If the value is False, content experiments follows the default behavior of adjusting traffic dynamically based on variation performance. Optional -- defaults to False. This field may not be changed for an experiment whose status is ENDED.
+      "accountId": "A String", # Account ID to which this experiment belongs. This field is read-only.
+      "snippet": "A String", # The snippet of code to include on the control page(s). This field is read-only.
+      "editableInGaUi": True or False, # If true, the end user will be able to edit the experiment via the Google Analytics user interface.
+      "rewriteVariationUrlsAsOriginal": True or False, # Boolean specifying whether variations URLS are rewritten to match those of the original. This field may not be changed for an experiments whose status is ENDED.
+      "servingFramework": "A String", # The framework used to serve the experiment variations and evaluate the results. One of:
+          # - REDIRECT: Google Analytics redirects traffic to different variation pages, reports the chosen variation and evaluates the results.
+          # - API: Google Analytics chooses and reports the variation to serve and evaluates the results; the caller is responsible for serving the selected variation.
+          # - EXTERNAL: The variations will be served externally and the chosen variation reported to Google Analytics. The caller is responsible for serving the selected variation and evaluating the results.
+      "status": "A String", # Experiment status. Possible values: "DRAFT", "READY_TO_RUN", "RUNNING", "ENDED". Experiments can be created in the "DRAFT", "READY_TO_RUN" or "RUNNING" state. This field is required when creating an experiment.
+      "updated": "A String", # Time the experiment was last modified. This field is read-only.
+      "description": "A String", # Notes about this experiment.
+      "reasonExperimentEnded": "A String", # Why the experiment ended. Possible values: "STOPPED_BY_USER", "WINNER_FOUND", "EXPERIMENT_EXPIRED", "ENDED_WITH_NO_WINNER", "GOAL_OBJECTIVE_CHANGED". "ENDED_WITH_NO_WINNER" means that the experiment didn't expire but no winner was projected to be found. If the experiment status is changed via the API to ENDED this field is set to STOPPED_BY_USER. This field is read-only.
+      "internalWebPropertyId": "A String", # Internal ID for the web property to which this experiment belongs. This field is read-only.
+      "winnerConfidenceLevel": 3.14, # A floating-point number between 0 and 1. Specifies the necessary confidence level to choose a winner. This field may not be changed for an experiments whose status is ENDED.
+      "startTime": "A String", # The starting time of the experiment (the time the status changed from READY_TO_RUN to RUNNING). This field is present only if the experiment has started. This field is read-only.
+      "winnerFound": True or False, # Boolean specifying whether a winner has been found for this experiment. This field is read-only.
+      "kind": "analytics#experiment", # Resource type for an Analytics experiment. This field is read-only.
+      "name": "A String", # Experiment name. This field may not be changed for an experiment whose status is ENDED. This field is required when creating an experiment.
+      "created": "A String", # Time the experiment was created. This field is read-only.
+      "variations": [ # Array of variations. The first variation in the array is the original. The number of variations may not change once an experiment is in the RUNNING state. At least two variations are required before status can be set to RUNNING.
+        {
+          "status": "A String", # Status of the variation. Possible values: "ACTIVE", "INACTIVE". INACTIVE variations are not served. This field may not be changed for an experiment whose status is ENDED.
+          "url": "A String", # The URL of the variation. This field may not be changed for an experiment whose status is RUNNING or ENDED.
+          "won": True or False, # True if the experiment has ended and this variation performed (statistically) significantly better than the original. This field is read-only.
+          "name": "A String", # The name of the variation. This field is required when creating an experiment. This field may not be changed for an experiment whose status is ENDED.
+          "weight": 3.14, # Weight that this variation should receive. Only present if the experiment is running. This field is read-only.
+        },
+      ],
+      "minimumExperimentLengthInDays": 42, # Specifies the minimum length of the experiment. Can be changed for a running experiment. This field may not be changed for an experiments whose status is ENDED.
+      "profileId": "A String", # View (Profile) ID to which this experiment belongs. This field is read-only.
+      "parentLink": { # Parent link for an experiment. Points to the view (profile) to which this experiment belongs.
+        "href": "A String", # Link to the view (profile) to which this experiment belongs. This field is read-only.
+        "type": "analytics#profile", # Value is "analytics#profile". This field is read-only.
+      },
+      "endTime": "A String", # The ending time of the experiment (the time the status changed from RUNNING to ENDED). This field is present only if the experiment has ended. This field is read-only.
+      "selfLink": "A String", # Link for this experiment. This field is read-only.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/analytics_v3.management.goals.html b/docs/dyn/analytics_v3.management.goals.html
new file mode 100644
index 0000000..249639d
--- /dev/null
+++ b/docs/dyn/analytics_v3.management.goals.html
@@ -0,0 +1,607 @@
+<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.goals.html">goals</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(accountId, webPropertyId, profileId, goalId)</a></code></p>
+<p class="firstline">Gets a goal to which the user has access.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(accountId, webPropertyId, profileId, body)</a></code></p>
+<p class="firstline">Create a new goal.</p>
+<p class="toc_element">
+  <code><a href="#list">list(accountId, webPropertyId, profileId, max_results=None, start_index=None)</a></code></p>
+<p class="firstline">Lists goals to which the user has access.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(accountId, webPropertyId, profileId, goalId, body)</a></code></p>
+<p class="firstline">Updates an existing view (profile). This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(accountId, webPropertyId, profileId, goalId, body)</a></code></p>
+<p class="firstline">Updates an existing view (profile).</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(accountId, webPropertyId, profileId, goalId)</code>
+  <pre>Gets a goal to which the user has access.
+
+Args:
+  accountId: string, Account ID to retrieve the goal for. (required)
+  webPropertyId: string, Web property ID to retrieve the goal for. (required)
+  profileId: string, View (Profile) ID to retrieve the goal for. (required)
+  goalId: string, Goal ID to retrieve the goal for. (required)
+
+Returns:
+  An object of the form:
+
+    { # JSON template for Analytics goal resource.
+      "kind": "analytics#goal", # Resource type for an Analytics goal.
+      "visitTimeOnSiteDetails": { # Details for the goal of the type VISIT_TIME_ON_SITE.
+        "comparisonType": "A String", # Type of comparison. Possible values are LESS_THAN or GREATER_THAN.
+        "comparisonValue": "A String", # Value used for this comparison.
+      },
+      "name": "A String", # Goal name.
+      "created": "A String", # Time this goal was created.
+      "urlDestinationDetails": { # Details for the goal of the type URL_DESTINATION.
+        "url": "A String", # URL for this goal.
+        "caseSensitive": True or False, # Determines if the goal URL must exactly match the capitalization of visited URLs.
+        "matchType": "A String", # Match type for the goal URL. Possible values are HEAD, EXACT, or REGEX.
+        "steps": [ # List of steps configured for this goal funnel.
+          {
+            "url": "A String", # URL for this step.
+            "name": "A String", # Step name.
+            "number": 42, # Step number.
+          },
+        ],
+        "firstStepRequired": True or False, # Determines if the first step in this goal is required.
+      },
+      "updated": "A String", # Time this goal was last modified.
+      "value": 3.14, # Goal value.
+      "visitNumPagesDetails": { # Details for the goal of the type VISIT_NUM_PAGES.
+        "comparisonType": "A String", # Type of comparison. Possible values are LESS_THAN, GREATER_THAN, or EQUAL.
+        "comparisonValue": "A String", # Value used for this comparison.
+      },
+      "internalWebPropertyId": "A String", # Internal ID for the web property to which this goal belongs.
+      "eventDetails": { # Details for the goal of the type EVENT.
+        "eventConditions": [ # List of event conditions.
+          {
+            "type": "A String", # Type of this event condition. Possible values are CATEGORY, ACTION, LABEL, or VALUE.
+            "matchType": "A String", # Type of the match to be performed. Possible values are REGEXP, BEGINS_WITH, or EXACT.
+            "expression": "A String", # Expression used for this match.
+            "comparisonType": "A String", # Type of comparison. Possible values are LESS_THAN, GREATER_THAN or EQUAL.
+            "comparisonValue": "A String", # Value used for this comparison.
+          },
+        ],
+        "useEventValue": True or False, # Determines if the event value should be used as the value for this goal.
+      },
+      "webPropertyId": "A String", # Web property ID to which this goal belongs. The web property ID is of the form UA-XXXXX-YY.
+      "active": True or False, # Determines whether this goal is active.
+      "profileId": "A String", # View (Profile) ID to which this goal belongs.
+      "parentLink": { # Parent link for a goal. Points to the view (profile) to which this goal belongs.
+        "href": "A String", # Link to the view (profile) to which this goal belongs.
+        "type": "analytics#profile", # Value is "analytics#profile".
+      },
+      "type": "A String", # Goal type. Possible values are URL_DESTINATION, VISIT_TIME_ON_SITE, VISIT_NUM_PAGES, AND EVENT.
+      "id": "A String", # Goal ID.
+      "selfLink": "A String", # Link for this goal.
+      "accountId": "A String", # Account ID to which this goal belongs.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(accountId, webPropertyId, profileId, body)</code>
+  <pre>Create a new goal.
+
+Args:
+  accountId: string, Account ID to create the goal for. (required)
+  webPropertyId: string, Web property ID to create the goal for. (required)
+  profileId: string, View (Profile) ID to create the goal for. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # JSON template for Analytics goal resource.
+    "kind": "analytics#goal", # Resource type for an Analytics goal.
+    "visitTimeOnSiteDetails": { # Details for the goal of the type VISIT_TIME_ON_SITE.
+      "comparisonType": "A String", # Type of comparison. Possible values are LESS_THAN or GREATER_THAN.
+      "comparisonValue": "A String", # Value used for this comparison.
+    },
+    "name": "A String", # Goal name.
+    "created": "A String", # Time this goal was created.
+    "urlDestinationDetails": { # Details for the goal of the type URL_DESTINATION.
+      "url": "A String", # URL for this goal.
+      "caseSensitive": True or False, # Determines if the goal URL must exactly match the capitalization of visited URLs.
+      "matchType": "A String", # Match type for the goal URL. Possible values are HEAD, EXACT, or REGEX.
+      "steps": [ # List of steps configured for this goal funnel.
+        {
+          "url": "A String", # URL for this step.
+          "name": "A String", # Step name.
+          "number": 42, # Step number.
+        },
+      ],
+      "firstStepRequired": True or False, # Determines if the first step in this goal is required.
+    },
+    "updated": "A String", # Time this goal was last modified.
+    "value": 3.14, # Goal value.
+    "visitNumPagesDetails": { # Details for the goal of the type VISIT_NUM_PAGES.
+      "comparisonType": "A String", # Type of comparison. Possible values are LESS_THAN, GREATER_THAN, or EQUAL.
+      "comparisonValue": "A String", # Value used for this comparison.
+    },
+    "internalWebPropertyId": "A String", # Internal ID for the web property to which this goal belongs.
+    "eventDetails": { # Details for the goal of the type EVENT.
+      "eventConditions": [ # List of event conditions.
+        {
+          "type": "A String", # Type of this event condition. Possible values are CATEGORY, ACTION, LABEL, or VALUE.
+          "matchType": "A String", # Type of the match to be performed. Possible values are REGEXP, BEGINS_WITH, or EXACT.
+          "expression": "A String", # Expression used for this match.
+          "comparisonType": "A String", # Type of comparison. Possible values are LESS_THAN, GREATER_THAN or EQUAL.
+          "comparisonValue": "A String", # Value used for this comparison.
+        },
+      ],
+      "useEventValue": True or False, # Determines if the event value should be used as the value for this goal.
+    },
+    "webPropertyId": "A String", # Web property ID to which this goal belongs. The web property ID is of the form UA-XXXXX-YY.
+    "active": True or False, # Determines whether this goal is active.
+    "profileId": "A String", # View (Profile) ID to which this goal belongs.
+    "parentLink": { # Parent link for a goal. Points to the view (profile) to which this goal belongs.
+      "href": "A String", # Link to the view (profile) to which this goal belongs.
+      "type": "analytics#profile", # Value is "analytics#profile".
+    },
+    "type": "A String", # Goal type. Possible values are URL_DESTINATION, VISIT_TIME_ON_SITE, VISIT_NUM_PAGES, AND EVENT.
+    "id": "A String", # Goal ID.
+    "selfLink": "A String", # Link for this goal.
+    "accountId": "A String", # Account ID to which this goal belongs.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # JSON template for Analytics goal resource.
+      "kind": "analytics#goal", # Resource type for an Analytics goal.
+      "visitTimeOnSiteDetails": { # Details for the goal of the type VISIT_TIME_ON_SITE.
+        "comparisonType": "A String", # Type of comparison. Possible values are LESS_THAN or GREATER_THAN.
+        "comparisonValue": "A String", # Value used for this comparison.
+      },
+      "name": "A String", # Goal name.
+      "created": "A String", # Time this goal was created.
+      "urlDestinationDetails": { # Details for the goal of the type URL_DESTINATION.
+        "url": "A String", # URL for this goal.
+        "caseSensitive": True or False, # Determines if the goal URL must exactly match the capitalization of visited URLs.
+        "matchType": "A String", # Match type for the goal URL. Possible values are HEAD, EXACT, or REGEX.
+        "steps": [ # List of steps configured for this goal funnel.
+          {
+            "url": "A String", # URL for this step.
+            "name": "A String", # Step name.
+            "number": 42, # Step number.
+          },
+        ],
+        "firstStepRequired": True or False, # Determines if the first step in this goal is required.
+      },
+      "updated": "A String", # Time this goal was last modified.
+      "value": 3.14, # Goal value.
+      "visitNumPagesDetails": { # Details for the goal of the type VISIT_NUM_PAGES.
+        "comparisonType": "A String", # Type of comparison. Possible values are LESS_THAN, GREATER_THAN, or EQUAL.
+        "comparisonValue": "A String", # Value used for this comparison.
+      },
+      "internalWebPropertyId": "A String", # Internal ID for the web property to which this goal belongs.
+      "eventDetails": { # Details for the goal of the type EVENT.
+        "eventConditions": [ # List of event conditions.
+          {
+            "type": "A String", # Type of this event condition. Possible values are CATEGORY, ACTION, LABEL, or VALUE.
+            "matchType": "A String", # Type of the match to be performed. Possible values are REGEXP, BEGINS_WITH, or EXACT.
+            "expression": "A String", # Expression used for this match.
+            "comparisonType": "A String", # Type of comparison. Possible values are LESS_THAN, GREATER_THAN or EQUAL.
+            "comparisonValue": "A String", # Value used for this comparison.
+          },
+        ],
+        "useEventValue": True or False, # Determines if the event value should be used as the value for this goal.
+      },
+      "webPropertyId": "A String", # Web property ID to which this goal belongs. The web property ID is of the form UA-XXXXX-YY.
+      "active": True or False, # Determines whether this goal is active.
+      "profileId": "A String", # View (Profile) ID to which this goal belongs.
+      "parentLink": { # Parent link for a goal. Points to the view (profile) to which this goal belongs.
+        "href": "A String", # Link to the view (profile) to which this goal belongs.
+        "type": "analytics#profile", # Value is "analytics#profile".
+      },
+      "type": "A String", # Goal type. Possible values are URL_DESTINATION, VISIT_TIME_ON_SITE, VISIT_NUM_PAGES, AND EVENT.
+      "id": "A String", # Goal ID.
+      "selfLink": "A String", # Link for this goal.
+      "accountId": "A String", # Account ID to which this goal belongs.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(accountId, webPropertyId, profileId, max_results=None, start_index=None)</code>
+  <pre>Lists goals to which the user has access.
+
+Args:
+  accountId: string, Account ID to retrieve goals for. Can either be a specific account ID or '~all', which refers to all the accounts that user has access to. (required)
+  webPropertyId: string, Web property ID to retrieve goals for. Can either be a specific web property ID or '~all', which refers to all the web properties that user has access to. (required)
+  profileId: string, View (Profile) ID to retrieve goals for. Can either be a specific view (profile) ID or '~all', which refers to all the views (profiles) that user has access to. (required)
+  max_results: integer, The maximum number of goals to include in this response.
+  start_index: integer, An index of the first goal to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.
+
+Returns:
+  An object of the form:
+
+    { # A goal collection lists Analytics goals to which the user has access. Each view (profile) can have a set of goals. Each resource in the Goal collection corresponds to a single Analytics goal.
+    "username": "A String", # Email ID of the authenticated user
+    "kind": "analytics#goals", # Collection type.
+    "items": [ # A list of goals.
+      { # JSON template for Analytics goal resource.
+          "kind": "analytics#goal", # Resource type for an Analytics goal.
+          "visitTimeOnSiteDetails": { # Details for the goal of the type VISIT_TIME_ON_SITE.
+            "comparisonType": "A String", # Type of comparison. Possible values are LESS_THAN or GREATER_THAN.
+            "comparisonValue": "A String", # Value used for this comparison.
+          },
+          "name": "A String", # Goal name.
+          "created": "A String", # Time this goal was created.
+          "urlDestinationDetails": { # Details for the goal of the type URL_DESTINATION.
+            "url": "A String", # URL for this goal.
+            "caseSensitive": True or False, # Determines if the goal URL must exactly match the capitalization of visited URLs.
+            "matchType": "A String", # Match type for the goal URL. Possible values are HEAD, EXACT, or REGEX.
+            "steps": [ # List of steps configured for this goal funnel.
+              {
+                "url": "A String", # URL for this step.
+                "name": "A String", # Step name.
+                "number": 42, # Step number.
+              },
+            ],
+            "firstStepRequired": True or False, # Determines if the first step in this goal is required.
+          },
+          "updated": "A String", # Time this goal was last modified.
+          "value": 3.14, # Goal value.
+          "visitNumPagesDetails": { # Details for the goal of the type VISIT_NUM_PAGES.
+            "comparisonType": "A String", # Type of comparison. Possible values are LESS_THAN, GREATER_THAN, or EQUAL.
+            "comparisonValue": "A String", # Value used for this comparison.
+          },
+          "internalWebPropertyId": "A String", # Internal ID for the web property to which this goal belongs.
+          "eventDetails": { # Details for the goal of the type EVENT.
+            "eventConditions": [ # List of event conditions.
+              {
+                "type": "A String", # Type of this event condition. Possible values are CATEGORY, ACTION, LABEL, or VALUE.
+                "matchType": "A String", # Type of the match to be performed. Possible values are REGEXP, BEGINS_WITH, or EXACT.
+                "expression": "A String", # Expression used for this match.
+                "comparisonType": "A String", # Type of comparison. Possible values are LESS_THAN, GREATER_THAN or EQUAL.
+                "comparisonValue": "A String", # Value used for this comparison.
+              },
+            ],
+            "useEventValue": True or False, # Determines if the event value should be used as the value for this goal.
+          },
+          "webPropertyId": "A String", # Web property ID to which this goal belongs. The web property ID is of the form UA-XXXXX-YY.
+          "active": True or False, # Determines whether this goal is active.
+          "profileId": "A String", # View (Profile) ID to which this goal belongs.
+          "parentLink": { # Parent link for a goal. Points to the view (profile) to which this goal belongs.
+            "href": "A String", # Link to the view (profile) to which this goal belongs.
+            "type": "analytics#profile", # Value is "analytics#profile".
+          },
+          "type": "A String", # Goal type. Possible values are URL_DESTINATION, VISIT_TIME_ON_SITE, VISIT_NUM_PAGES, AND EVENT.
+          "id": "A String", # Goal ID.
+          "selfLink": "A String", # Link for this goal.
+          "accountId": "A String", # Account ID to which this goal belongs.
+        },
+    ],
+    "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 goal 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 goal collection.
+    "totalResults": 42, # The total number of results for the query, regardless of the number of resources in the result.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(accountId, webPropertyId, profileId, goalId, body)</code>
+  <pre>Updates an existing view (profile). This method supports patch semantics.
+
+Args:
+  accountId: string, Account ID to update the goal. (required)
+  webPropertyId: string, Web property ID to update the goal. (required)
+  profileId: string, View (Profile) ID to update the goal. (required)
+  goalId: string, Index of the goal to be updated. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # JSON template for Analytics goal resource.
+    "kind": "analytics#goal", # Resource type for an Analytics goal.
+    "visitTimeOnSiteDetails": { # Details for the goal of the type VISIT_TIME_ON_SITE.
+      "comparisonType": "A String", # Type of comparison. Possible values are LESS_THAN or GREATER_THAN.
+      "comparisonValue": "A String", # Value used for this comparison.
+    },
+    "name": "A String", # Goal name.
+    "created": "A String", # Time this goal was created.
+    "urlDestinationDetails": { # Details for the goal of the type URL_DESTINATION.
+      "url": "A String", # URL for this goal.
+      "caseSensitive": True or False, # Determines if the goal URL must exactly match the capitalization of visited URLs.
+      "matchType": "A String", # Match type for the goal URL. Possible values are HEAD, EXACT, or REGEX.
+      "steps": [ # List of steps configured for this goal funnel.
+        {
+          "url": "A String", # URL for this step.
+          "name": "A String", # Step name.
+          "number": 42, # Step number.
+        },
+      ],
+      "firstStepRequired": True or False, # Determines if the first step in this goal is required.
+    },
+    "updated": "A String", # Time this goal was last modified.
+    "value": 3.14, # Goal value.
+    "visitNumPagesDetails": { # Details for the goal of the type VISIT_NUM_PAGES.
+      "comparisonType": "A String", # Type of comparison. Possible values are LESS_THAN, GREATER_THAN, or EQUAL.
+      "comparisonValue": "A String", # Value used for this comparison.
+    },
+    "internalWebPropertyId": "A String", # Internal ID for the web property to which this goal belongs.
+    "eventDetails": { # Details for the goal of the type EVENT.
+      "eventConditions": [ # List of event conditions.
+        {
+          "type": "A String", # Type of this event condition. Possible values are CATEGORY, ACTION, LABEL, or VALUE.
+          "matchType": "A String", # Type of the match to be performed. Possible values are REGEXP, BEGINS_WITH, or EXACT.
+          "expression": "A String", # Expression used for this match.
+          "comparisonType": "A String", # Type of comparison. Possible values are LESS_THAN, GREATER_THAN or EQUAL.
+          "comparisonValue": "A String", # Value used for this comparison.
+        },
+      ],
+      "useEventValue": True or False, # Determines if the event value should be used as the value for this goal.
+    },
+    "webPropertyId": "A String", # Web property ID to which this goal belongs. The web property ID is of the form UA-XXXXX-YY.
+    "active": True or False, # Determines whether this goal is active.
+    "profileId": "A String", # View (Profile) ID to which this goal belongs.
+    "parentLink": { # Parent link for a goal. Points to the view (profile) to which this goal belongs.
+      "href": "A String", # Link to the view (profile) to which this goal belongs.
+      "type": "analytics#profile", # Value is "analytics#profile".
+    },
+    "type": "A String", # Goal type. Possible values are URL_DESTINATION, VISIT_TIME_ON_SITE, VISIT_NUM_PAGES, AND EVENT.
+    "id": "A String", # Goal ID.
+    "selfLink": "A String", # Link for this goal.
+    "accountId": "A String", # Account ID to which this goal belongs.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # JSON template for Analytics goal resource.
+      "kind": "analytics#goal", # Resource type for an Analytics goal.
+      "visitTimeOnSiteDetails": { # Details for the goal of the type VISIT_TIME_ON_SITE.
+        "comparisonType": "A String", # Type of comparison. Possible values are LESS_THAN or GREATER_THAN.
+        "comparisonValue": "A String", # Value used for this comparison.
+      },
+      "name": "A String", # Goal name.
+      "created": "A String", # Time this goal was created.
+      "urlDestinationDetails": { # Details for the goal of the type URL_DESTINATION.
+        "url": "A String", # URL for this goal.
+        "caseSensitive": True or False, # Determines if the goal URL must exactly match the capitalization of visited URLs.
+        "matchType": "A String", # Match type for the goal URL. Possible values are HEAD, EXACT, or REGEX.
+        "steps": [ # List of steps configured for this goal funnel.
+          {
+            "url": "A String", # URL for this step.
+            "name": "A String", # Step name.
+            "number": 42, # Step number.
+          },
+        ],
+        "firstStepRequired": True or False, # Determines if the first step in this goal is required.
+      },
+      "updated": "A String", # Time this goal was last modified.
+      "value": 3.14, # Goal value.
+      "visitNumPagesDetails": { # Details for the goal of the type VISIT_NUM_PAGES.
+        "comparisonType": "A String", # Type of comparison. Possible values are LESS_THAN, GREATER_THAN, or EQUAL.
+        "comparisonValue": "A String", # Value used for this comparison.
+      },
+      "internalWebPropertyId": "A String", # Internal ID for the web property to which this goal belongs.
+      "eventDetails": { # Details for the goal of the type EVENT.
+        "eventConditions": [ # List of event conditions.
+          {
+            "type": "A String", # Type of this event condition. Possible values are CATEGORY, ACTION, LABEL, or VALUE.
+            "matchType": "A String", # Type of the match to be performed. Possible values are REGEXP, BEGINS_WITH, or EXACT.
+            "expression": "A String", # Expression used for this match.
+            "comparisonType": "A String", # Type of comparison. Possible values are LESS_THAN, GREATER_THAN or EQUAL.
+            "comparisonValue": "A String", # Value used for this comparison.
+          },
+        ],
+        "useEventValue": True or False, # Determines if the event value should be used as the value for this goal.
+      },
+      "webPropertyId": "A String", # Web property ID to which this goal belongs. The web property ID is of the form UA-XXXXX-YY.
+      "active": True or False, # Determines whether this goal is active.
+      "profileId": "A String", # View (Profile) ID to which this goal belongs.
+      "parentLink": { # Parent link for a goal. Points to the view (profile) to which this goal belongs.
+        "href": "A String", # Link to the view (profile) to which this goal belongs.
+        "type": "analytics#profile", # Value is "analytics#profile".
+      },
+      "type": "A String", # Goal type. Possible values are URL_DESTINATION, VISIT_TIME_ON_SITE, VISIT_NUM_PAGES, AND EVENT.
+      "id": "A String", # Goal ID.
+      "selfLink": "A String", # Link for this goal.
+      "accountId": "A String", # Account ID to which this goal belongs.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(accountId, webPropertyId, profileId, goalId, body)</code>
+  <pre>Updates an existing view (profile).
+
+Args:
+  accountId: string, Account ID to update the goal. (required)
+  webPropertyId: string, Web property ID to update the goal. (required)
+  profileId: string, View (Profile) ID to update the goal. (required)
+  goalId: string, Index of the goal to be updated. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # JSON template for Analytics goal resource.
+    "kind": "analytics#goal", # Resource type for an Analytics goal.
+    "visitTimeOnSiteDetails": { # Details for the goal of the type VISIT_TIME_ON_SITE.
+      "comparisonType": "A String", # Type of comparison. Possible values are LESS_THAN or GREATER_THAN.
+      "comparisonValue": "A String", # Value used for this comparison.
+    },
+    "name": "A String", # Goal name.
+    "created": "A String", # Time this goal was created.
+    "urlDestinationDetails": { # Details for the goal of the type URL_DESTINATION.
+      "url": "A String", # URL for this goal.
+      "caseSensitive": True or False, # Determines if the goal URL must exactly match the capitalization of visited URLs.
+      "matchType": "A String", # Match type for the goal URL. Possible values are HEAD, EXACT, or REGEX.
+      "steps": [ # List of steps configured for this goal funnel.
+        {
+          "url": "A String", # URL for this step.
+          "name": "A String", # Step name.
+          "number": 42, # Step number.
+        },
+      ],
+      "firstStepRequired": True or False, # Determines if the first step in this goal is required.
+    },
+    "updated": "A String", # Time this goal was last modified.
+    "value": 3.14, # Goal value.
+    "visitNumPagesDetails": { # Details for the goal of the type VISIT_NUM_PAGES.
+      "comparisonType": "A String", # Type of comparison. Possible values are LESS_THAN, GREATER_THAN, or EQUAL.
+      "comparisonValue": "A String", # Value used for this comparison.
+    },
+    "internalWebPropertyId": "A String", # Internal ID for the web property to which this goal belongs.
+    "eventDetails": { # Details for the goal of the type EVENT.
+      "eventConditions": [ # List of event conditions.
+        {
+          "type": "A String", # Type of this event condition. Possible values are CATEGORY, ACTION, LABEL, or VALUE.
+          "matchType": "A String", # Type of the match to be performed. Possible values are REGEXP, BEGINS_WITH, or EXACT.
+          "expression": "A String", # Expression used for this match.
+          "comparisonType": "A String", # Type of comparison. Possible values are LESS_THAN, GREATER_THAN or EQUAL.
+          "comparisonValue": "A String", # Value used for this comparison.
+        },
+      ],
+      "useEventValue": True or False, # Determines if the event value should be used as the value for this goal.
+    },
+    "webPropertyId": "A String", # Web property ID to which this goal belongs. The web property ID is of the form UA-XXXXX-YY.
+    "active": True or False, # Determines whether this goal is active.
+    "profileId": "A String", # View (Profile) ID to which this goal belongs.
+    "parentLink": { # Parent link for a goal. Points to the view (profile) to which this goal belongs.
+      "href": "A String", # Link to the view (profile) to which this goal belongs.
+      "type": "analytics#profile", # Value is "analytics#profile".
+    },
+    "type": "A String", # Goal type. Possible values are URL_DESTINATION, VISIT_TIME_ON_SITE, VISIT_NUM_PAGES, AND EVENT.
+    "id": "A String", # Goal ID.
+    "selfLink": "A String", # Link for this goal.
+    "accountId": "A String", # Account ID to which this goal belongs.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # JSON template for Analytics goal resource.
+      "kind": "analytics#goal", # Resource type for an Analytics goal.
+      "visitTimeOnSiteDetails": { # Details for the goal of the type VISIT_TIME_ON_SITE.
+        "comparisonType": "A String", # Type of comparison. Possible values are LESS_THAN or GREATER_THAN.
+        "comparisonValue": "A String", # Value used for this comparison.
+      },
+      "name": "A String", # Goal name.
+      "created": "A String", # Time this goal was created.
+      "urlDestinationDetails": { # Details for the goal of the type URL_DESTINATION.
+        "url": "A String", # URL for this goal.
+        "caseSensitive": True or False, # Determines if the goal URL must exactly match the capitalization of visited URLs.
+        "matchType": "A String", # Match type for the goal URL. Possible values are HEAD, EXACT, or REGEX.
+        "steps": [ # List of steps configured for this goal funnel.
+          {
+            "url": "A String", # URL for this step.
+            "name": "A String", # Step name.
+            "number": 42, # Step number.
+          },
+        ],
+        "firstStepRequired": True or False, # Determines if the first step in this goal is required.
+      },
+      "updated": "A String", # Time this goal was last modified.
+      "value": 3.14, # Goal value.
+      "visitNumPagesDetails": { # Details for the goal of the type VISIT_NUM_PAGES.
+        "comparisonType": "A String", # Type of comparison. Possible values are LESS_THAN, GREATER_THAN, or EQUAL.
+        "comparisonValue": "A String", # Value used for this comparison.
+      },
+      "internalWebPropertyId": "A String", # Internal ID for the web property to which this goal belongs.
+      "eventDetails": { # Details for the goal of the type EVENT.
+        "eventConditions": [ # List of event conditions.
+          {
+            "type": "A String", # Type of this event condition. Possible values are CATEGORY, ACTION, LABEL, or VALUE.
+            "matchType": "A String", # Type of the match to be performed. Possible values are REGEXP, BEGINS_WITH, or EXACT.
+            "expression": "A String", # Expression used for this match.
+            "comparisonType": "A String", # Type of comparison. Possible values are LESS_THAN, GREATER_THAN or EQUAL.
+            "comparisonValue": "A String", # Value used for this comparison.
+          },
+        ],
+        "useEventValue": True or False, # Determines if the event value should be used as the value for this goal.
+      },
+      "webPropertyId": "A String", # Web property ID to which this goal belongs. The web property ID is of the form UA-XXXXX-YY.
+      "active": True or False, # Determines whether this goal is active.
+      "profileId": "A String", # View (Profile) ID to which this goal belongs.
+      "parentLink": { # Parent link for a goal. Points to the view (profile) to which this goal belongs.
+        "href": "A String", # Link to the view (profile) to which this goal belongs.
+        "type": "analytics#profile", # Value is "analytics#profile".
+      },
+      "type": "A String", # Goal type. Possible values are URL_DESTINATION, VISIT_TIME_ON_SITE, VISIT_NUM_PAGES, AND EVENT.
+      "id": "A String", # Goal ID.
+      "selfLink": "A String", # Link for this goal.
+      "accountId": "A String", # Account ID to which this goal belongs.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/analytics_v3.management.html b/docs/dyn/analytics_v3.management.html
new file mode 100644
index 0000000..ff78c9f
--- /dev/null
+++ b/docs/dyn/analytics_v3.management.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="analytics_v3.html">Google Analytics API</a> . <a href="analytics_v3.management.html">management</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="analytics_v3.management.accountSummaries.html">accountSummaries()</a></code>
+</p>
+<p class="firstline">Returns the accountSummaries Resource.</p>
+
+<p class="toc_element">
+  <code><a href="analytics_v3.management.accountUserLinks.html">accountUserLinks()</a></code>
+</p>
+<p class="firstline">Returns the accountUserLinks Resource.</p>
+
+<p class="toc_element">
+  <code><a href="analytics_v3.management.accounts.html">accounts()</a></code>
+</p>
+<p class="firstline">Returns the accounts Resource.</p>
+
+<p class="toc_element">
+  <code><a href="analytics_v3.management.customDataSources.html">customDataSources()</a></code>
+</p>
+<p class="firstline">Returns the customDataSources Resource.</p>
+
+<p class="toc_element">
+  <code><a href="analytics_v3.management.dailyUploads.html">dailyUploads()</a></code>
+</p>
+<p class="firstline">Returns the dailyUploads Resource.</p>
+
+<p class="toc_element">
+  <code><a href="analytics_v3.management.experiments.html">experiments()</a></code>
+</p>
+<p class="firstline">Returns the experiments Resource.</p>
+
+<p class="toc_element">
+  <code><a href="analytics_v3.management.goals.html">goals()</a></code>
+</p>
+<p class="firstline">Returns the goals Resource.</p>
+
+<p class="toc_element">
+  <code><a href="analytics_v3.management.profileUserLinks.html">profileUserLinks()</a></code>
+</p>
+<p class="firstline">Returns the profileUserLinks Resource.</p>
+
+<p class="toc_element">
+  <code><a href="analytics_v3.management.profiles.html">profiles()</a></code>
+</p>
+<p class="firstline">Returns the profiles Resource.</p>
+
+<p class="toc_element">
+  <code><a href="analytics_v3.management.segments.html">segments()</a></code>
+</p>
+<p class="firstline">Returns the segments Resource.</p>
+
+<p class="toc_element">
+  <code><a href="analytics_v3.management.uploads.html">uploads()</a></code>
+</p>
+<p class="firstline">Returns the uploads Resource.</p>
+
+<p class="toc_element">
+  <code><a href="analytics_v3.management.webproperties.html">webproperties()</a></code>
+</p>
+<p class="firstline">Returns the webproperties Resource.</p>
+
+<p class="toc_element">
+  <code><a href="analytics_v3.management.webpropertyUserLinks.html">webpropertyUserLinks()</a></code>
+</p>
+<p class="firstline">Returns the webpropertyUserLinks Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/analytics_v3.management.profileUserLinks.html b/docs/dyn/analytics_v3.management.profileUserLinks.html
new file mode 100644
index 0000000..d73e8bc
--- /dev/null
+++ b/docs/dyn/analytics_v3.management.profileUserLinks.html
@@ -0,0 +1,380 @@
+<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.profileUserLinks.html">profileUserLinks</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(accountId, webPropertyId, profileId, linkId)</a></code></p>
+<p class="firstline">Removes a user from the given view (profile).</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(accountId, webPropertyId, profileId, body)</a></code></p>
+<p class="firstline">Adds a new user to the given view (profile).</p>
+<p class="toc_element">
+  <code><a href="#list">list(accountId, webPropertyId, profileId, max_results=None, start_index=None)</a></code></p>
+<p class="firstline">Lists profile-user links for a given view (profile).</p>
+<p class="toc_element">
+  <code><a href="#update">update(accountId, webPropertyId, profileId, linkId, body)</a></code></p>
+<p class="firstline">Updates permissions for an existing user on the given view (profile).</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(accountId, webPropertyId, profileId, linkId)</code>
+  <pre>Removes a user from the given view (profile).
+
+Args:
+  accountId: string, Account ID to delete the user link for. (required)
+  webPropertyId: string, Web Property ID to delete the user link for. (required)
+  profileId: string, View (Profile) ID to delete the user link for. (required)
+  linkId: string, Link ID to delete the user link for. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(accountId, webPropertyId, profileId, body)</code>
+  <pre>Adds a new user to the given view (profile).
+
+Args:
+  accountId: string, Account ID to create the user link for. (required)
+  webPropertyId: string, Web Property ID to create the user link for. (required)
+  profileId: string, View (Profile) ID to create the user link for. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # JSON template for an Analytics Entity-User Link. Returns permissions that a user has for an entity.
+    "kind": "analytics#entityUserLink", # Resource type for entity user link.
+    "entity": { # Entity for this link. It can be an account, a web property, or a view (profile).
+      "accountRef": { # JSON template for a linked account. # Account for this link.
+        "kind": "analytics#accountRef", # Analytics account reference.
+        "href": "A String", # Link for this account.
+        "id": "A String", # Account ID.
+        "name": "A String", # Account name.
+      },
+      "profileRef": { # JSON template for a linked view (profile). # View (Profile) for this link.
+        "kind": "analytics#profileRef", # Analytics view (profile) reference.
+        "name": "A String", # Name of this view (profile).
+        "internalWebPropertyId": "A String", # Internal ID for the web property to which this view (profile) belongs.
+        "href": "A String", # Link for this view (profile).
+        "webPropertyId": "A String", # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
+        "id": "A String", # View (Profile) ID.
+        "accountId": "A String", # Account ID to which this view (profile) belongs.
+      },
+      "webPropertyRef": { # JSON template for a web property reference. # Web property for this link.
+        "kind": "analytics#webPropertyRef", # Analytics web property reference.
+        "name": "A String", # Name of this web property.
+        "internalWebPropertyId": "A String", # Internal ID for this web property.
+        "href": "A String", # Link for this web property.
+        "id": "A String", # Web property ID of the form UA-XXXXX-YY.
+        "accountId": "A String", # Account ID to which this web property belongs.
+      },
+    },
+    "userRef": { # JSON template for a user reference. # User reference.
+      "kind": "analytics#userRef",
+      "email": "A String", # Email ID of this user.
+      "id": "A String", # User ID.
+    },
+    "id": "A String", # Entity user link ID
+    "selfLink": "A String", # Self link for this resource.
+    "permissions": { # Permissions the user has for this entity.
+      "local": [ # Permissions that a user has been assigned at this very level. Does not include any implied or inherited permissions. Local permissions are modifiable.
+        "A String",
+      ],
+      "effective": [ # Effective permissions represent all the permissions that a user has for this entity. These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent entity. Effective permissions are read-only.
+        "A String",
+      ],
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # JSON template for an Analytics Entity-User Link. Returns permissions that a user has for an entity.
+      "kind": "analytics#entityUserLink", # Resource type for entity user link.
+      "entity": { # Entity for this link. It can be an account, a web property, or a view (profile).
+        "accountRef": { # JSON template for a linked account. # Account for this link.
+          "kind": "analytics#accountRef", # Analytics account reference.
+          "href": "A String", # Link for this account.
+          "id": "A String", # Account ID.
+          "name": "A String", # Account name.
+        },
+        "profileRef": { # JSON template for a linked view (profile). # View (Profile) for this link.
+          "kind": "analytics#profileRef", # Analytics view (profile) reference.
+          "name": "A String", # Name of this view (profile).
+          "internalWebPropertyId": "A String", # Internal ID for the web property to which this view (profile) belongs.
+          "href": "A String", # Link for this view (profile).
+          "webPropertyId": "A String", # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
+          "id": "A String", # View (Profile) ID.
+          "accountId": "A String", # Account ID to which this view (profile) belongs.
+        },
+        "webPropertyRef": { # JSON template for a web property reference. # Web property for this link.
+          "kind": "analytics#webPropertyRef", # Analytics web property reference.
+          "name": "A String", # Name of this web property.
+          "internalWebPropertyId": "A String", # Internal ID for this web property.
+          "href": "A String", # Link for this web property.
+          "id": "A String", # Web property ID of the form UA-XXXXX-YY.
+          "accountId": "A String", # Account ID to which this web property belongs.
+        },
+      },
+      "userRef": { # JSON template for a user reference. # User reference.
+        "kind": "analytics#userRef",
+        "email": "A String", # Email ID of this user.
+        "id": "A String", # User ID.
+      },
+      "id": "A String", # Entity user link ID
+      "selfLink": "A String", # Self link for this resource.
+      "permissions": { # Permissions the user has for this entity.
+        "local": [ # Permissions that a user has been assigned at this very level. Does not include any implied or inherited permissions. Local permissions are modifiable.
+          "A String",
+        ],
+        "effective": [ # Effective permissions represent all the permissions that a user has for this entity. These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent entity. Effective permissions are read-only.
+          "A String",
+        ],
+      },
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(accountId, webPropertyId, profileId, max_results=None, start_index=None)</code>
+  <pre>Lists profile-user links for a given view (profile).
+
+Args:
+  accountId: string, Account ID which the given view (profile) belongs to. (required)
+  webPropertyId: string, Web Property ID which the given view (profile) belongs to. (required)
+  profileId: string, View (Profile) ID to retrieve the profile-user links for (required)
+  max_results: integer, The maximum number of profile-user links to include in this response.
+  start_index: integer, An index of the first profile-user link to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.
+
+Returns:
+  An object of the form:
+
+    { # An entity user link collection provides a list of Analytics ACL links Each resource in this collection corresponds to a single link.
+    "kind": "analytics#entityUserLinks", # Collection type.
+    "items": [ # A list of entity user links.
+      { # JSON template for an Analytics Entity-User Link. Returns permissions that a user has for an entity.
+          "kind": "analytics#entityUserLink", # Resource type for entity user link.
+          "entity": { # Entity for this link. It can be an account, a web property, or a view (profile).
+            "accountRef": { # JSON template for a linked account. # Account for this link.
+              "kind": "analytics#accountRef", # Analytics account reference.
+              "href": "A String", # Link for this account.
+              "id": "A String", # Account ID.
+              "name": "A String", # Account name.
+            },
+            "profileRef": { # JSON template for a linked view (profile). # View (Profile) for this link.
+              "kind": "analytics#profileRef", # Analytics view (profile) reference.
+              "name": "A String", # Name of this view (profile).
+              "internalWebPropertyId": "A String", # Internal ID for the web property to which this view (profile) belongs.
+              "href": "A String", # Link for this view (profile).
+              "webPropertyId": "A String", # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
+              "id": "A String", # View (Profile) ID.
+              "accountId": "A String", # Account ID to which this view (profile) belongs.
+            },
+            "webPropertyRef": { # JSON template for a web property reference. # Web property for this link.
+              "kind": "analytics#webPropertyRef", # Analytics web property reference.
+              "name": "A String", # Name of this web property.
+              "internalWebPropertyId": "A String", # Internal ID for this web property.
+              "href": "A String", # Link for this web property.
+              "id": "A String", # Web property ID of the form UA-XXXXX-YY.
+              "accountId": "A String", # Account ID to which this web property belongs.
+            },
+          },
+          "userRef": { # JSON template for a user reference. # User reference.
+            "kind": "analytics#userRef",
+            "email": "A String", # Email ID of this user.
+            "id": "A String", # User ID.
+          },
+          "id": "A String", # Entity user link ID
+          "selfLink": "A String", # Self link for this resource.
+          "permissions": { # Permissions the user has for this entity.
+            "local": [ # Permissions that a user has been assigned at this very level. Does not include any implied or inherited permissions. Local permissions are modifiable.
+              "A String",
+            ],
+            "effective": [ # Effective permissions represent all the permissions that a user has for this entity. These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent entity. Effective permissions are read-only.
+              "A String",
+            ],
+          },
+        },
+    ],
+    "itemsPerPage": 42, # The maximum number of entries the response can contain, regardless of the actual number of entries 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", # Previous link for this account collection.
+    "startIndex": 42, # The starting index of the entries, which is 1 by default or otherwise specified by the start-index query parameter.
+    "nextLink": "A String", # Next link for this account 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="update">update(accountId, webPropertyId, profileId, linkId, body)</code>
+  <pre>Updates permissions for an existing user on the given view (profile).
+
+Args:
+  accountId: string, Account ID to update the user link for. (required)
+  webPropertyId: string, Web Property ID to update the user link for. (required)
+  profileId: string, View (Profile ID) to update the user link for. (required)
+  linkId: string, Link ID to update the user link for. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # JSON template for an Analytics Entity-User Link. Returns permissions that a user has for an entity.
+    "kind": "analytics#entityUserLink", # Resource type for entity user link.
+    "entity": { # Entity for this link. It can be an account, a web property, or a view (profile).
+      "accountRef": { # JSON template for a linked account. # Account for this link.
+        "kind": "analytics#accountRef", # Analytics account reference.
+        "href": "A String", # Link for this account.
+        "id": "A String", # Account ID.
+        "name": "A String", # Account name.
+      },
+      "profileRef": { # JSON template for a linked view (profile). # View (Profile) for this link.
+        "kind": "analytics#profileRef", # Analytics view (profile) reference.
+        "name": "A String", # Name of this view (profile).
+        "internalWebPropertyId": "A String", # Internal ID for the web property to which this view (profile) belongs.
+        "href": "A String", # Link for this view (profile).
+        "webPropertyId": "A String", # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
+        "id": "A String", # View (Profile) ID.
+        "accountId": "A String", # Account ID to which this view (profile) belongs.
+      },
+      "webPropertyRef": { # JSON template for a web property reference. # Web property for this link.
+        "kind": "analytics#webPropertyRef", # Analytics web property reference.
+        "name": "A String", # Name of this web property.
+        "internalWebPropertyId": "A String", # Internal ID for this web property.
+        "href": "A String", # Link for this web property.
+        "id": "A String", # Web property ID of the form UA-XXXXX-YY.
+        "accountId": "A String", # Account ID to which this web property belongs.
+      },
+    },
+    "userRef": { # JSON template for a user reference. # User reference.
+      "kind": "analytics#userRef",
+      "email": "A String", # Email ID of this user.
+      "id": "A String", # User ID.
+    },
+    "id": "A String", # Entity user link ID
+    "selfLink": "A String", # Self link for this resource.
+    "permissions": { # Permissions the user has for this entity.
+      "local": [ # Permissions that a user has been assigned at this very level. Does not include any implied or inherited permissions. Local permissions are modifiable.
+        "A String",
+      ],
+      "effective": [ # Effective permissions represent all the permissions that a user has for this entity. These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent entity. Effective permissions are read-only.
+        "A String",
+      ],
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # JSON template for an Analytics Entity-User Link. Returns permissions that a user has for an entity.
+      "kind": "analytics#entityUserLink", # Resource type for entity user link.
+      "entity": { # Entity for this link. It can be an account, a web property, or a view (profile).
+        "accountRef": { # JSON template for a linked account. # Account for this link.
+          "kind": "analytics#accountRef", # Analytics account reference.
+          "href": "A String", # Link for this account.
+          "id": "A String", # Account ID.
+          "name": "A String", # Account name.
+        },
+        "profileRef": { # JSON template for a linked view (profile). # View (Profile) for this link.
+          "kind": "analytics#profileRef", # Analytics view (profile) reference.
+          "name": "A String", # Name of this view (profile).
+          "internalWebPropertyId": "A String", # Internal ID for the web property to which this view (profile) belongs.
+          "href": "A String", # Link for this view (profile).
+          "webPropertyId": "A String", # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
+          "id": "A String", # View (Profile) ID.
+          "accountId": "A String", # Account ID to which this view (profile) belongs.
+        },
+        "webPropertyRef": { # JSON template for a web property reference. # Web property for this link.
+          "kind": "analytics#webPropertyRef", # Analytics web property reference.
+          "name": "A String", # Name of this web property.
+          "internalWebPropertyId": "A String", # Internal ID for this web property.
+          "href": "A String", # Link for this web property.
+          "id": "A String", # Web property ID of the form UA-XXXXX-YY.
+          "accountId": "A String", # Account ID to which this web property belongs.
+        },
+      },
+      "userRef": { # JSON template for a user reference. # User reference.
+        "kind": "analytics#userRef",
+        "email": "A String", # Email ID of this user.
+        "id": "A String", # User ID.
+      },
+      "id": "A String", # Entity user link ID
+      "selfLink": "A String", # Self link for this resource.
+      "permissions": { # Permissions the user has for this entity.
+        "local": [ # Permissions that a user has been assigned at this very level. Does not include any implied or inherited permissions. Local permissions are modifiable.
+          "A String",
+        ],
+        "effective": [ # Effective permissions represent all the permissions that a user has for this entity. These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent entity. Effective permissions are read-only.
+          "A String",
+        ],
+      },
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/analytics_v3.management.profiles.html b/docs/dyn/analytics_v3.management.profiles.html
new file mode 100644
index 0000000..859eff9
--- /dev/null
+++ b/docs/dyn/analytics_v3.management.profiles.html
@@ -0,0 +1,488 @@
+<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.profiles.html">profiles</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(accountId, webPropertyId, profileId)</a></code></p>
+<p class="firstline">Deletes a view (profile).</p>
+<p class="toc_element">
+  <code><a href="#get">get(accountId, webPropertyId, profileId)</a></code></p>
+<p class="firstline">Gets a view (profile) 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 view (profile).</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 views (profiles) to which the user has access.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(accountId, webPropertyId, profileId, body)</a></code></p>
+<p class="firstline">Updates an existing view (profile). This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(accountId, webPropertyId, profileId, body)</a></code></p>
+<p class="firstline">Updates an existing view (profile).</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(accountId, webPropertyId, profileId)</code>
+  <pre>Deletes a view (profile).
+
+Args:
+  accountId: string, Account ID to delete the view (profile) for. (required)
+  webPropertyId: string, Web property ID to delete the view (profile) for. (required)
+  profileId: string, ID of the view (profile) to be deleted. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(accountId, webPropertyId, profileId)</code>
+  <pre>Gets a view (profile) to which the user has access.
+
+Args:
+  accountId: string, Account ID to retrieve the goal for. (required)
+  webPropertyId: string, Web property ID to retrieve the goal for. (required)
+  profileId: string, View (Profile) ID to retrieve the goal for. (required)
+
+Returns:
+  An object of the form:
+
+    { # JSON template for an Analytics view (profile).
+      "currency": "A String", # The currency type associated with this view (profile). The supported values are:
+          # ARS, AUD, BGN, BRL, CAD, CHF, CNY, CZK, DKK, EUR, GBP, HKD, HUF, IDR, INR, JPY, KRW, LTL, MXN, NOK, NZD, PHP, PLN, RUB, SEK, THB, TRY, TWD, USD, VND, ZAR
+      "eCommerceTracking": True or False, # Indicates whether ecommerce tracking is enabled for this view (profile).
+      "webPropertyId": "A String", # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
+      "timezone": "A String", # Time zone for which this view (profile) has been configured. Time zones are identified by strings from the TZ database.
+      "id": "A String", # View (Profile) ID.
+      "accountId": "A String", # Account ID to which this view (profile) belongs.
+      "stripSiteSearchCategoryParameters": True or False, # Whether or not Analytics will strip search category parameters from the URLs in your reports.
+      "siteSearchCategoryParameters": "A String", # Site search category parameters for this view (profile).
+      "type": "A String", # View (Profile) type. Supported types: WEB or APP.
+      "updated": "A String", # Time this view (profile) was last modified.
+      "excludeQueryParameters": "A String", # The query parameters that are excluded from this view (profile).
+      "internalWebPropertyId": "A String", # Internal ID for the web property to which this view (profile) belongs.
+      "childLink": { # Child link for this view (profile). Points to the list of goals for this view (profile).
+        "href": "A String", # Link to the list of goals for this view (profile).
+        "type": "analytics#goals", # Value is "analytics#goals".
+      },
+      "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",
+        ],
+      },
+      "defaultPage": "A String", # Default page for this view (profile).
+      "kind": "analytics#profile", # Resource type for Analytics view (profile).
+      "stripSiteSearchQueryParameters": True or False, # Whether or not Analytics will strip search query parameters from the URLs in your reports.
+      "name": "A String", # Name of this view (profile).
+      "created": "A String", # Time this view (profile) was created.
+      "siteSearchQueryParameters": "A String", # The site search query parameters for this view (profile).
+      "websiteUrl": "A String", # Website URL for this view (profile).
+      "parentLink": { # Parent link for this view (profile). Points to the web property to which this view (profile) belongs.
+        "href": "A String", # Link to the web property to which this view (profile) belongs.
+        "type": "analytics#webproperty", # Value is "analytics#webproperty".
+      },
+      "selfLink": "A String", # Link for this view (profile).
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(accountId, webPropertyId, body)</code>
+  <pre>Create a new view (profile).
+
+Args:
+  accountId: string, Account ID to create the view (profile) for. (required)
+  webPropertyId: string, Web property ID to create the view (profile) for. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # JSON template for an Analytics view (profile).
+    "currency": "A String", # The currency type associated with this view (profile). The supported values are:
+        # ARS, AUD, BGN, BRL, CAD, CHF, CNY, CZK, DKK, EUR, GBP, HKD, HUF, IDR, INR, JPY, KRW, LTL, MXN, NOK, NZD, PHP, PLN, RUB, SEK, THB, TRY, TWD, USD, VND, ZAR
+    "eCommerceTracking": True or False, # Indicates whether ecommerce tracking is enabled for this view (profile).
+    "webPropertyId": "A String", # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
+    "timezone": "A String", # Time zone for which this view (profile) has been configured. Time zones are identified by strings from the TZ database.
+    "id": "A String", # View (Profile) ID.
+    "accountId": "A String", # Account ID to which this view (profile) belongs.
+    "stripSiteSearchCategoryParameters": True or False, # Whether or not Analytics will strip search category parameters from the URLs in your reports.
+    "siteSearchCategoryParameters": "A String", # Site search category parameters for this view (profile).
+    "type": "A String", # View (Profile) type. Supported types: WEB or APP.
+    "updated": "A String", # Time this view (profile) was last modified.
+    "excludeQueryParameters": "A String", # The query parameters that are excluded from this view (profile).
+    "internalWebPropertyId": "A String", # Internal ID for the web property to which this view (profile) belongs.
+    "childLink": { # Child link for this view (profile). Points to the list of goals for this view (profile).
+      "href": "A String", # Link to the list of goals for this view (profile).
+      "type": "analytics#goals", # Value is "analytics#goals".
+    },
+    "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",
+      ],
+    },
+    "defaultPage": "A String", # Default page for this view (profile).
+    "kind": "analytics#profile", # Resource type for Analytics view (profile).
+    "stripSiteSearchQueryParameters": True or False, # Whether or not Analytics will strip search query parameters from the URLs in your reports.
+    "name": "A String", # Name of this view (profile).
+    "created": "A String", # Time this view (profile) was created.
+    "siteSearchQueryParameters": "A String", # The site search query parameters for this view (profile).
+    "websiteUrl": "A String", # Website URL for this view (profile).
+    "parentLink": { # Parent link for this view (profile). Points to the web property to which this view (profile) belongs.
+      "href": "A String", # Link to the web property to which this view (profile) belongs.
+      "type": "analytics#webproperty", # Value is "analytics#webproperty".
+    },
+    "selfLink": "A String", # Link for this view (profile).
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # JSON template for an Analytics view (profile).
+      "currency": "A String", # The currency type associated with this view (profile). The supported values are:
+          # ARS, AUD, BGN, BRL, CAD, CHF, CNY, CZK, DKK, EUR, GBP, HKD, HUF, IDR, INR, JPY, KRW, LTL, MXN, NOK, NZD, PHP, PLN, RUB, SEK, THB, TRY, TWD, USD, VND, ZAR
+      "eCommerceTracking": True or False, # Indicates whether ecommerce tracking is enabled for this view (profile).
+      "webPropertyId": "A String", # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
+      "timezone": "A String", # Time zone for which this view (profile) has been configured. Time zones are identified by strings from the TZ database.
+      "id": "A String", # View (Profile) ID.
+      "accountId": "A String", # Account ID to which this view (profile) belongs.
+      "stripSiteSearchCategoryParameters": True or False, # Whether or not Analytics will strip search category parameters from the URLs in your reports.
+      "siteSearchCategoryParameters": "A String", # Site search category parameters for this view (profile).
+      "type": "A String", # View (Profile) type. Supported types: WEB or APP.
+      "updated": "A String", # Time this view (profile) was last modified.
+      "excludeQueryParameters": "A String", # The query parameters that are excluded from this view (profile).
+      "internalWebPropertyId": "A String", # Internal ID for the web property to which this view (profile) belongs.
+      "childLink": { # Child link for this view (profile). Points to the list of goals for this view (profile).
+        "href": "A String", # Link to the list of goals for this view (profile).
+        "type": "analytics#goals", # Value is "analytics#goals".
+      },
+      "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",
+        ],
+      },
+      "defaultPage": "A String", # Default page for this view (profile).
+      "kind": "analytics#profile", # Resource type for Analytics view (profile).
+      "stripSiteSearchQueryParameters": True or False, # Whether or not Analytics will strip search query parameters from the URLs in your reports.
+      "name": "A String", # Name of this view (profile).
+      "created": "A String", # Time this view (profile) was created.
+      "siteSearchQueryParameters": "A String", # The site search query parameters for this view (profile).
+      "websiteUrl": "A String", # Website URL for this view (profile).
+      "parentLink": { # Parent link for this view (profile). Points to the web property to which this view (profile) belongs.
+        "href": "A String", # Link to the web property to which this view (profile) belongs.
+        "type": "analytics#webproperty", # Value is "analytics#webproperty".
+      },
+      "selfLink": "A String", # Link for this view (profile).
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(accountId, webPropertyId, max_results=None, start_index=None)</code>
+  <pre>Lists views (profiles) to which the user has access.
+
+Args:
+  accountId: string, Account ID for the view (profiles) to retrieve. Can either be a specific account ID or '~all', which refers to all the accounts to which the user has access. (required)
+  webPropertyId: string, Web property ID for the views (profiles) to retrieve. Can either be a specific web property ID or '~all', which refers to all the web properties to which the user has access. (required)
+  max_results: integer, The maximum number of views (profiles) 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 view (profile) collection lists Analytics views (profiles) to which the user has access. Each resource in the collection corresponds to a single Analytics view (profile).
+    "username": "A String", # Email ID of the authenticated user
+    "kind": "analytics#profiles", # Collection type.
+    "items": [ # A list of views (profiles).
+      { # JSON template for an Analytics view (profile).
+          "currency": "A String", # The currency type associated with this view (profile). The supported values are:
+              # ARS, AUD, BGN, BRL, CAD, CHF, CNY, CZK, DKK, EUR, GBP, HKD, HUF, IDR, INR, JPY, KRW, LTL, MXN, NOK, NZD, PHP, PLN, RUB, SEK, THB, TRY, TWD, USD, VND, ZAR
+          "eCommerceTracking": True or False, # Indicates whether ecommerce tracking is enabled for this view (profile).
+          "webPropertyId": "A String", # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
+          "timezone": "A String", # Time zone for which this view (profile) has been configured. Time zones are identified by strings from the TZ database.
+          "id": "A String", # View (Profile) ID.
+          "accountId": "A String", # Account ID to which this view (profile) belongs.
+          "stripSiteSearchCategoryParameters": True or False, # Whether or not Analytics will strip search category parameters from the URLs in your reports.
+          "siteSearchCategoryParameters": "A String", # Site search category parameters for this view (profile).
+          "type": "A String", # View (Profile) type. Supported types: WEB or APP.
+          "updated": "A String", # Time this view (profile) was last modified.
+          "excludeQueryParameters": "A String", # The query parameters that are excluded from this view (profile).
+          "internalWebPropertyId": "A String", # Internal ID for the web property to which this view (profile) belongs.
+          "childLink": { # Child link for this view (profile). Points to the list of goals for this view (profile).
+            "href": "A String", # Link to the list of goals for this view (profile).
+            "type": "analytics#goals", # Value is "analytics#goals".
+          },
+          "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",
+            ],
+          },
+          "defaultPage": "A String", # Default page for this view (profile).
+          "kind": "analytics#profile", # Resource type for Analytics view (profile).
+          "stripSiteSearchQueryParameters": True or False, # Whether or not Analytics will strip search query parameters from the URLs in your reports.
+          "name": "A String", # Name of this view (profile).
+          "created": "A String", # Time this view (profile) was created.
+          "siteSearchQueryParameters": "A String", # The site search query parameters for this view (profile).
+          "websiteUrl": "A String", # Website URL for this view (profile).
+          "parentLink": { # Parent link for this view (profile). Points to the web property to which this view (profile) belongs.
+            "href": "A String", # Link to the web property to which this view (profile) belongs.
+            "type": "analytics#webproperty", # Value is "analytics#webproperty".
+          },
+          "selfLink": "A String", # Link for this view (profile).
+        },
+    ],
+    "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 view (profile) 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 view (profile) 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, profileId, body)</code>
+  <pre>Updates an existing view (profile). This method supports patch semantics.
+
+Args:
+  accountId: string, Account ID to which the view (profile) belongs (required)
+  webPropertyId: string, Web property ID to which the view (profile) belongs (required)
+  profileId: string, ID of the view (profile) to be updated. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # JSON template for an Analytics view (profile).
+    "currency": "A String", # The currency type associated with this view (profile). The supported values are:
+        # ARS, AUD, BGN, BRL, CAD, CHF, CNY, CZK, DKK, EUR, GBP, HKD, HUF, IDR, INR, JPY, KRW, LTL, MXN, NOK, NZD, PHP, PLN, RUB, SEK, THB, TRY, TWD, USD, VND, ZAR
+    "eCommerceTracking": True or False, # Indicates whether ecommerce tracking is enabled for this view (profile).
+    "webPropertyId": "A String", # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
+    "timezone": "A String", # Time zone for which this view (profile) has been configured. Time zones are identified by strings from the TZ database.
+    "id": "A String", # View (Profile) ID.
+    "accountId": "A String", # Account ID to which this view (profile) belongs.
+    "stripSiteSearchCategoryParameters": True or False, # Whether or not Analytics will strip search category parameters from the URLs in your reports.
+    "siteSearchCategoryParameters": "A String", # Site search category parameters for this view (profile).
+    "type": "A String", # View (Profile) type. Supported types: WEB or APP.
+    "updated": "A String", # Time this view (profile) was last modified.
+    "excludeQueryParameters": "A String", # The query parameters that are excluded from this view (profile).
+    "internalWebPropertyId": "A String", # Internal ID for the web property to which this view (profile) belongs.
+    "childLink": { # Child link for this view (profile). Points to the list of goals for this view (profile).
+      "href": "A String", # Link to the list of goals for this view (profile).
+      "type": "analytics#goals", # Value is "analytics#goals".
+    },
+    "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",
+      ],
+    },
+    "defaultPage": "A String", # Default page for this view (profile).
+    "kind": "analytics#profile", # Resource type for Analytics view (profile).
+    "stripSiteSearchQueryParameters": True or False, # Whether or not Analytics will strip search query parameters from the URLs in your reports.
+    "name": "A String", # Name of this view (profile).
+    "created": "A String", # Time this view (profile) was created.
+    "siteSearchQueryParameters": "A String", # The site search query parameters for this view (profile).
+    "websiteUrl": "A String", # Website URL for this view (profile).
+    "parentLink": { # Parent link for this view (profile). Points to the web property to which this view (profile) belongs.
+      "href": "A String", # Link to the web property to which this view (profile) belongs.
+      "type": "analytics#webproperty", # Value is "analytics#webproperty".
+    },
+    "selfLink": "A String", # Link for this view (profile).
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # JSON template for an Analytics view (profile).
+      "currency": "A String", # The currency type associated with this view (profile). The supported values are:
+          # ARS, AUD, BGN, BRL, CAD, CHF, CNY, CZK, DKK, EUR, GBP, HKD, HUF, IDR, INR, JPY, KRW, LTL, MXN, NOK, NZD, PHP, PLN, RUB, SEK, THB, TRY, TWD, USD, VND, ZAR
+      "eCommerceTracking": True or False, # Indicates whether ecommerce tracking is enabled for this view (profile).
+      "webPropertyId": "A String", # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
+      "timezone": "A String", # Time zone for which this view (profile) has been configured. Time zones are identified by strings from the TZ database.
+      "id": "A String", # View (Profile) ID.
+      "accountId": "A String", # Account ID to which this view (profile) belongs.
+      "stripSiteSearchCategoryParameters": True or False, # Whether or not Analytics will strip search category parameters from the URLs in your reports.
+      "siteSearchCategoryParameters": "A String", # Site search category parameters for this view (profile).
+      "type": "A String", # View (Profile) type. Supported types: WEB or APP.
+      "updated": "A String", # Time this view (profile) was last modified.
+      "excludeQueryParameters": "A String", # The query parameters that are excluded from this view (profile).
+      "internalWebPropertyId": "A String", # Internal ID for the web property to which this view (profile) belongs.
+      "childLink": { # Child link for this view (profile). Points to the list of goals for this view (profile).
+        "href": "A String", # Link to the list of goals for this view (profile).
+        "type": "analytics#goals", # Value is "analytics#goals".
+      },
+      "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",
+        ],
+      },
+      "defaultPage": "A String", # Default page for this view (profile).
+      "kind": "analytics#profile", # Resource type for Analytics view (profile).
+      "stripSiteSearchQueryParameters": True or False, # Whether or not Analytics will strip search query parameters from the URLs in your reports.
+      "name": "A String", # Name of this view (profile).
+      "created": "A String", # Time this view (profile) was created.
+      "siteSearchQueryParameters": "A String", # The site search query parameters for this view (profile).
+      "websiteUrl": "A String", # Website URL for this view (profile).
+      "parentLink": { # Parent link for this view (profile). Points to the web property to which this view (profile) belongs.
+        "href": "A String", # Link to the web property to which this view (profile) belongs.
+        "type": "analytics#webproperty", # Value is "analytics#webproperty".
+      },
+      "selfLink": "A String", # Link for this view (profile).
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(accountId, webPropertyId, profileId, body)</code>
+  <pre>Updates an existing view (profile).
+
+Args:
+  accountId: string, Account ID to which the view (profile) belongs (required)
+  webPropertyId: string, Web property ID to which the view (profile) belongs (required)
+  profileId: string, ID of the view (profile) to be updated. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # JSON template for an Analytics view (profile).
+    "currency": "A String", # The currency type associated with this view (profile). The supported values are:
+        # ARS, AUD, BGN, BRL, CAD, CHF, CNY, CZK, DKK, EUR, GBP, HKD, HUF, IDR, INR, JPY, KRW, LTL, MXN, NOK, NZD, PHP, PLN, RUB, SEK, THB, TRY, TWD, USD, VND, ZAR
+    "eCommerceTracking": True or False, # Indicates whether ecommerce tracking is enabled for this view (profile).
+    "webPropertyId": "A String", # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
+    "timezone": "A String", # Time zone for which this view (profile) has been configured. Time zones are identified by strings from the TZ database.
+    "id": "A String", # View (Profile) ID.
+    "accountId": "A String", # Account ID to which this view (profile) belongs.
+    "stripSiteSearchCategoryParameters": True or False, # Whether or not Analytics will strip search category parameters from the URLs in your reports.
+    "siteSearchCategoryParameters": "A String", # Site search category parameters for this view (profile).
+    "type": "A String", # View (Profile) type. Supported types: WEB or APP.
+    "updated": "A String", # Time this view (profile) was last modified.
+    "excludeQueryParameters": "A String", # The query parameters that are excluded from this view (profile).
+    "internalWebPropertyId": "A String", # Internal ID for the web property to which this view (profile) belongs.
+    "childLink": { # Child link for this view (profile). Points to the list of goals for this view (profile).
+      "href": "A String", # Link to the list of goals for this view (profile).
+      "type": "analytics#goals", # Value is "analytics#goals".
+    },
+    "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",
+      ],
+    },
+    "defaultPage": "A String", # Default page for this view (profile).
+    "kind": "analytics#profile", # Resource type for Analytics view (profile).
+    "stripSiteSearchQueryParameters": True or False, # Whether or not Analytics will strip search query parameters from the URLs in your reports.
+    "name": "A String", # Name of this view (profile).
+    "created": "A String", # Time this view (profile) was created.
+    "siteSearchQueryParameters": "A String", # The site search query parameters for this view (profile).
+    "websiteUrl": "A String", # Website URL for this view (profile).
+    "parentLink": { # Parent link for this view (profile). Points to the web property to which this view (profile) belongs.
+      "href": "A String", # Link to the web property to which this view (profile) belongs.
+      "type": "analytics#webproperty", # Value is "analytics#webproperty".
+    },
+    "selfLink": "A String", # Link for this view (profile).
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # JSON template for an Analytics view (profile).
+      "currency": "A String", # The currency type associated with this view (profile). The supported values are:
+          # ARS, AUD, BGN, BRL, CAD, CHF, CNY, CZK, DKK, EUR, GBP, HKD, HUF, IDR, INR, JPY, KRW, LTL, MXN, NOK, NZD, PHP, PLN, RUB, SEK, THB, TRY, TWD, USD, VND, ZAR
+      "eCommerceTracking": True or False, # Indicates whether ecommerce tracking is enabled for this view (profile).
+      "webPropertyId": "A String", # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
+      "timezone": "A String", # Time zone for which this view (profile) has been configured. Time zones are identified by strings from the TZ database.
+      "id": "A String", # View (Profile) ID.
+      "accountId": "A String", # Account ID to which this view (profile) belongs.
+      "stripSiteSearchCategoryParameters": True or False, # Whether or not Analytics will strip search category parameters from the URLs in your reports.
+      "siteSearchCategoryParameters": "A String", # Site search category parameters for this view (profile).
+      "type": "A String", # View (Profile) type. Supported types: WEB or APP.
+      "updated": "A String", # Time this view (profile) was last modified.
+      "excludeQueryParameters": "A String", # The query parameters that are excluded from this view (profile).
+      "internalWebPropertyId": "A String", # Internal ID for the web property to which this view (profile) belongs.
+      "childLink": { # Child link for this view (profile). Points to the list of goals for this view (profile).
+        "href": "A String", # Link to the list of goals for this view (profile).
+        "type": "analytics#goals", # Value is "analytics#goals".
+      },
+      "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",
+        ],
+      },
+      "defaultPage": "A String", # Default page for this view (profile).
+      "kind": "analytics#profile", # Resource type for Analytics view (profile).
+      "stripSiteSearchQueryParameters": True or False, # Whether or not Analytics will strip search query parameters from the URLs in your reports.
+      "name": "A String", # Name of this view (profile).
+      "created": "A String", # Time this view (profile) was created.
+      "siteSearchQueryParameters": "A String", # The site search query parameters for this view (profile).
+      "websiteUrl": "A String", # Website URL for this view (profile).
+      "parentLink": { # Parent link for this view (profile). Points to the web property to which this view (profile) belongs.
+        "href": "A String", # Link to the web property to which this view (profile) belongs.
+        "type": "analytics#webproperty", # Value is "analytics#webproperty".
+      },
+      "selfLink": "A String", # Link for this view (profile).
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/analytics_v3.management.segments.html b/docs/dyn/analytics_v3.management.segments.html
new file mode 100644
index 0000000..397a4c2
--- /dev/null
+++ b/docs/dyn/analytics_v3.management.segments.html
@@ -0,0 +1,116 @@
+<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.segments.html">segments</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(max_results=None, start_index=None)</a></code></p>
+<p class="firstline">Lists segments to which the user has access.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(max_results=None, start_index=None)</code>
+  <pre>Lists segments to which the user has access.
+
+Args:
+  max_results: integer, The maximum number of segments to include in this response.
+  start_index: integer, An index of the first segment to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.
+
+Returns:
+  An object of the form:
+
+    { # An segment collection lists Analytics segments that the user has access to. Each resource in the collection corresponds to a single Analytics segment.
+    "username": "A String", # Email ID of the authenticated user
+    "kind": "analytics#segments", # Collection type for segments.
+    "items": [ # A list of segments.
+      { # JSON template for an Analytics segment.
+        "definition": "A String", # Segment definition.
+        "kind": "analytics#segment", # Resource type for Analytics segment.
+        "segmentId": "A String", # Segment ID. Can be used with the 'segment' parameter in Core Reporting API.
+        "created": "A String", # Time the segment was created.
+        "updated": "A String", # Time the segment was last modified.
+        "type": "A String", # Type for a segment. Possible values are "BUILT_IN" or "CUSTOM".
+        "id": "A String", # Segment ID.
+        "selfLink": "A String", # Link for this segment.
+        "name": "A String", # Segment name.
+      },
+    ],
+    "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 segment 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 segment collection.
+    "totalResults": 42, # The total number of results for the query, regardless of the number of results in the response.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/analytics_v3.management.uploads.html b/docs/dyn/analytics_v3.management.uploads.html
new file mode 100644
index 0000000..1b63ecc
--- /dev/null
+++ b/docs/dyn/analytics_v3.management.uploads.html
@@ -0,0 +1,196 @@
+<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.uploads.html">uploads</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#deleteUploadData">deleteUploadData(accountId, webPropertyId, customDataSourceId, body)</a></code></p>
+<p class="firstline">Delete data associated with a previous upload.</p>
+<p class="toc_element">
+  <code><a href="#get">get(accountId, webPropertyId, customDataSourceId, uploadId)</a></code></p>
+<p class="firstline">List uploads to which the user has access.</p>
+<p class="toc_element">
+  <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="#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>
+<div class="method">
+    <code class="details" id="deleteUploadData">deleteUploadData(accountId, webPropertyId, customDataSourceId, body)</code>
+  <pre>Delete data associated with a previous upload.
+
+Args:
+  accountId: string, Account Id for the uploads to be deleted. (required)
+  webPropertyId: string, Web property Id for the uploads to be deleted. (required)
+  customDataSourceId: string, Custom data source Id for the uploads to be deleted. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request template for the delete upload data request.
+    "customDataImportUids": [ # A list of upload UIDs.
+      "A String",
+    ],
+  }
+
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(accountId, webPropertyId, customDataSourceId, uploadId)</code>
+  <pre>List uploads to which the user has access.
+
+Args:
+  accountId: string, Account Id for the upload to retrieve. (required)
+  webPropertyId: string, Web property Id for the upload to retrieve. (required)
+  customDataSourceId: string, Custom data source Id for upload to retrieve. (required)
+  uploadId: string, Upload Id to retrieve. (required)
+
+Returns:
+  An object of the form:
+
+    { # Metadata returned for an upload operation.
+    "status": "A String", # Upload status. Possible values: PENDING, COMPLETED, FAILED, DELETING, DELETED.
+    "kind": "analytics#upload", # Resource type for Analytics upload.
+    "errors": [ # Data import errors collection.
+      "A String",
+    ],
+    "customDataSourceId": "A String", # Custom data source Id to which this data import belongs.
+    "id": "A String", # A unique ID for this upload.
+    "accountId": "A String", # Account Id to which this upload belongs.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(accountId, webPropertyId, customDataSourceId, max_results=None, start_index=None)</code>
+  <pre>List uploads to which the user has access.
+
+Args:
+  accountId: string, Account Id for the uploads to retrieve. (required)
+  webPropertyId: string, Web property Id for the uploads to retrieve. (required)
+  customDataSourceId: string, Custom data source Id for uploads to retrieve. (required)
+  max_results: integer, The maximum number of uploads to include in this response.
+  start_index: integer, A 1-based index of the first upload to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.
+
+Returns:
+  An object of the form:
+
+    { # Upload collection lists Analytics uploads to which the user has access. Each custom data source can have a set of uploads. Each resource in the upload collection corresponds to a single Analytics data upload.
+    "kind": "analytics#uploads", # Collection type.
+    "items": [ # A list of uploads.
+      { # Metadata returned for an upload operation.
+        "status": "A String", # Upload status. Possible values: PENDING, COMPLETED, FAILED, DELETING, DELETED.
+        "kind": "analytics#upload", # Resource type for Analytics upload.
+        "errors": [ # Data import errors collection.
+          "A String",
+        ],
+        "customDataSourceId": "A String", # Custom data source Id to which this data import belongs.
+        "id": "A String", # A unique ID for this upload.
+        "accountId": "A String", # Account Id to which this upload belongs.
+      },
+    ],
+    "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 upload 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 upload collection.
+    "totalResults": 42, # The total number of results for the query, regardless of the number of resources in the result.
+  }</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.
+
+Args:
+  accountId: string, Account Id associated with the upload. (required)
+  webPropertyId: string, Web property UA-string associated with the upload. (required)
+  customDataSourceId: string, Custom data source Id to which the data being uploaded belongs. (required)
+  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
+
+Returns:
+  An object of the form:
+
+    { # Metadata returned for an upload operation.
+    "status": "A String", # Upload status. Possible values: PENDING, COMPLETED, FAILED, DELETING, DELETED.
+    "kind": "analytics#upload", # Resource type for Analytics upload.
+    "errors": [ # Data import errors collection.
+      "A String",
+    ],
+    "customDataSourceId": "A String", # Custom data source Id to which this data import belongs.
+    "id": "A String", # A unique ID for this upload.
+    "accountId": "A String", # Account Id to which this upload belongs.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/analytics_v3.management.webproperties.html b/docs/dyn/analytics_v3.management.webproperties.html
new file mode 100644
index 0000000..a1a5f85
--- /dev/null
+++ b/docs/dyn/analytics_v3.management.webproperties.html
@@ -0,0 +1,405 @@
+<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.webproperties.html">webproperties</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(accountId, webPropertyId)</a></code></p>
+<p class="firstline">Gets a web property to which the user has access.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(accountId, body)</a></code></p>
+<p class="firstline">Create a new property if the account has fewer than 20 properties. Web properties are visible in the Google Analytics interface only if they have at least one profile.</p>
+<p class="toc_element">
+  <code><a href="#list">list(accountId, max_results=None, start_index=None)</a></code></p>
+<p class="firstline">Lists web properties to which the user has access.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(accountId, webPropertyId, body)</a></code></p>
+<p class="firstline">Updates an existing web property. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(accountId, webPropertyId, body)</a></code></p>
+<p class="firstline">Updates an existing web property.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(accountId, webPropertyId)</code>
+  <pre>Gets a web property to which the user has access.
+
+Args:
+  accountId: string, Account ID to retrieve the web property for. (required)
+  webPropertyId: string, ID to retrieve the web property for. (required)
+
+Returns:
+  An object of the form:
+
+    { # JSON template for an Analytics web property.
+      "websiteUrl": "A String", # Website url for this web property.
+      "kind": "analytics#webproperty", # Resource type for Analytics WebProperty.
+      "name": "A String", # Name of this web property.
+      "created": "A String", # Time this web property was created.
+      "defaultProfileId": "A String", # Default view (profile) ID.
+      "level": "A String", # Level for this web property. Possible values are STANDARD or PREMIUM.
+      "updated": "A String", # Time this web property was last modified.
+      "profileCount": 42, # View (Profile) count for this web property.
+      "internalWebPropertyId": "A String", # Internal ID for this web property.
+      "childLink": { # Child link for this web property. Points to the list of views (profiles) for this web property.
+        "href": "A String", # Link to the list of views (profiles) for this web property.
+        "type": "analytics#profiles", # Type of the parent link. Its value is "analytics#profiles".
+      },
+      "industryVertical": "A String", # The industry vertical/category selected for this web property.
+      "parentLink": { # Parent link for this web property. Points to the account to which this web property belongs.
+        "href": "A String", # Link to the account for this web property.
+        "type": "analytics#account", # Type of the parent link. Its value is "analytics#account".
+      },
+      "permissions": { # Permissions the user has for this web property.
+        "effective": [ # All the permissions that the user has for this web property. These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent account.
+          "A String",
+        ],
+      },
+      "id": "A String", # Web property ID of the form UA-XXXXX-YY.
+      "selfLink": "A String", # Link for this web property.
+      "accountId": "A String", # Account ID to which this web property belongs.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(accountId, body)</code>
+  <pre>Create a new property if the account has fewer than 20 properties. Web properties are visible in the Google Analytics interface only if they have at least one profile.
+
+Args:
+  accountId: string, Account ID to create the web property for. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # JSON template for an Analytics web property.
+    "websiteUrl": "A String", # Website url for this web property.
+    "kind": "analytics#webproperty", # Resource type for Analytics WebProperty.
+    "name": "A String", # Name of this web property.
+    "created": "A String", # Time this web property was created.
+    "defaultProfileId": "A String", # Default view (profile) ID.
+    "level": "A String", # Level for this web property. Possible values are STANDARD or PREMIUM.
+    "updated": "A String", # Time this web property was last modified.
+    "profileCount": 42, # View (Profile) count for this web property.
+    "internalWebPropertyId": "A String", # Internal ID for this web property.
+    "childLink": { # Child link for this web property. Points to the list of views (profiles) for this web property.
+      "href": "A String", # Link to the list of views (profiles) for this web property.
+      "type": "analytics#profiles", # Type of the parent link. Its value is "analytics#profiles".
+    },
+    "industryVertical": "A String", # The industry vertical/category selected for this web property.
+    "parentLink": { # Parent link for this web property. Points to the account to which this web property belongs.
+      "href": "A String", # Link to the account for this web property.
+      "type": "analytics#account", # Type of the parent link. Its value is "analytics#account".
+    },
+    "permissions": { # Permissions the user has for this web property.
+      "effective": [ # All the permissions that the user has for this web property. These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent account.
+        "A String",
+      ],
+    },
+    "id": "A String", # Web property ID of the form UA-XXXXX-YY.
+    "selfLink": "A String", # Link for this web property.
+    "accountId": "A String", # Account ID to which this web property belongs.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # JSON template for an Analytics web property.
+      "websiteUrl": "A String", # Website url for this web property.
+      "kind": "analytics#webproperty", # Resource type for Analytics WebProperty.
+      "name": "A String", # Name of this web property.
+      "created": "A String", # Time this web property was created.
+      "defaultProfileId": "A String", # Default view (profile) ID.
+      "level": "A String", # Level for this web property. Possible values are STANDARD or PREMIUM.
+      "updated": "A String", # Time this web property was last modified.
+      "profileCount": 42, # View (Profile) count for this web property.
+      "internalWebPropertyId": "A String", # Internal ID for this web property.
+      "childLink": { # Child link for this web property. Points to the list of views (profiles) for this web property.
+        "href": "A String", # Link to the list of views (profiles) for this web property.
+        "type": "analytics#profiles", # Type of the parent link. Its value is "analytics#profiles".
+      },
+      "industryVertical": "A String", # The industry vertical/category selected for this web property.
+      "parentLink": { # Parent link for this web property. Points to the account to which this web property belongs.
+        "href": "A String", # Link to the account for this web property.
+        "type": "analytics#account", # Type of the parent link. Its value is "analytics#account".
+      },
+      "permissions": { # Permissions the user has for this web property.
+        "effective": [ # All the permissions that the user has for this web property. These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent account.
+          "A String",
+        ],
+      },
+      "id": "A String", # Web property ID of the form UA-XXXXX-YY.
+      "selfLink": "A String", # Link for this web property.
+      "accountId": "A String", # Account ID to which this web property belongs.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(accountId, max_results=None, start_index=None)</code>
+  <pre>Lists web properties to which the user has access.
+
+Args:
+  accountId: string, Account ID to retrieve web properties for. Can either be a specific account ID or '~all', which refers to all the accounts that user has access to. (required)
+  max_results: integer, The maximum number of web properties 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 web property collection lists Analytics web properties to which the user has access. Each resource in the collection corresponds to a single Analytics web property.
+    "username": "A String", # Email ID of the authenticated user
+    "kind": "analytics#webproperties", # Collection type.
+    "items": [ # A list of web properties.
+      { # JSON template for an Analytics web property.
+          "websiteUrl": "A String", # Website url for this web property.
+          "kind": "analytics#webproperty", # Resource type for Analytics WebProperty.
+          "name": "A String", # Name of this web property.
+          "created": "A String", # Time this web property was created.
+          "defaultProfileId": "A String", # Default view (profile) ID.
+          "level": "A String", # Level for this web property. Possible values are STANDARD or PREMIUM.
+          "updated": "A String", # Time this web property was last modified.
+          "profileCount": 42, # View (Profile) count for this web property.
+          "internalWebPropertyId": "A String", # Internal ID for this web property.
+          "childLink": { # Child link for this web property. Points to the list of views (profiles) for this web property.
+            "href": "A String", # Link to the list of views (profiles) for this web property.
+            "type": "analytics#profiles", # Type of the parent link. Its value is "analytics#profiles".
+          },
+          "industryVertical": "A String", # The industry vertical/category selected for this web property.
+          "parentLink": { # Parent link for this web property. Points to the account to which this web property belongs.
+            "href": "A String", # Link to the account for this web property.
+            "type": "analytics#account", # Type of the parent link. Its value is "analytics#account".
+          },
+          "permissions": { # Permissions the user has for this web property.
+            "effective": [ # All the permissions that the user has for this web property. These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent account.
+              "A String",
+            ],
+          },
+          "id": "A String", # Web property ID of the form UA-XXXXX-YY.
+          "selfLink": "A String", # Link for this web property.
+          "accountId": "A String", # Account ID to which this web property belongs.
+        },
+    ],
+    "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 web property 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 web property 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, body)</code>
+  <pre>Updates an existing web property. This method supports patch semantics.
+
+Args:
+  accountId: string, Account ID to which the web property belongs (required)
+  webPropertyId: string, Web property ID (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # JSON template for an Analytics web property.
+    "websiteUrl": "A String", # Website url for this web property.
+    "kind": "analytics#webproperty", # Resource type for Analytics WebProperty.
+    "name": "A String", # Name of this web property.
+    "created": "A String", # Time this web property was created.
+    "defaultProfileId": "A String", # Default view (profile) ID.
+    "level": "A String", # Level for this web property. Possible values are STANDARD or PREMIUM.
+    "updated": "A String", # Time this web property was last modified.
+    "profileCount": 42, # View (Profile) count for this web property.
+    "internalWebPropertyId": "A String", # Internal ID for this web property.
+    "childLink": { # Child link for this web property. Points to the list of views (profiles) for this web property.
+      "href": "A String", # Link to the list of views (profiles) for this web property.
+      "type": "analytics#profiles", # Type of the parent link. Its value is "analytics#profiles".
+    },
+    "industryVertical": "A String", # The industry vertical/category selected for this web property.
+    "parentLink": { # Parent link for this web property. Points to the account to which this web property belongs.
+      "href": "A String", # Link to the account for this web property.
+      "type": "analytics#account", # Type of the parent link. Its value is "analytics#account".
+    },
+    "permissions": { # Permissions the user has for this web property.
+      "effective": [ # All the permissions that the user has for this web property. These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent account.
+        "A String",
+      ],
+    },
+    "id": "A String", # Web property ID of the form UA-XXXXX-YY.
+    "selfLink": "A String", # Link for this web property.
+    "accountId": "A String", # Account ID to which this web property belongs.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # JSON template for an Analytics web property.
+      "websiteUrl": "A String", # Website url for this web property.
+      "kind": "analytics#webproperty", # Resource type for Analytics WebProperty.
+      "name": "A String", # Name of this web property.
+      "created": "A String", # Time this web property was created.
+      "defaultProfileId": "A String", # Default view (profile) ID.
+      "level": "A String", # Level for this web property. Possible values are STANDARD or PREMIUM.
+      "updated": "A String", # Time this web property was last modified.
+      "profileCount": 42, # View (Profile) count for this web property.
+      "internalWebPropertyId": "A String", # Internal ID for this web property.
+      "childLink": { # Child link for this web property. Points to the list of views (profiles) for this web property.
+        "href": "A String", # Link to the list of views (profiles) for this web property.
+        "type": "analytics#profiles", # Type of the parent link. Its value is "analytics#profiles".
+      },
+      "industryVertical": "A String", # The industry vertical/category selected for this web property.
+      "parentLink": { # Parent link for this web property. Points to the account to which this web property belongs.
+        "href": "A String", # Link to the account for this web property.
+        "type": "analytics#account", # Type of the parent link. Its value is "analytics#account".
+      },
+      "permissions": { # Permissions the user has for this web property.
+        "effective": [ # All the permissions that the user has for this web property. These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent account.
+          "A String",
+        ],
+      },
+      "id": "A String", # Web property ID of the form UA-XXXXX-YY.
+      "selfLink": "A String", # Link for this web property.
+      "accountId": "A String", # Account ID to which this web property belongs.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(accountId, webPropertyId, body)</code>
+  <pre>Updates an existing web property.
+
+Args:
+  accountId: string, Account ID to which the web property belongs (required)
+  webPropertyId: string, Web property ID (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # JSON template for an Analytics web property.
+    "websiteUrl": "A String", # Website url for this web property.
+    "kind": "analytics#webproperty", # Resource type for Analytics WebProperty.
+    "name": "A String", # Name of this web property.
+    "created": "A String", # Time this web property was created.
+    "defaultProfileId": "A String", # Default view (profile) ID.
+    "level": "A String", # Level for this web property. Possible values are STANDARD or PREMIUM.
+    "updated": "A String", # Time this web property was last modified.
+    "profileCount": 42, # View (Profile) count for this web property.
+    "internalWebPropertyId": "A String", # Internal ID for this web property.
+    "childLink": { # Child link for this web property. Points to the list of views (profiles) for this web property.
+      "href": "A String", # Link to the list of views (profiles) for this web property.
+      "type": "analytics#profiles", # Type of the parent link. Its value is "analytics#profiles".
+    },
+    "industryVertical": "A String", # The industry vertical/category selected for this web property.
+    "parentLink": { # Parent link for this web property. Points to the account to which this web property belongs.
+      "href": "A String", # Link to the account for this web property.
+      "type": "analytics#account", # Type of the parent link. Its value is "analytics#account".
+    },
+    "permissions": { # Permissions the user has for this web property.
+      "effective": [ # All the permissions that the user has for this web property. These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent account.
+        "A String",
+      ],
+    },
+    "id": "A String", # Web property ID of the form UA-XXXXX-YY.
+    "selfLink": "A String", # Link for this web property.
+    "accountId": "A String", # Account ID to which this web property belongs.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # JSON template for an Analytics web property.
+      "websiteUrl": "A String", # Website url for this web property.
+      "kind": "analytics#webproperty", # Resource type for Analytics WebProperty.
+      "name": "A String", # Name of this web property.
+      "created": "A String", # Time this web property was created.
+      "defaultProfileId": "A String", # Default view (profile) ID.
+      "level": "A String", # Level for this web property. Possible values are STANDARD or PREMIUM.
+      "updated": "A String", # Time this web property was last modified.
+      "profileCount": 42, # View (Profile) count for this web property.
+      "internalWebPropertyId": "A String", # Internal ID for this web property.
+      "childLink": { # Child link for this web property. Points to the list of views (profiles) for this web property.
+        "href": "A String", # Link to the list of views (profiles) for this web property.
+        "type": "analytics#profiles", # Type of the parent link. Its value is "analytics#profiles".
+      },
+      "industryVertical": "A String", # The industry vertical/category selected for this web property.
+      "parentLink": { # Parent link for this web property. Points to the account to which this web property belongs.
+        "href": "A String", # Link to the account for this web property.
+        "type": "analytics#account", # Type of the parent link. Its value is "analytics#account".
+      },
+      "permissions": { # Permissions the user has for this web property.
+        "effective": [ # All the permissions that the user has for this web property. These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent account.
+          "A String",
+        ],
+      },
+      "id": "A String", # Web property ID of the form UA-XXXXX-YY.
+      "selfLink": "A String", # Link for this web property.
+      "accountId": "A String", # Account ID to which this web property belongs.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/analytics_v3.management.webpropertyUserLinks.html b/docs/dyn/analytics_v3.management.webpropertyUserLinks.html
new file mode 100644
index 0000000..986762c
--- /dev/null
+++ b/docs/dyn/analytics_v3.management.webpropertyUserLinks.html
@@ -0,0 +1,376 @@
+<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.webpropertyUserLinks.html">webpropertyUserLinks</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(accountId, webPropertyId, linkId)</a></code></p>
+<p class="firstline">Removes a user from the given web property.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(accountId, webPropertyId, body)</a></code></p>
+<p class="firstline">Adds a new user to the given web property.</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 webProperty-user links for a given web property.</p>
+<p class="toc_element">
+  <code><a href="#update">update(accountId, webPropertyId, linkId, body)</a></code></p>
+<p class="firstline">Updates permissions for an existing user on the given web property.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(accountId, webPropertyId, linkId)</code>
+  <pre>Removes a user from the given web property.
+
+Args:
+  accountId: string, Account ID to delete the user link for. (required)
+  webPropertyId: string, Web Property ID to delete the user link for. (required)
+  linkId: string, Link ID to delete the user link for. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(accountId, webPropertyId, body)</code>
+  <pre>Adds a new user to the given web property.
+
+Args:
+  accountId: string, Account ID to create the user link for. (required)
+  webPropertyId: string, Web Property ID to create the user link for. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # JSON template for an Analytics Entity-User Link. Returns permissions that a user has for an entity.
+    "kind": "analytics#entityUserLink", # Resource type for entity user link.
+    "entity": { # Entity for this link. It can be an account, a web property, or a view (profile).
+      "accountRef": { # JSON template for a linked account. # Account for this link.
+        "kind": "analytics#accountRef", # Analytics account reference.
+        "href": "A String", # Link for this account.
+        "id": "A String", # Account ID.
+        "name": "A String", # Account name.
+      },
+      "profileRef": { # JSON template for a linked view (profile). # View (Profile) for this link.
+        "kind": "analytics#profileRef", # Analytics view (profile) reference.
+        "name": "A String", # Name of this view (profile).
+        "internalWebPropertyId": "A String", # Internal ID for the web property to which this view (profile) belongs.
+        "href": "A String", # Link for this view (profile).
+        "webPropertyId": "A String", # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
+        "id": "A String", # View (Profile) ID.
+        "accountId": "A String", # Account ID to which this view (profile) belongs.
+      },
+      "webPropertyRef": { # JSON template for a web property reference. # Web property for this link.
+        "kind": "analytics#webPropertyRef", # Analytics web property reference.
+        "name": "A String", # Name of this web property.
+        "internalWebPropertyId": "A String", # Internal ID for this web property.
+        "href": "A String", # Link for this web property.
+        "id": "A String", # Web property ID of the form UA-XXXXX-YY.
+        "accountId": "A String", # Account ID to which this web property belongs.
+      },
+    },
+    "userRef": { # JSON template for a user reference. # User reference.
+      "kind": "analytics#userRef",
+      "email": "A String", # Email ID of this user.
+      "id": "A String", # User ID.
+    },
+    "id": "A String", # Entity user link ID
+    "selfLink": "A String", # Self link for this resource.
+    "permissions": { # Permissions the user has for this entity.
+      "local": [ # Permissions that a user has been assigned at this very level. Does not include any implied or inherited permissions. Local permissions are modifiable.
+        "A String",
+      ],
+      "effective": [ # Effective permissions represent all the permissions that a user has for this entity. These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent entity. Effective permissions are read-only.
+        "A String",
+      ],
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # JSON template for an Analytics Entity-User Link. Returns permissions that a user has for an entity.
+      "kind": "analytics#entityUserLink", # Resource type for entity user link.
+      "entity": { # Entity for this link. It can be an account, a web property, or a view (profile).
+        "accountRef": { # JSON template for a linked account. # Account for this link.
+          "kind": "analytics#accountRef", # Analytics account reference.
+          "href": "A String", # Link for this account.
+          "id": "A String", # Account ID.
+          "name": "A String", # Account name.
+        },
+        "profileRef": { # JSON template for a linked view (profile). # View (Profile) for this link.
+          "kind": "analytics#profileRef", # Analytics view (profile) reference.
+          "name": "A String", # Name of this view (profile).
+          "internalWebPropertyId": "A String", # Internal ID for the web property to which this view (profile) belongs.
+          "href": "A String", # Link for this view (profile).
+          "webPropertyId": "A String", # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
+          "id": "A String", # View (Profile) ID.
+          "accountId": "A String", # Account ID to which this view (profile) belongs.
+        },
+        "webPropertyRef": { # JSON template for a web property reference. # Web property for this link.
+          "kind": "analytics#webPropertyRef", # Analytics web property reference.
+          "name": "A String", # Name of this web property.
+          "internalWebPropertyId": "A String", # Internal ID for this web property.
+          "href": "A String", # Link for this web property.
+          "id": "A String", # Web property ID of the form UA-XXXXX-YY.
+          "accountId": "A String", # Account ID to which this web property belongs.
+        },
+      },
+      "userRef": { # JSON template for a user reference. # User reference.
+        "kind": "analytics#userRef",
+        "email": "A String", # Email ID of this user.
+        "id": "A String", # User ID.
+      },
+      "id": "A String", # Entity user link ID
+      "selfLink": "A String", # Self link for this resource.
+      "permissions": { # Permissions the user has for this entity.
+        "local": [ # Permissions that a user has been assigned at this very level. Does not include any implied or inherited permissions. Local permissions are modifiable.
+          "A String",
+        ],
+        "effective": [ # Effective permissions represent all the permissions that a user has for this entity. These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent entity. Effective permissions are read-only.
+          "A String",
+        ],
+      },
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(accountId, webPropertyId, max_results=None, start_index=None)</code>
+  <pre>Lists webProperty-user links for a given web property.
+
+Args:
+  accountId: string, Account ID which the given web property belongs to. (required)
+  webPropertyId: string, Web Property ID for the webProperty-user links to retrieve. (required)
+  max_results: integer, The maximum number of webProperty-user Links to include in this response.
+  start_index: integer, An index of the first webProperty-user link to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.
+
+Returns:
+  An object of the form:
+
+    { # An entity user link collection provides a list of Analytics ACL links Each resource in this collection corresponds to a single link.
+    "kind": "analytics#entityUserLinks", # Collection type.
+    "items": [ # A list of entity user links.
+      { # JSON template for an Analytics Entity-User Link. Returns permissions that a user has for an entity.
+          "kind": "analytics#entityUserLink", # Resource type for entity user link.
+          "entity": { # Entity for this link. It can be an account, a web property, or a view (profile).
+            "accountRef": { # JSON template for a linked account. # Account for this link.
+              "kind": "analytics#accountRef", # Analytics account reference.
+              "href": "A String", # Link for this account.
+              "id": "A String", # Account ID.
+              "name": "A String", # Account name.
+            },
+            "profileRef": { # JSON template for a linked view (profile). # View (Profile) for this link.
+              "kind": "analytics#profileRef", # Analytics view (profile) reference.
+              "name": "A String", # Name of this view (profile).
+              "internalWebPropertyId": "A String", # Internal ID for the web property to which this view (profile) belongs.
+              "href": "A String", # Link for this view (profile).
+              "webPropertyId": "A String", # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
+              "id": "A String", # View (Profile) ID.
+              "accountId": "A String", # Account ID to which this view (profile) belongs.
+            },
+            "webPropertyRef": { # JSON template for a web property reference. # Web property for this link.
+              "kind": "analytics#webPropertyRef", # Analytics web property reference.
+              "name": "A String", # Name of this web property.
+              "internalWebPropertyId": "A String", # Internal ID for this web property.
+              "href": "A String", # Link for this web property.
+              "id": "A String", # Web property ID of the form UA-XXXXX-YY.
+              "accountId": "A String", # Account ID to which this web property belongs.
+            },
+          },
+          "userRef": { # JSON template for a user reference. # User reference.
+            "kind": "analytics#userRef",
+            "email": "A String", # Email ID of this user.
+            "id": "A String", # User ID.
+          },
+          "id": "A String", # Entity user link ID
+          "selfLink": "A String", # Self link for this resource.
+          "permissions": { # Permissions the user has for this entity.
+            "local": [ # Permissions that a user has been assigned at this very level. Does not include any implied or inherited permissions. Local permissions are modifiable.
+              "A String",
+            ],
+            "effective": [ # Effective permissions represent all the permissions that a user has for this entity. These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent entity. Effective permissions are read-only.
+              "A String",
+            ],
+          },
+        },
+    ],
+    "itemsPerPage": 42, # The maximum number of entries the response can contain, regardless of the actual number of entries 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", # Previous link for this account collection.
+    "startIndex": 42, # The starting index of the entries, which is 1 by default or otherwise specified by the start-index query parameter.
+    "nextLink": "A String", # Next link for this account 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="update">update(accountId, webPropertyId, linkId, body)</code>
+  <pre>Updates permissions for an existing user on the given web property.
+
+Args:
+  accountId: string, Account ID to update the account-user link for. (required)
+  webPropertyId: string, Web property ID to update the account-user link for. (required)
+  linkId: string, Link ID to update the account-user link for. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # JSON template for an Analytics Entity-User Link. Returns permissions that a user has for an entity.
+    "kind": "analytics#entityUserLink", # Resource type for entity user link.
+    "entity": { # Entity for this link. It can be an account, a web property, or a view (profile).
+      "accountRef": { # JSON template for a linked account. # Account for this link.
+        "kind": "analytics#accountRef", # Analytics account reference.
+        "href": "A String", # Link for this account.
+        "id": "A String", # Account ID.
+        "name": "A String", # Account name.
+      },
+      "profileRef": { # JSON template for a linked view (profile). # View (Profile) for this link.
+        "kind": "analytics#profileRef", # Analytics view (profile) reference.
+        "name": "A String", # Name of this view (profile).
+        "internalWebPropertyId": "A String", # Internal ID for the web property to which this view (profile) belongs.
+        "href": "A String", # Link for this view (profile).
+        "webPropertyId": "A String", # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
+        "id": "A String", # View (Profile) ID.
+        "accountId": "A String", # Account ID to which this view (profile) belongs.
+      },
+      "webPropertyRef": { # JSON template for a web property reference. # Web property for this link.
+        "kind": "analytics#webPropertyRef", # Analytics web property reference.
+        "name": "A String", # Name of this web property.
+        "internalWebPropertyId": "A String", # Internal ID for this web property.
+        "href": "A String", # Link for this web property.
+        "id": "A String", # Web property ID of the form UA-XXXXX-YY.
+        "accountId": "A String", # Account ID to which this web property belongs.
+      },
+    },
+    "userRef": { # JSON template for a user reference. # User reference.
+      "kind": "analytics#userRef",
+      "email": "A String", # Email ID of this user.
+      "id": "A String", # User ID.
+    },
+    "id": "A String", # Entity user link ID
+    "selfLink": "A String", # Self link for this resource.
+    "permissions": { # Permissions the user has for this entity.
+      "local": [ # Permissions that a user has been assigned at this very level. Does not include any implied or inherited permissions. Local permissions are modifiable.
+        "A String",
+      ],
+      "effective": [ # Effective permissions represent all the permissions that a user has for this entity. These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent entity. Effective permissions are read-only.
+        "A String",
+      ],
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # JSON template for an Analytics Entity-User Link. Returns permissions that a user has for an entity.
+      "kind": "analytics#entityUserLink", # Resource type for entity user link.
+      "entity": { # Entity for this link. It can be an account, a web property, or a view (profile).
+        "accountRef": { # JSON template for a linked account. # Account for this link.
+          "kind": "analytics#accountRef", # Analytics account reference.
+          "href": "A String", # Link for this account.
+          "id": "A String", # Account ID.
+          "name": "A String", # Account name.
+        },
+        "profileRef": { # JSON template for a linked view (profile). # View (Profile) for this link.
+          "kind": "analytics#profileRef", # Analytics view (profile) reference.
+          "name": "A String", # Name of this view (profile).
+          "internalWebPropertyId": "A String", # Internal ID for the web property to which this view (profile) belongs.
+          "href": "A String", # Link for this view (profile).
+          "webPropertyId": "A String", # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
+          "id": "A String", # View (Profile) ID.
+          "accountId": "A String", # Account ID to which this view (profile) belongs.
+        },
+        "webPropertyRef": { # JSON template for a web property reference. # Web property for this link.
+          "kind": "analytics#webPropertyRef", # Analytics web property reference.
+          "name": "A String", # Name of this web property.
+          "internalWebPropertyId": "A String", # Internal ID for this web property.
+          "href": "A String", # Link for this web property.
+          "id": "A String", # Web property ID of the form UA-XXXXX-YY.
+          "accountId": "A String", # Account ID to which this web property belongs.
+        },
+      },
+      "userRef": { # JSON template for a user reference. # User reference.
+        "kind": "analytics#userRef",
+        "email": "A String", # Email ID of this user.
+        "id": "A String", # User ID.
+      },
+      "id": "A String", # Entity user link ID
+      "selfLink": "A String", # Self link for this resource.
+      "permissions": { # Permissions the user has for this entity.
+        "local": [ # Permissions that a user has been assigned at this very level. Does not include any implied or inherited permissions. Local permissions are modifiable.
+          "A String",
+        ],
+        "effective": [ # Effective permissions represent all the permissions that a user has for this entity. These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent entity. Effective permissions are read-only.
+          "A String",
+        ],
+      },
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/analytics_v3.metadata.columns.html b/docs/dyn/analytics_v3.metadata.columns.html
new file mode 100644
index 0000000..4f94bcc
--- /dev/null
+++ b/docs/dyn/analytics_v3.metadata.columns.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="analytics_v3.html">Google Analytics API</a> . <a href="analytics_v3.metadata.html">metadata</a> . <a href="analytics_v3.metadata.columns.html">columns</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(reportType)</a></code></p>
+<p class="firstline">Lists all columns for a report type</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(reportType)</code>
+  <pre>Lists all columns for a report type
+
+Args:
+  reportType: string, Report type. Allowed Values: 'ga'. Where 'ga' corresponds to the Core Reporting API (required)
+
+Returns:
+  An object of the form:
+
+    { # Lists columns (dimensions and metrics) for a particular report type.
+    "items": [ # List of columns for a report type.
+      { # JSON template for a metadata column.
+        "attributes": { # Map of attribute name and value for this column.
+          "a_key": "A String", # The name of the attribute.
+        },
+        "kind": "analytics#column", # Resource type for Analytics column.
+        "id": "A String", # Column id.
+      },
+    ],
+    "kind": "analytics#columns", # Collection type.
+    "etag": "A String", # Etag of collection. This etag can be compared with the last response etag to check if response has changed.
+    "totalResults": 42, # Total number of columns returned in the response.
+    "attributeNames": [ # List of attributes names returned by columns.
+      "A String",
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/analytics_v3.metadata.html b/docs/dyn/analytics_v3.metadata.html
new file mode 100644
index 0000000..3b10d9b
--- /dev/null
+++ b/docs/dyn/analytics_v3.metadata.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="analytics_v3.html">Google Analytics API</a> . <a href="analytics_v3.metadata.html">metadata</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="analytics_v3.metadata.columns.html">columns()</a></code>
+</p>
+<p class="firstline">Returns the columns Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/androidpublisher_v1_1.html b/docs/dyn/androidpublisher_v1_1.html
new file mode 100644
index 0000000..adf06a6
--- /dev/null
+++ b/docs/dyn/androidpublisher_v1_1.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="androidpublisher_v1_1.html">Google Play Android Developer API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="androidpublisher_v1_1.inapppurchases.html">inapppurchases()</a></code>
+</p>
+<p class="firstline">Returns the inapppurchases Resource.</p>
+
+<p class="toc_element">
+  <code><a href="androidpublisher_v1_1.purchases.html">purchases()</a></code>
+</p>
+<p class="firstline">Returns the purchases Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/androidpublisher_v1_1.inapppurchases.html b/docs/dyn/androidpublisher_v1_1.inapppurchases.html
new file mode 100644
index 0000000..56f0ed5
--- /dev/null
+++ b/docs/dyn/androidpublisher_v1_1.inapppurchases.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="androidpublisher_v1_1.html">Google Play Android Developer API</a> . <a href="androidpublisher_v1_1.inapppurchases.html">inapppurchases</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(packageName, productId, token)</a></code></p>
+<p class="firstline">Checks the purchase and consumption status of an inapp item.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(packageName, productId, token)</code>
+  <pre>Checks the purchase and consumption status of an inapp item.
+
+Args:
+  packageName: string, The package name of the application the inapp product was sold in (for example, 'com.some.thing'). (required)
+  productId: string, The inapp product SKU (for example, 'com.some.thing.inapp1'). (required)
+  token: string, The token provided to the user's device when the inapp product was purchased. (required)
+
+Returns:
+  An object of the form:
+
+    { # A Purchase resource indicates the status of a user's subscription purchase.
+    "consumptionState": 42, # The consumption state of the inapp product. Possible values are:
+        # - Yet to be consumed
+        # - Consumed
+    "developerPayload": "A String", # A developer-specified string that contains supplemental information about an order.
+    "kind": "androidpublisher#inappPurchase", # This kind represents a inappPurchase object in the androidpublisher service.
+    "purchaseTime": "A String", # The time the product was purchased, in milliseconds since the epoch (Jan 1, 1970).
+    "purchaseState": 42, # The purchase state of the order. Possible values are:
+        # - Purchased
+        # - Cancelled
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/androidpublisher_v1_1.purchases.html b/docs/dyn/androidpublisher_v1_1.purchases.html
new file mode 100644
index 0000000..f556adc
--- /dev/null
+++ b/docs/dyn/androidpublisher_v1_1.purchases.html
@@ -0,0 +1,115 @@
+<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="androidpublisher_v1_1.html">Google Play Android Developer API</a> . <a href="androidpublisher_v1_1.purchases.html">purchases</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#cancel">cancel(packageName, subscriptionId, token)</a></code></p>
+<p class="firstline">Cancels a user's subscription purchase. The subscription remains valid until its expiration time.</p>
+<p class="toc_element">
+  <code><a href="#get">get(packageName, subscriptionId, token)</a></code></p>
+<p class="firstline">Checks whether a user's subscription purchase is valid and returns its expiry time.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="cancel">cancel(packageName, subscriptionId, token)</code>
+  <pre>Cancels a user's subscription purchase. The subscription remains valid until its expiration time.
+
+Args:
+  packageName: string, The package name of the application for which this subscription was purchased (for example, 'com.some.thing'). (required)
+  subscriptionId: string, The purchased subscription ID (for example, 'monthly001'). (required)
+  token: string, The token provided to the user's device when the subscription was purchased. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(packageName, subscriptionId, token)</code>
+  <pre>Checks whether a user's subscription purchase is valid and returns its expiry time.
+
+Args:
+  packageName: string, The package name of the application for which this subscription was purchased (for example, 'com.some.thing'). (required)
+  subscriptionId: string, The purchased subscription ID (for example, 'monthly001'). (required)
+  token: string, The token provided to the user's device when the subscription was purchased. (required)
+
+Returns:
+  An object of the form:
+
+    { # A Purchase resource indicates the status of a user's subscription purchase.
+    "initiationTimestampMsec": "A String", # Time at which the subscription was granted, in milliseconds since Epoch.
+    "kind": "androidpublisher#subscriptionPurchase", # This kind represents a subscriptionPurchase object in the androidpublisher service.
+    "autoRenewing": True or False, # Whether the subscription will automatically be renewed when it reaches its current expiry time.
+    "validUntilTimestampMsec": "A String", # Time at which the subscription will expire, in milliseconds since Epoch.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/appstate_v1.html b/docs/dyn/appstate_v1.html
new file mode 100644
index 0000000..37445e5
--- /dev/null
+++ b/docs/dyn/appstate_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="appstate_v1.html">Google App State API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="appstate_v1.states.html">states()</a></code>
+</p>
+<p class="firstline">Returns the states Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/appstate_v1.states.html b/docs/dyn/appstate_v1.states.html
new file mode 100644
index 0000000..ede89de
--- /dev/null
+++ b/docs/dyn/appstate_v1.states.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="appstate_v1.html">Google App State API</a> . <a href="appstate_v1.states.html">states</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#clear">clear(stateKey, currentDataVersion=None)</a></code></p>
+<p class="firstline">Clears (sets to empty) the data for the passed key if and only if the passed version matches the currently stored version. This method results in a conflict error on version mismatch.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(stateKey)</a></code></p>
+<p class="firstline">Deletes a key and the data associated with it. The key is removed and no longer counts against the key quota. Note that since this method is not safe in the face of concurrent modifications, it should only be used for development and testing purposes. Invoking this method in shipping code can result in data loss and data corruption.</p>
+<p class="toc_element">
+  <code><a href="#get">get(stateKey)</a></code></p>
+<p class="firstline">Retrieves the data corresponding to the passed key. If the key does not exist on the server, an HTTP 404 will be returned.</p>
+<p class="toc_element">
+  <code><a href="#list">list(includeData=None)</a></code></p>
+<p class="firstline">Lists all the states keys, and optionally the state data.</p>
+<p class="toc_element">
+  <code><a href="#update">update(stateKey, body, currentStateVersion=None)</a></code></p>
+<p class="firstline">Update the data associated with the input key if and only if the passed version matches the currently stored version. This method is safe in the face of concurrent writes. Maximum per-key size is 128KB.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="clear">clear(stateKey, currentDataVersion=None)</code>
+  <pre>Clears (sets to empty) the data for the passed key if and only if the passed version matches the currently stored version. This method results in a conflict error on version mismatch.
+
+Args:
+  stateKey: integer, The key for the data to be retrieved. (required)
+  currentDataVersion: string, The version of the data to be cleared. Version strings are returned by the server.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for an app state write result.
+    "kind": "appstate#writeResult", # Uniquely identifies the type of this resource. Value is always the fixed string appstate#writeResult.
+    "stateKey": 42, # The written key.
+    "currentStateVersion": "A String", # The version of the data for this key on the server.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(stateKey)</code>
+  <pre>Deletes a key and the data associated with it. The key is removed and no longer counts against the key quota. Note that since this method is not safe in the face of concurrent modifications, it should only be used for development and testing purposes. Invoking this method in shipping code can result in data loss and data corruption.
+
+Args:
+  stateKey: integer, The key for the data to be retrieved. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(stateKey)</code>
+  <pre>Retrieves the data corresponding to the passed key. If the key does not exist on the server, an HTTP 404 will be returned.
+
+Args:
+  stateKey: integer, The key for the data to be retrieved. (required)
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for an app state resource.
+    "stateKey": 42, # The key for the data.
+    "kind": "appstate#getResponse", # Uniquely identifies the type of this resource. Value is always the fixed string appstate#getResponse.
+    "data": "A String", # The requested data.
+    "currentStateVersion": "A String", # The current app state version.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(includeData=None)</code>
+  <pre>Lists all the states keys, and optionally the state data.
+
+Args:
+  includeData: boolean, Whether to include the full data in addition to the version number
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template to convert a list-response for app state.
+    "items": [ # The app state data.
+      { # This is a JSON template for an app state resource.
+        "stateKey": 42, # The key for the data.
+        "kind": "appstate#getResponse", # Uniquely identifies the type of this resource. Value is always the fixed string appstate#getResponse.
+        "data": "A String", # The requested data.
+        "currentStateVersion": "A String", # The current app state version.
+      },
+    ],
+    "kind": "appstate#listResponse", # Uniquely identifies the type of this resource. Value is always the fixed string appstate#listResponse.
+    "maximumKeyCount": 42, # The maximum number of keys allowed for this user.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(stateKey, body, currentStateVersion=None)</code>
+  <pre>Update the data associated with the input key if and only if the passed version matches the currently stored version. This method is safe in the face of concurrent writes. Maximum per-key size is 128KB.
+
+Args:
+  stateKey: integer, The key for the data to be retrieved. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # This is a JSON template for a requests which update app state
+    "kind": "appstate#updateRequest", # Uniquely identifies the type of this resource. Value is always the fixed string appstate#updateRequest.
+    "data": "A String", # The new app state data that your application is trying to update with.
+  }
+
+  currentStateVersion: string, The version of the app state your application is attempting to update. If this does not match the current version, this method will return a conflict error. If there is no data stored on the server for this key, the update will succeed irrespective of the value of this parameter.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for an app state write result.
+    "kind": "appstate#writeResult", # Uniquely identifies the type of this resource. Value is always the fixed string appstate#writeResult.
+    "stateKey": 42, # The written key.
+    "currentStateVersion": "A String", # The version of the data for this key on the server.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/audit_v1.activities.html b/docs/dyn/audit_v1.activities.html
new file mode 100644
index 0000000..a869ae5
--- /dev/null
+++ b/docs/dyn/audit_v1.activities.html
@@ -0,0 +1,141 @@
+<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="audit_v1.html">Enterprise Audit API</a> . <a href="audit_v1.activities.html">activities</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(customerId, applicationId, caller=None, startTime=None, actorIpAddress=None, eventName=None, actorApplicationId=None, continuationToken=None, maxResults=None, actorEmail=None, endTime=None)</a></code></p>
+<p class="firstline">Retrieves a list of activities for a specific customer and application.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(customerId, applicationId, caller=None, startTime=None, actorIpAddress=None, eventName=None, actorApplicationId=None, continuationToken=None, maxResults=None, actorEmail=None, endTime=None)</code>
+  <pre>Retrieves a list of activities for a specific customer and application.
+
+Args:
+  customerId: string, Represents the customer who is the owner of target object on which action was performed. (required)
+  applicationId: string, Application ID of the application on which the event was performed. (required)
+  caller: string, Type of the caller.
+    Allowed values
+      application_owner - Caller is an application owner.
+      customer - Caller is a customer.
+  startTime: string, Return events which occured at or after this time.
+  actorIpAddress: string, IP Address of host where the event was performed. Supports both IPv4 and IPv6 addresses.
+  eventName: string, Name of the event being queried.
+  actorApplicationId: string, Application ID of the application which interacted on behalf of the user while performing the event.
+  continuationToken: string, Next page URL.
+  maxResults: integer, Number of activity records to be shown in each page.
+  actorEmail: string, Email address of the user who performed the action.
+  endTime: string, Return events which occured at or before this time.
+
+Returns:
+  An object of the form:
+
+    {
+    "items": [ # Each record in read response.
+      {
+        "kind": "audit#activity", # Kind of resource this is.
+        "ownerDomain": "A String", # Domain of source customer.
+        "actor": { # User doing the action.
+          "applicationId": "A String", # ID of application which interacted on behalf of the user.
+          "email": "A String", # Email address of the user.
+          "key": "A String", # For OAuth 2LO API requests, consumer_key of the requestor.
+          "callerType": "A String", # User or OAuth 2LO request.
+        },
+        "id": { # Unique identifier for each activity record.
+          "uniqQualifier": "A String", # Unique qualifier if multiple events have the same time.
+          "applicationId": "A String", # Application ID of the source application.
+          "customerId": "A String", # Obfuscated customer ID of the source customer.
+          "time": "A String", # Time of occurrence of the activity.
+        },
+        "ipAddress": "A String", # IP Address of the user doing the action.
+        "events": [ # Activity events.
+          {
+            "eventType": "A String", # Type of event.
+            "name": "A String", # Name of event.
+            "parameters": [ # Event parameters.
+              {
+                "name": "A String", # Name of the parameter.
+                "value": "A String", # Value of the parameter.
+              },
+            ],
+          },
+        ],
+      },
+    ],
+    "kind": "audit#activities", # Kind of list response this is.
+    "next": "A String", # Next page URL.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/audit_v1.html b/docs/dyn/audit_v1.html
new file mode 100644
index 0000000..13aa956
--- /dev/null
+++ b/docs/dyn/audit_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="audit_v1.html">Enterprise Audit API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="audit_v1.activities.html">activities()</a></code>
+</p>
+<p class="firstline">Returns the activities Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/bigquery_v2.datasets.html b/docs/dyn/bigquery_v2.datasets.html
new file mode 100644
index 0000000..7e18a37
--- /dev/null
+++ b/docs/dyn/bigquery_v2.datasets.html
@@ -0,0 +1,379 @@
+<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="bigquery_v2.html">BigQuery API</a> . <a href="bigquery_v2.datasets.html">datasets</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(projectId, datasetId, deleteContents=None)</a></code></p>
+<p class="firstline">Deletes the dataset specified by the datasetId value. Before you can delete a dataset, you must delete all its tables, either manually or by specifying deleteContents. Immediately after deletion, you can create another dataset with the same name.</p>
+<p class="toc_element">
+  <code><a href="#get">get(projectId, datasetId)</a></code></p>
+<p class="firstline">Returns the dataset specified by datasetID.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(projectId, body)</a></code></p>
+<p class="firstline">Creates a new empty dataset.</p>
+<p class="toc_element">
+  <code><a href="#list">list(projectId, all=None, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Lists all the datasets in the specified project to which the caller has read access; however, a project owner can list (but not necessarily get) all datasets in his 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, datasetId, body)</a></code></p>
+<p class="firstline">Updates information in an existing dataset. The update method replaces the entire dataset resource, whereas the patch method only replaces fields that are provided in the submitted dataset resource. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(projectId, datasetId, body)</a></code></p>
+<p class="firstline">Updates information in an existing dataset. The update method replaces the entire dataset resource, whereas the patch method only replaces fields that are provided in the submitted dataset resource.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(projectId, datasetId, deleteContents=None)</code>
+  <pre>Deletes the dataset specified by the datasetId value. Before you can delete a dataset, you must delete all its tables, either manually or by specifying deleteContents. Immediately after deletion, you can create another dataset with the same name.
+
+Args:
+  projectId: string, Project ID of the dataset being deleted (required)
+  datasetId: string, Dataset ID of dataset being deleted (required)
+  deleteContents: boolean, If True, delete all the tables in the dataset. If False and the dataset contains tables, the request will fail. Default is False
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(projectId, datasetId)</code>
+  <pre>Returns the dataset specified by datasetID.
+
+Args:
+  projectId: string, Project ID of the requested dataset (required)
+  datasetId: string, Dataset ID of the requested dataset (required)
+
+Returns:
+  An object of the form:
+
+    {
+      "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.
+      },
+      "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;
+        {
+          "specialGroup": "A String", # [Pick one] A special group to grant access to. Possible values include: projectOwners: Owners of the enclosing project. projectReaders: Readers of the enclosing project. projectWriters: Writers of the enclosing project. allAuthenticatedUsers: All authenticated BigQuery users.
+          "domain": "A String", # [Pick one] A domain to grant access to. Any users signed in with the domain specified will be granted the specified access. Example: "example.com".
+          "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.
+          "groupByEmail": "A String", # [Pick one] An email address of a Google Group to grant access to.
+          "userByEmail": "A String", # [Pick one] An email address of a user to grant access to. For example: fred@example.com.
+        },
+      ],
+      "etag": "A String", # [Output-only] A hash of the resource.
+      "friendlyName": "A String", # [Optional] A descriptive name for the dataset.
+      "lastModifiedTime": "A String", # [Output-only] The date when this dataset or any of its tables was last modified, in milliseconds since the epoch.
+      "id": "A String", # [Output-only] The fully-qualified unique name of the dataset in the format projectId:datasetId. The dataset name without the project name is given in the datasetId field. When creating a new dataset, leave this field blank, and instead specify the datasetId field.
+      "selfLink": "A String", # [Output-only] A URL that can be used to access the resource again. You can use this URL in Get or Update requests to the resource.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(projectId, body)</code>
+  <pre>Creates a new empty dataset.
+
+Args:
+  projectId: string, Project ID of the new dataset (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "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.
+    },
+    "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;
+      {
+        "specialGroup": "A String", # [Pick one] A special group to grant access to. Possible values include: projectOwners: Owners of the enclosing project. projectReaders: Readers of the enclosing project. projectWriters: Writers of the enclosing project. allAuthenticatedUsers: All authenticated BigQuery users.
+        "domain": "A String", # [Pick one] A domain to grant access to. Any users signed in with the domain specified will be granted the specified access. Example: "example.com".
+        "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.
+        "groupByEmail": "A String", # [Pick one] An email address of a Google Group to grant access to.
+        "userByEmail": "A String", # [Pick one] An email address of a user to grant access to. For example: fred@example.com.
+      },
+    ],
+    "etag": "A String", # [Output-only] A hash of the resource.
+    "friendlyName": "A String", # [Optional] A descriptive name for the dataset.
+    "lastModifiedTime": "A String", # [Output-only] The date when this dataset or any of its tables was last modified, in milliseconds since the epoch.
+    "id": "A String", # [Output-only] The fully-qualified unique name of the dataset in the format projectId:datasetId. The dataset name without the project name is given in the datasetId field. When creating a new dataset, leave this field blank, and instead specify the datasetId field.
+    "selfLink": "A String", # [Output-only] A URL that can be used to access the resource again. You can use this URL in Get or Update requests to the resource.
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "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.
+      },
+      "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;
+        {
+          "specialGroup": "A String", # [Pick one] A special group to grant access to. Possible values include: projectOwners: Owners of the enclosing project. projectReaders: Readers of the enclosing project. projectWriters: Writers of the enclosing project. allAuthenticatedUsers: All authenticated BigQuery users.
+          "domain": "A String", # [Pick one] A domain to grant access to. Any users signed in with the domain specified will be granted the specified access. Example: "example.com".
+          "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.
+          "groupByEmail": "A String", # [Pick one] An email address of a Google Group to grant access to.
+          "userByEmail": "A String", # [Pick one] An email address of a user to grant access to. For example: fred@example.com.
+        },
+      ],
+      "etag": "A String", # [Output-only] A hash of the resource.
+      "friendlyName": "A String", # [Optional] A descriptive name for the dataset.
+      "lastModifiedTime": "A String", # [Output-only] The date when this dataset or any of its tables was last modified, in milliseconds since the epoch.
+      "id": "A String", # [Output-only] The fully-qualified unique name of the dataset in the format projectId:datasetId. The dataset name without the project name is given in the datasetId field. When creating a new dataset, leave this field blank, and instead specify the datasetId field.
+      "selfLink": "A String", # [Output-only] A URL that can be used to access the resource again. You can use this URL in Get or Update requests to the resource.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(projectId, all=None, pageToken=None, maxResults=None)</code>
+  <pre>Lists all the datasets in the specified project to which the caller has read access; however, a project owner can list (but not necessarily get) all datasets in his project.
+
+Args:
+  projectId: string, Project ID of the datasets to be listed (required)
+  all: boolean, Whether to list all datasets, including hidden ones
+  pageToken: string, Page token, returned by a previous call, to request the next page of results
+  maxResults: integer, The maximum number of results to return
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # A token that can be used to request the next results page. This property is omitted on the final results page.
+    "kind": "bigquery#datasetList", # The list type. This property always returns the value "bigquery#datasetList".
+    "datasets": [ # An array of the dataset resources in the project. Each resource contains basic information. For full information about a particular dataset resource, use the Datasets: get method. This property is omitted when there are no datasets in the project.
+      {
+        "friendlyName": "A String", # A descriptive name for the dataset, if one exists.
+        "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.
+        },
+      },
+    ],
+    "etag": "A String", # A hash value of the results page. You can use this property to determine if the page has changed since the last 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>
+
+<div class="method">
+    <code class="details" id="patch">patch(projectId, datasetId, body)</code>
+  <pre>Updates information in an existing dataset. The update method replaces the entire dataset resource, whereas the patch method only replaces fields that are provided in the submitted dataset resource. This method supports patch semantics.
+
+Args:
+  projectId: string, Project ID of the dataset being updated (required)
+  datasetId: string, Dataset ID of the dataset being updated (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "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.
+    },
+    "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;
+      {
+        "specialGroup": "A String", # [Pick one] A special group to grant access to. Possible values include: projectOwners: Owners of the enclosing project. projectReaders: Readers of the enclosing project. projectWriters: Writers of the enclosing project. allAuthenticatedUsers: All authenticated BigQuery users.
+        "domain": "A String", # [Pick one] A domain to grant access to. Any users signed in with the domain specified will be granted the specified access. Example: "example.com".
+        "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.
+        "groupByEmail": "A String", # [Pick one] An email address of a Google Group to grant access to.
+        "userByEmail": "A String", # [Pick one] An email address of a user to grant access to. For example: fred@example.com.
+      },
+    ],
+    "etag": "A String", # [Output-only] A hash of the resource.
+    "friendlyName": "A String", # [Optional] A descriptive name for the dataset.
+    "lastModifiedTime": "A String", # [Output-only] The date when this dataset or any of its tables was last modified, in milliseconds since the epoch.
+    "id": "A String", # [Output-only] The fully-qualified unique name of the dataset in the format projectId:datasetId. The dataset name without the project name is given in the datasetId field. When creating a new dataset, leave this field blank, and instead specify the datasetId field.
+    "selfLink": "A String", # [Output-only] A URL that can be used to access the resource again. You can use this URL in Get or Update requests to the resource.
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "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.
+      },
+      "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;
+        {
+          "specialGroup": "A String", # [Pick one] A special group to grant access to. Possible values include: projectOwners: Owners of the enclosing project. projectReaders: Readers of the enclosing project. projectWriters: Writers of the enclosing project. allAuthenticatedUsers: All authenticated BigQuery users.
+          "domain": "A String", # [Pick one] A domain to grant access to. Any users signed in with the domain specified will be granted the specified access. Example: "example.com".
+          "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.
+          "groupByEmail": "A String", # [Pick one] An email address of a Google Group to grant access to.
+          "userByEmail": "A String", # [Pick one] An email address of a user to grant access to. For example: fred@example.com.
+        },
+      ],
+      "etag": "A String", # [Output-only] A hash of the resource.
+      "friendlyName": "A String", # [Optional] A descriptive name for the dataset.
+      "lastModifiedTime": "A String", # [Output-only] The date when this dataset or any of its tables was last modified, in milliseconds since the epoch.
+      "id": "A String", # [Output-only] The fully-qualified unique name of the dataset in the format projectId:datasetId. The dataset name without the project name is given in the datasetId field. When creating a new dataset, leave this field blank, and instead specify the datasetId field.
+      "selfLink": "A String", # [Output-only] A URL that can be used to access the resource again. You can use this URL in Get or Update requests to the resource.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(projectId, datasetId, body)</code>
+  <pre>Updates information in an existing dataset. The update method replaces the entire dataset resource, whereas the patch method only replaces fields that are provided in the submitted dataset resource.
+
+Args:
+  projectId: string, Project ID of the dataset being updated (required)
+  datasetId: string, Dataset ID of the dataset being updated (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "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.
+    },
+    "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;
+      {
+        "specialGroup": "A String", # [Pick one] A special group to grant access to. Possible values include: projectOwners: Owners of the enclosing project. projectReaders: Readers of the enclosing project. projectWriters: Writers of the enclosing project. allAuthenticatedUsers: All authenticated BigQuery users.
+        "domain": "A String", # [Pick one] A domain to grant access to. Any users signed in with the domain specified will be granted the specified access. Example: "example.com".
+        "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.
+        "groupByEmail": "A String", # [Pick one] An email address of a Google Group to grant access to.
+        "userByEmail": "A String", # [Pick one] An email address of a user to grant access to. For example: fred@example.com.
+      },
+    ],
+    "etag": "A String", # [Output-only] A hash of the resource.
+    "friendlyName": "A String", # [Optional] A descriptive name for the dataset.
+    "lastModifiedTime": "A String", # [Output-only] The date when this dataset or any of its tables was last modified, in milliseconds since the epoch.
+    "id": "A String", # [Output-only] The fully-qualified unique name of the dataset in the format projectId:datasetId. The dataset name without the project name is given in the datasetId field. When creating a new dataset, leave this field blank, and instead specify the datasetId field.
+    "selfLink": "A String", # [Output-only] A URL that can be used to access the resource again. You can use this URL in Get or Update requests to the resource.
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "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.
+      },
+      "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;
+        {
+          "specialGroup": "A String", # [Pick one] A special group to grant access to. Possible values include: projectOwners: Owners of the enclosing project. projectReaders: Readers of the enclosing project. projectWriters: Writers of the enclosing project. allAuthenticatedUsers: All authenticated BigQuery users.
+          "domain": "A String", # [Pick one] A domain to grant access to. Any users signed in with the domain specified will be granted the specified access. Example: "example.com".
+          "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.
+          "groupByEmail": "A String", # [Pick one] An email address of a Google Group to grant access to.
+          "userByEmail": "A String", # [Pick one] An email address of a user to grant access to. For example: fred@example.com.
+        },
+      ],
+      "etag": "A String", # [Output-only] A hash of the resource.
+      "friendlyName": "A String", # [Optional] A descriptive name for the dataset.
+      "lastModifiedTime": "A String", # [Output-only] The date when this dataset or any of its tables was last modified, in milliseconds since the epoch.
+      "id": "A String", # [Output-only] The fully-qualified unique name of the dataset in the format projectId:datasetId. The dataset name without the project name is given in the datasetId field. When creating a new dataset, leave this field blank, and instead specify the datasetId field.
+      "selfLink": "A String", # [Output-only] A URL that can be used to access the resource again. You can use this URL in Get or Update requests to the resource.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/bigquery_v2.html b/docs/dyn/bigquery_v2.html
new file mode 100644
index 0000000..9a19266
--- /dev/null
+++ b/docs/dyn/bigquery_v2.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="bigquery_v2.html">BigQuery API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="bigquery_v2.datasets.html">datasets()</a></code>
+</p>
+<p class="firstline">Returns the datasets Resource.</p>
+
+<p class="toc_element">
+  <code><a href="bigquery_v2.jobs.html">jobs()</a></code>
+</p>
+<p class="firstline">Returns the jobs Resource.</p>
+
+<p class="toc_element">
+  <code><a href="bigquery_v2.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
+  <code><a href="bigquery_v2.tabledata.html">tabledata()</a></code>
+</p>
+<p class="firstline">Returns the tabledata Resource.</p>
+
+<p class="toc_element">
+  <code><a href="bigquery_v2.tables.html">tables()</a></code>
+</p>
+<p class="firstline">Returns the tables Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/bigquery_v2.jobs.html b/docs/dyn/bigquery_v2.jobs.html
new file mode 100644
index 0000000..c6109f4
--- /dev/null
+++ b/docs/dyn/bigquery_v2.jobs.html
@@ -0,0 +1,852 @@
+<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="bigquery_v2.html">BigQuery API</a> . <a href="bigquery_v2.jobs.html">jobs</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(projectId, jobId)</a></code></p>
+<p class="firstline">Retrieves the specified job by ID.</p>
+<p class="toc_element">
+  <code><a href="#getQueryResults">getQueryResults(projectId, jobId, timeoutMs=None, pageToken=None, maxResults=None, startIndex=None)</a></code></p>
+<p class="firstline">Retrieves the results of a query job.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(projectId, body=None, media_body=None)</a></code></p>
+<p class="firstline">Starts a new asynchronous job.</p>
+<p class="toc_element">
+  <code><a href="#list">list(projectId, projection=None, stateFilter=None, pageToken=None, allUsers=None, maxResults=None)</a></code></p>
+<p class="firstline">Lists all the Jobs in the specified project that were started by the user.</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="#query">query(projectId, body)</a></code></p>
+<p class="firstline">Runs a BigQuery SQL query synchronously and returns query results if the query completes within a specified timeout.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(projectId, jobId)</code>
+  <pre>Retrieves the specified job by ID.
+
+Args:
+  projectId: string, Project ID of the requested job (required)
+  jobId: string, Job ID of the requested job (required)
+
+Returns:
+  An object of the form:
+
+    {
+      "status": { # [Output-only] The status of this job. Examine this value when polling an asynchronous job to see if the job is complete.
+        "state": "A String", # [Output-only] Running state of the job.
+        "errors": [ # [Output-only] All errors encountered during the running of the job. Errors here do not necessarily mean that the job has completed or was unsuccessful.
+          {
+            "debugInfo": "A String", # Debugging information. This property is internal to Google and should not be used.
+            "message": "A String", # A human-readable description of the error.
+            "reason": "A String", # A short error code that summarizes the error.
+            "location": "A String", # Specifies where the error occurred, if present.
+          },
+        ],
+        "errorResult": { # [Output-only] Final error result of the job. If present, indicates that the job has completed and was unsuccessful.
+          "debugInfo": "A String", # Debugging information. This property is internal to Google and should not be used.
+          "message": "A String", # A human-readable description of the error.
+          "reason": "A String", # A short error code that summarizes the error.
+          "location": "A String", # Specifies where the error occurred, if present.
+        },
+      },
+      "kind": "bigquery#job", # [Output-only] The type of the resource.
+      "statistics": { # [Output-only] Information about the job, including starting time and ending time of the job.
+        "load": { # [Output-only] Statistics for a load job.
+          "outputRows": "A String", # [Output-only] Number of rows imported in a load job. Note that while an import job is in the running state, this value may change.
+          "inputFiles": "A String", # [Output-only] Number of source files in a load job.
+          "inputFileBytes": "A String", # [Output-only] Number of bytes of source data in a joad job.
+          "outputBytes": "A String", # [Output-only] Size of the loaded data in bytes. Note that while an import job is in the running state, this value may change.
+        },
+        "creationTime": "A String", # [Output-only] Creation time of this job, in milliseconds since the epoch. This field will be present on all jobs.
+        "totalBytesProcessed": "A String", # [Output-only] [Deprecated] Use the bytes processed in the query statistics instead.
+        "startTime": "A String", # [Output-only] Start time of this job, in milliseconds since the epoch. This field will be present when the job transitions from the PENDING state to either RUNNING or DONE.
+        "query": { # [Output-only] Statistics for a query job.
+          "cacheHit": True or False, # [Output-only] Whether the query result was fetched from the query cache.
+          "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.
+      },
+      "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.
+      },
+      "etag": "A String", # [Output-only] A hash of this resource.
+      "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.
+          },
+          "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.
+            "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.
+          "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.
+          "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.
+          "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.
+              {
+                "fields": [ # [Optional] Describes the nested schema fields if the type property is set to RECORD.
+                  # 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.
+                "mode": "A String", # [Optional] The field mode. Possible values include NULLABLE, REQUIRED and REPEATED. The default value is NULLABLE.
+              },
+            ],
+          },
+        },
+        "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. Behavior of non-query jobs is undefined.
+        "link": { # [Pick one] Configures a link job.
+          "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.
+          },
+          "sourceUri": [ # [Required] URI of source table to link.
+            "A String",
+          ],
+        },
+        "query": { # [Pick one] Configures a query job.
+          "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.
+          },
+          "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.
+          },
+          "priority": "A String", # [Optional] Specifies a priority for the query. Possible values include INTERACTIVE and BATCH. The default value is INTERACTIVE.
+          "writeDisposition": "A String", # [Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_EMPTY. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.
+          "allowLargeResults": True or False, # If true, allows the query to produce arbitrarily large result tables at a slight cost in performance. Requires destination_table to be set.
+          "createDisposition": "A String", # [Optional] Specifies whether the job is allowed to create new tables. The following values are supported: CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table. CREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result. The default value is CREATE_IF_NEEDED. Creation, truncation and append actions occur as one atomic update upon job completion.
+          "query": "A String", # [Required] BigQuery SQL query to execute.
+          "preserveNulls": True or False, # [Deprecated] This property is deprecated.
+        },
+        "copy": { # [Pick one] Copies a table.
+          "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
+            "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.
+          },
+          "sourceTable": { # [Required] 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.
+          },
+        },
+        "extract": { # [Pick one] Configures an extract job.
+          "destinationUri": "A String", # [Pick one] DEPRECATED: Use destinationUris instead, passing only one URI as necessary. The fully-qualified Google Cloud Storage URI where the extracted table should be written.
+          "fieldDelimiter": "A String", # [Optional] Delimiter to use between fields in the exported data. Default is ','
+          "destinationFormat": "A String", # [Experimental] Optional and defaults to CSV. Format with which files should be exported. To export to CSV, specify "CSV". Tables with nested or repeated fields cannot be exported as CSV. To export to newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON".
+          "printHeader": True or False, # [Optional] Whether to print out a header row in the results. Default is true.
+          "destinationUris": [ # [Pick one] A list of fully-qualified Google Cloud Storage URIs where the extracted table should be written.
+            "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.
+          },
+        },
+      },
+      "id": "A String", # [Output-only] Opaque ID field of the job
+      "selfLink": "A String", # [Output-only] A URL that can be used to access this resource again.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getQueryResults">getQueryResults(projectId, jobId, timeoutMs=None, pageToken=None, maxResults=None, startIndex=None)</code>
+  <pre>Retrieves the results of a query job.
+
+Args:
+  projectId: string, Project ID of the query job (required)
+  jobId: string, Job ID of the query job (required)
+  timeoutMs: integer, How long to wait for the query to complete, in milliseconds, before returning. Default is to return immediately. If the timeout passes before the job completes, the request will fail with a TIMEOUT error
+  pageToken: string, Page token, returned by a previous call, to request the next page of results
+  maxResults: integer, Maximum number of results to read
+  startIndex: string, Zero-based index of the starting row
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "bigquery#getQueryResultsResponse", # The resource type of the response.
+    "rows": [ # An object with as many results as can be contained within the maximum permitted reply size. To get any additional rows, you can call GetQueryResults and specify the jobReference returned above. Present only when the query completes successfully.
+      { # Represents a single row in the result set, consisting of one or more fields.
+        "f": [
+          { # Represents a single cell in the result set. Users of the java client can detect whether their value result is null by calling 'com.google.api.client.util.Data.isNull(cell.getV())'.
+            "v": "",
+          },
+        ],
+      },
+    ],
+    "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.
+    },
+    "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.
+    "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.
+      "fields": [ # Describes the fields in a table.
+        {
+          "fields": [ # [Optional] Describes the nested schema fields if the type property is set to RECORD.
+            # 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.
+          "mode": "A String", # [Optional] The field mode. Possible values include NULLABLE, REQUIRED and REPEATED. The default value is NULLABLE.
+        },
+      ],
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(projectId, body=None, media_body=None)</code>
+  <pre>Starts a new asynchronous job.
+
+Args:
+  projectId: string, Project ID of the project that will be billed for the job (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{
+    "status": { # [Output-only] The status of this job. Examine this value when polling an asynchronous job to see if the job is complete.
+      "state": "A String", # [Output-only] Running state of the job.
+      "errors": [ # [Output-only] All errors encountered during the running of the job. Errors here do not necessarily mean that the job has completed or was unsuccessful.
+        {
+          "debugInfo": "A String", # Debugging information. This property is internal to Google and should not be used.
+          "message": "A String", # A human-readable description of the error.
+          "reason": "A String", # A short error code that summarizes the error.
+          "location": "A String", # Specifies where the error occurred, if present.
+        },
+      ],
+      "errorResult": { # [Output-only] Final error result of the job. If present, indicates that the job has completed and was unsuccessful.
+        "debugInfo": "A String", # Debugging information. This property is internal to Google and should not be used.
+        "message": "A String", # A human-readable description of the error.
+        "reason": "A String", # A short error code that summarizes the error.
+        "location": "A String", # Specifies where the error occurred, if present.
+      },
+    },
+    "kind": "bigquery#job", # [Output-only] The type of the resource.
+    "statistics": { # [Output-only] Information about the job, including starting time and ending time of the job.
+      "load": { # [Output-only] Statistics for a load job.
+        "outputRows": "A String", # [Output-only] Number of rows imported in a load job. Note that while an import job is in the running state, this value may change.
+        "inputFiles": "A String", # [Output-only] Number of source files in a load job.
+        "inputFileBytes": "A String", # [Output-only] Number of bytes of source data in a joad job.
+        "outputBytes": "A String", # [Output-only] Size of the loaded data in bytes. Note that while an import job is in the running state, this value may change.
+      },
+      "creationTime": "A String", # [Output-only] Creation time of this job, in milliseconds since the epoch. This field will be present on all jobs.
+      "totalBytesProcessed": "A String", # [Output-only] [Deprecated] Use the bytes processed in the query statistics instead.
+      "startTime": "A String", # [Output-only] Start time of this job, in milliseconds since the epoch. This field will be present when the job transitions from the PENDING state to either RUNNING or DONE.
+      "query": { # [Output-only] Statistics for a query job.
+        "cacheHit": True or False, # [Output-only] Whether the query result was fetched from the query cache.
+        "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.
+    },
+    "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.
+    },
+    "etag": "A String", # [Output-only] A hash of this resource.
+    "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.
+        },
+        "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.
+          "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.
+        "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.
+        "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.
+        "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.
+            {
+              "fields": [ # [Optional] Describes the nested schema fields if the type property is set to RECORD.
+                # 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.
+              "mode": "A String", # [Optional] The field mode. Possible values include NULLABLE, REQUIRED and REPEATED. The default value is NULLABLE.
+            },
+          ],
+        },
+      },
+      "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. Behavior of non-query jobs is undefined.
+      "link": { # [Pick one] Configures a link job.
+        "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.
+        },
+        "sourceUri": [ # [Required] URI of source table to link.
+          "A String",
+        ],
+      },
+      "query": { # [Pick one] Configures a query job.
+        "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.
+        },
+        "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.
+        },
+        "priority": "A String", # [Optional] Specifies a priority for the query. Possible values include INTERACTIVE and BATCH. The default value is INTERACTIVE.
+        "writeDisposition": "A String", # [Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_EMPTY. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.
+        "allowLargeResults": True or False, # If true, allows the query to produce arbitrarily large result tables at a slight cost in performance. Requires destination_table to be set.
+        "createDisposition": "A String", # [Optional] Specifies whether the job is allowed to create new tables. The following values are supported: CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table. CREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result. The default value is CREATE_IF_NEEDED. Creation, truncation and append actions occur as one atomic update upon job completion.
+        "query": "A String", # [Required] BigQuery SQL query to execute.
+        "preserveNulls": True or False, # [Deprecated] This property is deprecated.
+      },
+      "copy": { # [Pick one] Copies a table.
+        "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
+          "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.
+        },
+        "sourceTable": { # [Required] 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.
+        },
+      },
+      "extract": { # [Pick one] Configures an extract job.
+        "destinationUri": "A String", # [Pick one] DEPRECATED: Use destinationUris instead, passing only one URI as necessary. The fully-qualified Google Cloud Storage URI where the extracted table should be written.
+        "fieldDelimiter": "A String", # [Optional] Delimiter to use between fields in the exported data. Default is ','
+        "destinationFormat": "A String", # [Experimental] Optional and defaults to CSV. Format with which files should be exported. To export to CSV, specify "CSV". Tables with nested or repeated fields cannot be exported as CSV. To export to newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON".
+        "printHeader": True or False, # [Optional] Whether to print out a header row in the results. Default is true.
+        "destinationUris": [ # [Pick one] A list of fully-qualified Google Cloud Storage URIs where the extracted table should be written.
+          "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.
+        },
+      },
+    },
+    "id": "A String", # [Output-only] Opaque ID field of the job
+    "selfLink": "A String", # [Output-only] A URL that can be used to access this resource again.
+  }
+
+  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
+
+Returns:
+  An object of the form:
+
+    {
+      "status": { # [Output-only] The status of this job. Examine this value when polling an asynchronous job to see if the job is complete.
+        "state": "A String", # [Output-only] Running state of the job.
+        "errors": [ # [Output-only] All errors encountered during the running of the job. Errors here do not necessarily mean that the job has completed or was unsuccessful.
+          {
+            "debugInfo": "A String", # Debugging information. This property is internal to Google and should not be used.
+            "message": "A String", # A human-readable description of the error.
+            "reason": "A String", # A short error code that summarizes the error.
+            "location": "A String", # Specifies where the error occurred, if present.
+          },
+        ],
+        "errorResult": { # [Output-only] Final error result of the job. If present, indicates that the job has completed and was unsuccessful.
+          "debugInfo": "A String", # Debugging information. This property is internal to Google and should not be used.
+          "message": "A String", # A human-readable description of the error.
+          "reason": "A String", # A short error code that summarizes the error.
+          "location": "A String", # Specifies where the error occurred, if present.
+        },
+      },
+      "kind": "bigquery#job", # [Output-only] The type of the resource.
+      "statistics": { # [Output-only] Information about the job, including starting time and ending time of the job.
+        "load": { # [Output-only] Statistics for a load job.
+          "outputRows": "A String", # [Output-only] Number of rows imported in a load job. Note that while an import job is in the running state, this value may change.
+          "inputFiles": "A String", # [Output-only] Number of source files in a load job.
+          "inputFileBytes": "A String", # [Output-only] Number of bytes of source data in a joad job.
+          "outputBytes": "A String", # [Output-only] Size of the loaded data in bytes. Note that while an import job is in the running state, this value may change.
+        },
+        "creationTime": "A String", # [Output-only] Creation time of this job, in milliseconds since the epoch. This field will be present on all jobs.
+        "totalBytesProcessed": "A String", # [Output-only] [Deprecated] Use the bytes processed in the query statistics instead.
+        "startTime": "A String", # [Output-only] Start time of this job, in milliseconds since the epoch. This field will be present when the job transitions from the PENDING state to either RUNNING or DONE.
+        "query": { # [Output-only] Statistics for a query job.
+          "cacheHit": True or False, # [Output-only] Whether the query result was fetched from the query cache.
+          "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.
+      },
+      "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.
+      },
+      "etag": "A String", # [Output-only] A hash of this resource.
+      "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.
+          },
+          "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.
+            "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.
+          "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.
+          "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.
+          "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.
+              {
+                "fields": [ # [Optional] Describes the nested schema fields if the type property is set to RECORD.
+                  # 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.
+                "mode": "A String", # [Optional] The field mode. Possible values include NULLABLE, REQUIRED and REPEATED. The default value is NULLABLE.
+              },
+            ],
+          },
+        },
+        "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. Behavior of non-query jobs is undefined.
+        "link": { # [Pick one] Configures a link job.
+          "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.
+          },
+          "sourceUri": [ # [Required] URI of source table to link.
+            "A String",
+          ],
+        },
+        "query": { # [Pick one] Configures a query job.
+          "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.
+          },
+          "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.
+          },
+          "priority": "A String", # [Optional] Specifies a priority for the query. Possible values include INTERACTIVE and BATCH. The default value is INTERACTIVE.
+          "writeDisposition": "A String", # [Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_EMPTY. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.
+          "allowLargeResults": True or False, # If true, allows the query to produce arbitrarily large result tables at a slight cost in performance. Requires destination_table to be set.
+          "createDisposition": "A String", # [Optional] Specifies whether the job is allowed to create new tables. The following values are supported: CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table. CREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result. The default value is CREATE_IF_NEEDED. Creation, truncation and append actions occur as one atomic update upon job completion.
+          "query": "A String", # [Required] BigQuery SQL query to execute.
+          "preserveNulls": True or False, # [Deprecated] This property is deprecated.
+        },
+        "copy": { # [Pick one] Copies a table.
+          "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
+            "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.
+          },
+          "sourceTable": { # [Required] 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.
+          },
+        },
+        "extract": { # [Pick one] Configures an extract job.
+          "destinationUri": "A String", # [Pick one] DEPRECATED: Use destinationUris instead, passing only one URI as necessary. The fully-qualified Google Cloud Storage URI where the extracted table should be written.
+          "fieldDelimiter": "A String", # [Optional] Delimiter to use between fields in the exported data. Default is ','
+          "destinationFormat": "A String", # [Experimental] Optional and defaults to CSV. Format with which files should be exported. To export to CSV, specify "CSV". Tables with nested or repeated fields cannot be exported as CSV. To export to newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON".
+          "printHeader": True or False, # [Optional] Whether to print out a header row in the results. Default is true.
+          "destinationUris": [ # [Pick one] A list of fully-qualified Google Cloud Storage URIs where the extracted table should be written.
+            "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.
+          },
+        },
+      },
+      "id": "A String", # [Output-only] Opaque ID field of the job
+      "selfLink": "A String", # [Output-only] A URL that can be used to access this resource again.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(projectId, projection=None, stateFilter=None, pageToken=None, allUsers=None, maxResults=None)</code>
+  <pre>Lists all the Jobs in the specified project that were started by the user.
+
+Args:
+  projectId: string, Project ID of the jobs to list (required)
+  projection: string, Restrict information returned to a set of selected fields
+    Allowed values
+      full - Includes all job data
+      minimal - Does not include the job configuration
+  stateFilter: string, Filter for job state (repeated)
+    Allowed values
+      done - Finished jobs
+      pending - Pending jobs
+      running - Running jobs
+  pageToken: string, Page token, returned by a previous call, to request the next page of results
+  allUsers: boolean, Whether to display jobs owned by all users in the project. Default false
+  maxResults: integer, Maximum number of results to return
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # A token to request the next page of results.
+    "totalItems": 42, # Total number of jobs in this collection.
+    "kind": "bigquery#jobList", # The resource type of the response.
+    "etag": "A String", # A hash of this page of results.
+    "jobs": [ # List of jobs that were requested.
+      {
+        "status": { # [Full-projection-only] Describes the state of the job.
+          "state": "A String", # [Output-only] Running state of the job.
+          "errors": [ # [Output-only] All errors encountered during the running of the job. Errors here do not necessarily mean that the job has completed or was unsuccessful.
+            {
+              "debugInfo": "A String", # Debugging information. This property is internal to Google and should not be used.
+              "message": "A String", # A human-readable description of the error.
+              "reason": "A String", # A short error code that summarizes the error.
+              "location": "A String", # Specifies where the error occurred, if present.
+            },
+          ],
+          "errorResult": { # [Output-only] Final error result of the job. If present, indicates that the job has completed and was unsuccessful.
+            "debugInfo": "A String", # Debugging information. This property is internal to Google and should not be used.
+            "message": "A String", # A human-readable description of the error.
+            "reason": "A String", # A short error code that summarizes the error.
+            "location": "A String", # Specifies where the error occurred, if present.
+          },
+        },
+        "kind": "bigquery#job", # The resource type.
+        "statistics": { # [Output-only] Information about the job, including starting time and ending time of the job.
+          "load": { # [Output-only] Statistics for a load job.
+            "outputRows": "A String", # [Output-only] Number of rows imported in a load job. Note that while an import job is in the running state, this value may change.
+            "inputFiles": "A String", # [Output-only] Number of source files in a load job.
+            "inputFileBytes": "A String", # [Output-only] Number of bytes of source data in a joad job.
+            "outputBytes": "A String", # [Output-only] Size of the loaded data in bytes. Note that while an import job is in the running state, this value may change.
+          },
+          "creationTime": "A String", # [Output-only] Creation time of this job, in milliseconds since the epoch. This field will be present on all jobs.
+          "totalBytesProcessed": "A String", # [Output-only] [Deprecated] Use the bytes processed in the query statistics instead.
+          "startTime": "A String", # [Output-only] Start time of this job, in milliseconds since the epoch. This field will be present when the job transitions from the PENDING state to either RUNNING or DONE.
+          "query": { # [Output-only] Statistics for a query job.
+            "cacheHit": True or False, # [Output-only] Whether the query result was fetched from the query cache.
+            "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.
+        },
+        "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.
+        },
+        "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.
+        "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.
+            },
+            "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.
+              "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.
+            "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.
+            "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.
+            "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.
+                {
+                  "fields": [ # [Optional] Describes the nested schema fields if the type property is set to RECORD.
+                    # 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.
+                  "mode": "A String", # [Optional] The field mode. Possible values include NULLABLE, REQUIRED and REPEATED. The default value is NULLABLE.
+                },
+              ],
+            },
+          },
+          "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. Behavior of non-query jobs is undefined.
+          "link": { # [Pick one] Configures a link job.
+            "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.
+            },
+            "sourceUri": [ # [Required] URI of source table to link.
+              "A String",
+            ],
+          },
+          "query": { # [Pick one] Configures a query job.
+            "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.
+            },
+            "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.
+            },
+            "priority": "A String", # [Optional] Specifies a priority for the query. Possible values include INTERACTIVE and BATCH. The default value is INTERACTIVE.
+            "writeDisposition": "A String", # [Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_EMPTY. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.
+            "allowLargeResults": True or False, # If true, allows the query to produce arbitrarily large result tables at a slight cost in performance. Requires destination_table to be set.
+            "createDisposition": "A String", # [Optional] Specifies whether the job is allowed to create new tables. The following values are supported: CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table. CREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result. The default value is CREATE_IF_NEEDED. Creation, truncation and append actions occur as one atomic update upon job completion.
+            "query": "A String", # [Required] BigQuery SQL query to execute.
+            "preserveNulls": True or False, # [Deprecated] This property is deprecated.
+          },
+          "copy": { # [Pick one] Copies a table.
+            "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
+              "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.
+            },
+            "sourceTable": { # [Required] 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.
+            },
+          },
+          "extract": { # [Pick one] Configures an extract job.
+            "destinationUri": "A String", # [Pick one] DEPRECATED: Use destinationUris instead, passing only one URI as necessary. The fully-qualified Google Cloud Storage URI where the extracted table should be written.
+            "fieldDelimiter": "A String", # [Optional] Delimiter to use between fields in the exported data. Default is ','
+            "destinationFormat": "A String", # [Experimental] Optional and defaults to CSV. Format with which files should be exported. To export to CSV, specify "CSV". Tables with nested or repeated fields cannot be exported as CSV. To export to newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON".
+            "printHeader": True or False, # [Optional] Whether to print out a header row in the results. Default is true.
+            "destinationUris": [ # [Pick one] A list of fully-qualified Google Cloud Storage URIs where the extracted table should be written.
+              "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.
+            },
+          },
+        },
+        "id": "A String", # Unique opaque ID of the job.
+        "errorResult": { # A result object that will be present only if the job has failed.
+          "debugInfo": "A String", # Debugging information. This property is internal to Google and should not be used.
+          "message": "A String", # A human-readable description of the error.
+          "reason": "A String", # A short error code that summarizes the error.
+          "location": "A String", # Specifies where the error occurred, if present.
+        },
+      },
+    ],
+  }</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="query">query(projectId, body)</code>
+  <pre>Runs a BigQuery SQL query synchronously and returns query results if the query completes within a specified timeout.
+
+Args:
+  projectId: string, Project ID of the project billed for the query (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "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.
+    "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.
+    },
+    "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]".
+    "preserveNulls": True or False, # [Deprecated] If set to false, maps null values in the query response to the column's default value. Only specify if you have older code that can not handle null values in the query response. The default value is true. This flag is deprecated and will be ignored in a future version of BigQuery.
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "bigquery#queryResponse", # The resource type.
+    "rows": [ # An object with as many results as can be contained within the maximum permitted reply size. To get any additional rows, you can call GetQueryResults and specify the jobReference returned above.
+      { # Represents a single row in the result set, consisting of one or more fields.
+        "f": [
+          { # Represents a single cell in the result set. Users of the java client can detect whether their value result is null by calling 'com.google.api.client.util.Data.isNull(cell.getV())'.
+            "v": "",
+          },
+        ],
+      },
+    ],
+    "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.
+    },
+    "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.
+    "totalBytesProcessed": "A String", # The total number of bytes processed for this query. If this query was a dry run, this is the number of bytes that would be processed if the query were run.
+    "cacheHit": True or False, # Whether the query result was fetched from the query cache.
+    "schema": { # The schema of the results. Present only when the query completes successfully.
+      "fields": [ # Describes the fields in a table.
+        {
+          "fields": [ # [Optional] Describes the nested schema fields if the type property is set to RECORD.
+            # 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.
+          "mode": "A String", # [Optional] The field mode. Possible values include NULLABLE, REQUIRED and REPEATED. The default value is NULLABLE.
+        },
+      ],
+    },
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/bigquery_v2.projects.html b/docs/dyn/bigquery_v2.projects.html
new file mode 100644
index 0000000..df10a23
--- /dev/null
+++ b/docs/dyn/bigquery_v2.projects.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="bigquery_v2.html">BigQuery API</a> . <a href="bigquery_v2.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Lists the projects to which you have at least read access.</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(pageToken=None, maxResults=None)</code>
+  <pre>Lists the projects to which you have at least read access.
+
+Args:
+  pageToken: string, Page token, returned by a previous call, to request the next page of results
+  maxResults: integer, Maximum number of results to return
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # A token to request the next page of results.
+    "totalItems": 42, # The total number of projects in the list.
+    "kind": "bigquery#projectList", # The type of list.
+    "etag": "A String", # A hash of the page of results
+    "projects": [ # Projects to which you have at least READ access.
+      {
+        "friendlyName": "A String", # A descriptive name for this project.
+        "kind": "bigquery#project", # The resource type.
+        "numericId": "A String", # The numeric ID of this project.
+        "id": "A String", # An opaque ID of this project.
+        "projectReference": { # A unique reference to this project.
+          "projectId": "A String", # [Required] ID of the project. Can be either the numeric ID or the assigned ID of the project.
+        },
+      },
+    ],
+  }</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.tabledata.html b/docs/dyn/bigquery_v2.tabledata.html
new file mode 100644
index 0000000..cb1f2da
--- /dev/null
+++ b/docs/dyn/bigquery_v2.tabledata.html
@@ -0,0 +1,161 @@
+<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="bigquery_v2.html">BigQuery API</a> . <a href="bigquery_v2.tabledata.html">tabledata</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#insertAll">insertAll(projectId, datasetId, tableId, body)</a></code></p>
+<p class="firstline">Inserts the supplied rows into the table.</p>
+<p class="toc_element">
+  <code><a href="#list">list(projectId, datasetId, tableId, pageToken=None, maxResults=None, startIndex=None)</a></code></p>
+<p class="firstline">Retrieves table data from a specified set of rows.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="insertAll">insertAll(projectId, datasetId, tableId, body)</code>
+  <pre>Inserts the supplied rows into the table.
+
+Args:
+  projectId: string, Project ID of the destination table. (required)
+  datasetId: string, Dataset ID of the destination table. (required)
+  tableId: string, Table ID of the destination table. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "kind": "bigquery#tableDataInsertAllRequest", # The resource type of the response.
+    "rows": [ # The rows to insert.
+      {
+        "insertId": "A String", # [Optional] A unique ID for each row. BigQuery uses this property to detect duplicate insertion requests on a best-effort basis.
+        "json": { # Represents a single JSON object. # [Required] A JSON object that contains a row of data. The object's properties and values must match the destination table's schema.
+          "a_key": "",
+        },
+      },
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "bigquery#tableDataInsertAllResponse", # The resource type of the response.
+    "insertErrors": [ # An array of errors for rows that were not inserted.
+      {
+        "index": 42, # The index of the row that error applies to.
+        "errors": [ # Error information for the row indicated by the index property.
+          {
+            "debugInfo": "A String", # Debugging information. This property is internal to Google and should not be used.
+            "message": "A String", # A human-readable description of the error.
+            "reason": "A String", # A short error code that summarizes the error.
+            "location": "A String", # Specifies where the error occurred, if present.
+          },
+        ],
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(projectId, datasetId, tableId, pageToken=None, maxResults=None, startIndex=None)</code>
+  <pre>Retrieves table data from a specified set of rows.
+
+Args:
+  projectId: string, Project ID of the table to read (required)
+  datasetId: string, Dataset ID of the table to read (required)
+  tableId: string, Table ID of the table to read (required)
+  pageToken: string, Page token, returned by a previous call, identifying the result set
+  maxResults: integer, Maximum number of results to return
+  startIndex: string, Zero-based index of the starting row to read
+
+Returns:
+  An object of the form:
+
+    {
+    "pageToken": "A String", # A token used for paging results. Providing this token instead of the startIndex parameter can help you retrieve stable results when an underlying table is changing.
+    "kind": "bigquery#tableDataList", # The resource type of the response.
+    "etag": "A String", # A hash of this page of results.
+    "rows": [ # Rows of results.
+      { # Represents a single row in the result set, consisting of one or more fields.
+        "f": [
+          { # Represents a single cell in the result set. Users of the java client can detect whether their value result is null by calling 'com.google.api.client.util.Data.isNull(cell.getV())'.
+            "v": "",
+          },
+        ],
+      },
+    ],
+    "totalRows": "A String", # The total number of rows in the complete table.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/bigquery_v2.tables.html b/docs/dyn/bigquery_v2.tables.html
new file mode 100644
index 0000000..a91898c
--- /dev/null
+++ b/docs/dyn/bigquery_v2.tables.html
@@ -0,0 +1,470 @@
+<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="bigquery_v2.html">BigQuery API</a> . <a href="bigquery_v2.tables.html">tables</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(projectId, datasetId, tableId)</a></code></p>
+<p class="firstline">Deletes the table specified by tableId from the dataset. If the table contains data, all the data will be deleted.</p>
+<p class="toc_element">
+  <code><a href="#get">get(projectId, datasetId, tableId)</a></code></p>
+<p class="firstline">Gets the specified table resource by table ID. This method does not return the data in the table, it only returns the table resource, which describes the structure of this table.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(projectId, datasetId, body)</a></code></p>
+<p class="firstline">Creates a new, empty table in the dataset.</p>
+<p class="toc_element">
+  <code><a href="#list">list(projectId, datasetId, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Lists all tables in the specified dataset.</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, datasetId, tableId, body)</a></code></p>
+<p class="firstline">Updates information in an existing table. The update method replaces the entire table resource, whereas the patch method only replaces fields that are provided in the submitted table resource. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(projectId, datasetId, tableId, body)</a></code></p>
+<p class="firstline">Updates information in an existing table. The update method replaces the entire table resource, whereas the patch method only replaces fields that are provided in the submitted table resource.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(projectId, datasetId, tableId)</code>
+  <pre>Deletes the table specified by tableId from the dataset. If the table contains data, all the data will be deleted.
+
+Args:
+  projectId: string, Project ID of the table to delete (required)
+  datasetId: string, Dataset ID of the table to delete (required)
+  tableId: string, Table ID of the table to delete (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(projectId, datasetId, tableId)</code>
+  <pre>Gets the specified table resource by table ID. This method does not return the data in the table, it only returns the table resource, which describes the structure of this table.
+
+Args:
+  projectId: string, Project ID of the requested table (required)
+  datasetId: string, Dataset ID of the requested table (required)
+  tableId: string, Table ID of the requested table (required)
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "bigquery#table", # [Output-only] The type of the resource.
+      "lastModifiedTime": "A String", # [Output-only] The time when this table was last modified, in milliseconds since the epoch.
+      "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.
+      },
+      "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.
+      "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.
+      "view": { # [Optional] The view definition.
+        "query": "A String", # [Required] A query that BigQuery executes when the view is referenced.
+      },
+      "type": "A String", # [Output-only] Describes the table type. The following values are supported: TABLE: A normal BigQuery table. VIEW: A virtual table defined by a SQL query. The default value is TABLE.
+      "id": "A String", # [Output-only] An opaque ID uniquely identifying the table.
+      "selfLink": "A String", # [Output-only] A URL that can be used to access this resource again.
+      "schema": { # [Optional] Describes the schema of this table.
+        "fields": [ # Describes the fields in a table.
+          {
+            "fields": [ # [Optional] Describes the nested schema fields if the type property is set to RECORD.
+              # 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.
+            "mode": "A String", # [Optional] The field mode. Possible values include NULLABLE, REQUIRED and REPEATED. The default value is NULLABLE.
+          },
+        ],
+      },
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(projectId, datasetId, body)</code>
+  <pre>Creates a new, empty table in the dataset.
+
+Args:
+  projectId: string, Project ID of the new table (required)
+  datasetId: string, Dataset ID of the new table (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "kind": "bigquery#table", # [Output-only] The type of the resource.
+    "lastModifiedTime": "A String", # [Output-only] The time when this table was last modified, in milliseconds since the epoch.
+    "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.
+    },
+    "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.
+    "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.
+    "view": { # [Optional] The view definition.
+      "query": "A String", # [Required] A query that BigQuery executes when the view is referenced.
+    },
+    "type": "A String", # [Output-only] Describes the table type. The following values are supported: TABLE: A normal BigQuery table. VIEW: A virtual table defined by a SQL query. The default value is TABLE.
+    "id": "A String", # [Output-only] An opaque ID uniquely identifying the table.
+    "selfLink": "A String", # [Output-only] A URL that can be used to access this resource again.
+    "schema": { # [Optional] Describes the schema of this table.
+      "fields": [ # Describes the fields in a table.
+        {
+          "fields": [ # [Optional] Describes the nested schema fields if the type property is set to RECORD.
+            # 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.
+          "mode": "A String", # [Optional] The field mode. Possible values include NULLABLE, REQUIRED and REPEATED. The default value is NULLABLE.
+        },
+      ],
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "bigquery#table", # [Output-only] The type of the resource.
+      "lastModifiedTime": "A String", # [Output-only] The time when this table was last modified, in milliseconds since the epoch.
+      "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.
+      },
+      "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.
+      "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.
+      "view": { # [Optional] The view definition.
+        "query": "A String", # [Required] A query that BigQuery executes when the view is referenced.
+      },
+      "type": "A String", # [Output-only] Describes the table type. The following values are supported: TABLE: A normal BigQuery table. VIEW: A virtual table defined by a SQL query. The default value is TABLE.
+      "id": "A String", # [Output-only] An opaque ID uniquely identifying the table.
+      "selfLink": "A String", # [Output-only] A URL that can be used to access this resource again.
+      "schema": { # [Optional] Describes the schema of this table.
+        "fields": [ # Describes the fields in a table.
+          {
+            "fields": [ # [Optional] Describes the nested schema fields if the type property is set to RECORD.
+              # 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.
+            "mode": "A String", # [Optional] The field mode. Possible values include NULLABLE, REQUIRED and REPEATED. The default value is NULLABLE.
+          },
+        ],
+      },
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(projectId, datasetId, pageToken=None, maxResults=None)</code>
+  <pre>Lists all tables in the specified dataset.
+
+Args:
+  projectId: string, Project ID of the tables to list (required)
+  datasetId: string, Dataset ID of the tables to list (required)
+  pageToken: string, Page token, returned by a previous call, to request the next page of results
+  maxResults: integer, Maximum number of results to return
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # A token to request the next page of results.
+    "tables": [ # Tables in the requested dataset.
+      {
+        "friendlyName": "A String", # The user-friendly name for this table.
+        "kind": "bigquery#table", # The resource type.
+        "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.
+        },
+      },
+    ],
+    "kind": "bigquery#tableList", # The type of list.
+    "etag": "A String", # A hash of this page of results.
+    "totalItems": 42, # The total number of tables in the dataset.
+  }</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, datasetId, tableId, body)</code>
+  <pre>Updates information in an existing table. The update method replaces the entire table resource, whereas the patch method only replaces fields that are provided in the submitted table resource. This method supports patch semantics.
+
+Args:
+  projectId: string, Project ID of the table to update (required)
+  datasetId: string, Dataset ID of the table to update (required)
+  tableId: string, Table ID of the table to update (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "kind": "bigquery#table", # [Output-only] The type of the resource.
+    "lastModifiedTime": "A String", # [Output-only] The time when this table was last modified, in milliseconds since the epoch.
+    "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.
+    },
+    "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.
+    "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.
+    "view": { # [Optional] The view definition.
+      "query": "A String", # [Required] A query that BigQuery executes when the view is referenced.
+    },
+    "type": "A String", # [Output-only] Describes the table type. The following values are supported: TABLE: A normal BigQuery table. VIEW: A virtual table defined by a SQL query. The default value is TABLE.
+    "id": "A String", # [Output-only] An opaque ID uniquely identifying the table.
+    "selfLink": "A String", # [Output-only] A URL that can be used to access this resource again.
+    "schema": { # [Optional] Describes the schema of this table.
+      "fields": [ # Describes the fields in a table.
+        {
+          "fields": [ # [Optional] Describes the nested schema fields if the type property is set to RECORD.
+            # 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.
+          "mode": "A String", # [Optional] The field mode. Possible values include NULLABLE, REQUIRED and REPEATED. The default value is NULLABLE.
+        },
+      ],
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "bigquery#table", # [Output-only] The type of the resource.
+      "lastModifiedTime": "A String", # [Output-only] The time when this table was last modified, in milliseconds since the epoch.
+      "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.
+      },
+      "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.
+      "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.
+      "view": { # [Optional] The view definition.
+        "query": "A String", # [Required] A query that BigQuery executes when the view is referenced.
+      },
+      "type": "A String", # [Output-only] Describes the table type. The following values are supported: TABLE: A normal BigQuery table. VIEW: A virtual table defined by a SQL query. The default value is TABLE.
+      "id": "A String", # [Output-only] An opaque ID uniquely identifying the table.
+      "selfLink": "A String", # [Output-only] A URL that can be used to access this resource again.
+      "schema": { # [Optional] Describes the schema of this table.
+        "fields": [ # Describes the fields in a table.
+          {
+            "fields": [ # [Optional] Describes the nested schema fields if the type property is set to RECORD.
+              # 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.
+            "mode": "A String", # [Optional] The field mode. Possible values include NULLABLE, REQUIRED and REPEATED. The default value is NULLABLE.
+          },
+        ],
+      },
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(projectId, datasetId, tableId, body)</code>
+  <pre>Updates information in an existing table. The update method replaces the entire table resource, whereas the patch method only replaces fields that are provided in the submitted table resource.
+
+Args:
+  projectId: string, Project ID of the table to update (required)
+  datasetId: string, Dataset ID of the table to update (required)
+  tableId: string, Table ID of the table to update (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "kind": "bigquery#table", # [Output-only] The type of the resource.
+    "lastModifiedTime": "A String", # [Output-only] The time when this table was last modified, in milliseconds since the epoch.
+    "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.
+    },
+    "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.
+    "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.
+    "view": { # [Optional] The view definition.
+      "query": "A String", # [Required] A query that BigQuery executes when the view is referenced.
+    },
+    "type": "A String", # [Output-only] Describes the table type. The following values are supported: TABLE: A normal BigQuery table. VIEW: A virtual table defined by a SQL query. The default value is TABLE.
+    "id": "A String", # [Output-only] An opaque ID uniquely identifying the table.
+    "selfLink": "A String", # [Output-only] A URL that can be used to access this resource again.
+    "schema": { # [Optional] Describes the schema of this table.
+      "fields": [ # Describes the fields in a table.
+        {
+          "fields": [ # [Optional] Describes the nested schema fields if the type property is set to RECORD.
+            # 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.
+          "mode": "A String", # [Optional] The field mode. Possible values include NULLABLE, REQUIRED and REPEATED. The default value is NULLABLE.
+        },
+      ],
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "bigquery#table", # [Output-only] The type of the resource.
+      "lastModifiedTime": "A String", # [Output-only] The time when this table was last modified, in milliseconds since the epoch.
+      "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.
+      },
+      "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.
+      "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.
+      "view": { # [Optional] The view definition.
+        "query": "A String", # [Required] A query that BigQuery executes when the view is referenced.
+      },
+      "type": "A String", # [Output-only] Describes the table type. The following values are supported: TABLE: A normal BigQuery table. VIEW: A virtual table defined by a SQL query. The default value is TABLE.
+      "id": "A String", # [Output-only] An opaque ID uniquely identifying the table.
+      "selfLink": "A String", # [Output-only] A URL that can be used to access this resource again.
+      "schema": { # [Optional] Describes the schema of this table.
+        "fields": [ # Describes the fields in a table.
+          {
+            "fields": [ # [Optional] Describes the nested schema fields if the type property is set to RECORD.
+              # 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.
+            "mode": "A String", # [Optional] The field mode. Possible values include NULLABLE, REQUIRED and REPEATED. The default value is NULLABLE.
+          },
+        ],
+      },
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/blogger_v3.blogUserInfos.html b/docs/dyn/blogger_v3.blogUserInfos.html
new file mode 100644
index 0000000..155f184
--- /dev/null
+++ b/docs/dyn/blogger_v3.blogUserInfos.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="blogger_v3.html">Blogger API</a> . <a href="blogger_v3.blogUserInfos.html">blogUserInfos</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(userId, blogId, maxPosts=None)</a></code></p>
+<p class="firstline">Gets one blog and user info pair by blogId and userId.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(userId, blogId, maxPosts=None)</code>
+  <pre>Gets one blog and user info pair by blogId and userId.
+
+Args:
+  userId: string, ID of the user whose blogs are to be fetched. Either the word 'self' (sans quote marks) or the user's profile identifier. (required)
+  blogId: string, The ID of the blog to get. (required)
+  maxPosts: integer, Maximum number of posts to pull back with the blog.
+
+Returns:
+  An object of the form:
+
+    {
+    "blog": { # The Blog resource.
+      "kind": "blogger#blog", # The kind of this entry. Always blogger#blog
+      "description": "A String", # The description of this blog. This is displayed underneath the title.
+      "locale": { # The locale this Blog is set to.
+        "country": "A String", # The country this blog's locale is set to.
+        "variant": "A String", # The language variant this blog is authored in.
+        "language": "A String", # The language this blog is authored in.
+      },
+      "posts": { # The container of posts in this blog.
+        "totalItems": 42, # The count of posts in this blog.
+        "items": [ # The List of Posts for this Blog.
+          {
+            "status": "A String", # Status of the post. Only set for admin-level requests
+            "content": "A String", # The content of the Post. May contain HTML markup.
+            "kind": "blogger#post", # The kind of this entity. Always blogger#post
+            "titleLink": "A String", # The title link URL, similar to atom's related link.
+            "author": { # The author of this Post.
+              "url": "A String", # The URL of the Post creator's Profile page.
+              "image": { # The Post author's avatar.
+                "url": "A String", # The Post author's avatar URL.
+              },
+              "displayName": "A String", # The display name.
+              "id": "A String", # The identifier of the Post creator.
+            },
+            "replies": { # The container of comments on this Post.
+              "totalItems": "A String", # The count of comments on this post.
+              "items": [ # The List of Comments for this Post.
+                {
+                  "status": "A String", # The status of the comment (only populated for admin users)
+                  "content": "A String", # The actual content of the comment. May include HTML markup.
+                  "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
+                  "inReplyTo": { # Data about the comment this is in reply to.
+                    "id": "A String", # The identified of the parent of this comment.
+                  },
+                  "author": { # The author of this Comment.
+                    "url": "A String", # The URL of the Comment creator's Profile page.
+                    "image": { # The comment creator's avatar.
+                      "url": "A String", # The comment creator's avatar URL.
+                    },
+                    "displayName": "A String", # The display name.
+                    "id": "A String", # The identifier of the Comment creator.
+                  },
+                  "updated": "A String", # RFC 3339 date-time when this comment was last updated.
+                  "blog": { # Data about the blog containing this comment.
+                    "id": "A String", # The identifier of the blog containing this comment.
+                  },
+                  "published": "A String", # RFC 3339 date-time when this comment was published.
+                  "post": { # Data about the post containing this comment.
+                    "id": "A String", # The identifier of the post containing this comment.
+                  },
+                  "id": "A String", # The identifier for this resource.
+                  "selfLink": "A String", # The API REST URL to fetch this resource from.
+                },
+              ],
+              "selfLink": "A String", # The URL of the comments on this post.
+            },
+            "labels": [ # The list of labels this Post was tagged with.
+              "A String",
+            ],
+            "customMetaData": "A String", # The JSON meta-data for the Post.
+            "updated": "A String", # RFC 3339 date-time when this Post was last updated.
+            "blog": { # Data about the blog containing this Post.
+              "id": "A String", # The identifier of the Blog that contains this Post.
+            },
+            "url": "A String", # The URL where this Post is displayed.
+            "location": { # The location for geotagged posts.
+              "lat": 3.14, # Location's latitude.
+              "lng": 3.14, # Location's longitude.
+              "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
+              "name": "A String", # Location name.
+            },
+            "published": "A String", # RFC 3339 date-time when this Post was published.
+            "images": [ # Display image for the Post.
+              {
+                "url": "A String",
+              },
+            ],
+            "title": "A String", # The title of the Post.
+            "id": "A String", # The identifier of this Post.
+            "selfLink": "A String", # The API REST URL to fetch this resource from.
+          },
+        ],
+        "selfLink": "A String", # The URL of the container for posts in this blog.
+      },
+      "customMetaData": "A String", # The JSON custom meta-data for the Blog
+      "updated": "A String", # RFC 3339 date-time when this blog was last updated.
+      "pages": { # The container of pages in this blog.
+        "totalItems": 42, # The count of pages in this blog.
+        "selfLink": "A String", # The URL of the container for pages in this blog.
+      },
+      "url": "A String", # The URL where this blog is published.
+      "published": "A String", # RFC 3339 date-time when this blog was published.
+      "id": "A String", # The identifier for this resource.
+      "selfLink": "A String", # The API REST URL to fetch this resource from.
+      "name": "A String", # The name of this blog. This is displayed as the title.
+    },
+    "kind": "blogger#blogUserInfo", # The kind of this entity. Always blogger#blogUserInfo
+    "blog_user_info": { # Information about a User for the Blog.
+      "hasAdminAccess": True or False, # True if the user has Admin level access to the blog.
+      "kind": "blogger#blogPerUserInfo", # The kind of this entity. Always blogger#blogPerUserInfo
+      "userId": "A String", # ID of the User
+      "role": "A String", # Access permissions that the user has for the blog (ADMIN, AUTHOR, or READER).
+      "photosAlbumKey": "A String", # The Photo Album Key for the user when adding photos to the blog
+      "blogId": "A String", # ID of the Blog resource
+    },
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/blogger_v3.blogs.html b/docs/dyn/blogger_v3.blogs.html
new file mode 100644
index 0000000..f53f6c1
--- /dev/null
+++ b/docs/dyn/blogger_v3.blogs.html
@@ -0,0 +1,547 @@
+<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="blogger_v3.html">Blogger API</a> . <a href="blogger_v3.blogs.html">blogs</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(blogId, maxPosts=None, view=None)</a></code></p>
+<p class="firstline">Gets one blog by id.</p>
+<p class="toc_element">
+  <code><a href="#getByUrl">getByUrl(url, view=None)</a></code></p>
+<p class="firstline">Retrieve a Blog by URL.</p>
+<p class="toc_element">
+  <code><a href="#listByUser">listByUser(userId, fetchUserInfo=None, role=None, view=None)</a></code></p>
+<p class="firstline">Retrieves a list of blogs, possibly filtered.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(blogId, maxPosts=None, view=None)</code>
+  <pre>Gets one blog by id.
+
+Args:
+  blogId: string, The ID of the blog to get. (required)
+  maxPosts: integer, Maximum number of posts to pull back with the blog.
+  view: string, Access level with which to view the blogs. Note that some fields require elevated access.
+    Allowed values
+      ADMIN - Admin level detail
+      AUTHOR - Author level detail
+      READER - Reader level detail
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "blogger#blog", # The kind of this entry. Always blogger#blog
+    "description": "A String", # The description of this blog. This is displayed underneath the title.
+    "locale": { # The locale this Blog is set to.
+      "country": "A String", # The country this blog's locale is set to.
+      "variant": "A String", # The language variant this blog is authored in.
+      "language": "A String", # The language this blog is authored in.
+    },
+    "posts": { # The container of posts in this blog.
+      "totalItems": 42, # The count of posts in this blog.
+      "items": [ # The List of Posts for this Blog.
+        {
+          "status": "A String", # Status of the post. Only set for admin-level requests
+          "content": "A String", # The content of the Post. May contain HTML markup.
+          "kind": "blogger#post", # The kind of this entity. Always blogger#post
+          "titleLink": "A String", # The title link URL, similar to atom's related link.
+          "author": { # The author of this Post.
+            "url": "A String", # The URL of the Post creator's Profile page.
+            "image": { # The Post author's avatar.
+              "url": "A String", # The Post author's avatar URL.
+            },
+            "displayName": "A String", # The display name.
+            "id": "A String", # The identifier of the Post creator.
+          },
+          "replies": { # The container of comments on this Post.
+            "totalItems": "A String", # The count of comments on this post.
+            "items": [ # The List of Comments for this Post.
+              {
+                "status": "A String", # The status of the comment (only populated for admin users)
+                "content": "A String", # The actual content of the comment. May include HTML markup.
+                "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
+                "inReplyTo": { # Data about the comment this is in reply to.
+                  "id": "A String", # The identified of the parent of this comment.
+                },
+                "author": { # The author of this Comment.
+                  "url": "A String", # The URL of the Comment creator's Profile page.
+                  "image": { # The comment creator's avatar.
+                    "url": "A String", # The comment creator's avatar URL.
+                  },
+                  "displayName": "A String", # The display name.
+                  "id": "A String", # The identifier of the Comment creator.
+                },
+                "updated": "A String", # RFC 3339 date-time when this comment was last updated.
+                "blog": { # Data about the blog containing this comment.
+                  "id": "A String", # The identifier of the blog containing this comment.
+                },
+                "published": "A String", # RFC 3339 date-time when this comment was published.
+                "post": { # Data about the post containing this comment.
+                  "id": "A String", # The identifier of the post containing this comment.
+                },
+                "id": "A String", # The identifier for this resource.
+                "selfLink": "A String", # The API REST URL to fetch this resource from.
+              },
+            ],
+            "selfLink": "A String", # The URL of the comments on this post.
+          },
+          "labels": [ # The list of labels this Post was tagged with.
+            "A String",
+          ],
+          "customMetaData": "A String", # The JSON meta-data for the Post.
+          "updated": "A String", # RFC 3339 date-time when this Post was last updated.
+          "blog": { # Data about the blog containing this Post.
+            "id": "A String", # The identifier of the Blog that contains this Post.
+          },
+          "url": "A String", # The URL where this Post is displayed.
+          "location": { # The location for geotagged posts.
+            "lat": 3.14, # Location's latitude.
+            "lng": 3.14, # Location's longitude.
+            "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
+            "name": "A String", # Location name.
+          },
+          "published": "A String", # RFC 3339 date-time when this Post was published.
+          "images": [ # Display image for the Post.
+            {
+              "url": "A String",
+            },
+          ],
+          "title": "A String", # The title of the Post.
+          "id": "A String", # The identifier of this Post.
+          "selfLink": "A String", # The API REST URL to fetch this resource from.
+        },
+      ],
+      "selfLink": "A String", # The URL of the container for posts in this blog.
+    },
+    "customMetaData": "A String", # The JSON custom meta-data for the Blog
+    "updated": "A String", # RFC 3339 date-time when this blog was last updated.
+    "pages": { # The container of pages in this blog.
+      "totalItems": 42, # The count of pages in this blog.
+      "selfLink": "A String", # The URL of the container for pages in this blog.
+    },
+    "url": "A String", # The URL where this blog is published.
+    "published": "A String", # RFC 3339 date-time when this blog was published.
+    "id": "A String", # The identifier for this resource.
+    "selfLink": "A String", # The API REST URL to fetch this resource from.
+    "name": "A String", # The name of this blog. This is displayed as the title.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getByUrl">getByUrl(url, view=None)</code>
+  <pre>Retrieve a Blog by URL.
+
+Args:
+  url: string, The URL of the blog to retrieve. (required)
+  view: string, Access level with which to view the blogs. Note that some fields require elevated access.
+    Allowed values
+      ADMIN - Admin level detail
+      AUTHOR - Author level detail
+      READER - Reader level detail
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "blogger#blog", # The kind of this entry. Always blogger#blog
+    "description": "A String", # The description of this blog. This is displayed underneath the title.
+    "locale": { # The locale this Blog is set to.
+      "country": "A String", # The country this blog's locale is set to.
+      "variant": "A String", # The language variant this blog is authored in.
+      "language": "A String", # The language this blog is authored in.
+    },
+    "posts": { # The container of posts in this blog.
+      "totalItems": 42, # The count of posts in this blog.
+      "items": [ # The List of Posts for this Blog.
+        {
+          "status": "A String", # Status of the post. Only set for admin-level requests
+          "content": "A String", # The content of the Post. May contain HTML markup.
+          "kind": "blogger#post", # The kind of this entity. Always blogger#post
+          "titleLink": "A String", # The title link URL, similar to atom's related link.
+          "author": { # The author of this Post.
+            "url": "A String", # The URL of the Post creator's Profile page.
+            "image": { # The Post author's avatar.
+              "url": "A String", # The Post author's avatar URL.
+            },
+            "displayName": "A String", # The display name.
+            "id": "A String", # The identifier of the Post creator.
+          },
+          "replies": { # The container of comments on this Post.
+            "totalItems": "A String", # The count of comments on this post.
+            "items": [ # The List of Comments for this Post.
+              {
+                "status": "A String", # The status of the comment (only populated for admin users)
+                "content": "A String", # The actual content of the comment. May include HTML markup.
+                "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
+                "inReplyTo": { # Data about the comment this is in reply to.
+                  "id": "A String", # The identified of the parent of this comment.
+                },
+                "author": { # The author of this Comment.
+                  "url": "A String", # The URL of the Comment creator's Profile page.
+                  "image": { # The comment creator's avatar.
+                    "url": "A String", # The comment creator's avatar URL.
+                  },
+                  "displayName": "A String", # The display name.
+                  "id": "A String", # The identifier of the Comment creator.
+                },
+                "updated": "A String", # RFC 3339 date-time when this comment was last updated.
+                "blog": { # Data about the blog containing this comment.
+                  "id": "A String", # The identifier of the blog containing this comment.
+                },
+                "published": "A String", # RFC 3339 date-time when this comment was published.
+                "post": { # Data about the post containing this comment.
+                  "id": "A String", # The identifier of the post containing this comment.
+                },
+                "id": "A String", # The identifier for this resource.
+                "selfLink": "A String", # The API REST URL to fetch this resource from.
+              },
+            ],
+            "selfLink": "A String", # The URL of the comments on this post.
+          },
+          "labels": [ # The list of labels this Post was tagged with.
+            "A String",
+          ],
+          "customMetaData": "A String", # The JSON meta-data for the Post.
+          "updated": "A String", # RFC 3339 date-time when this Post was last updated.
+          "blog": { # Data about the blog containing this Post.
+            "id": "A String", # The identifier of the Blog that contains this Post.
+          },
+          "url": "A String", # The URL where this Post is displayed.
+          "location": { # The location for geotagged posts.
+            "lat": 3.14, # Location's latitude.
+            "lng": 3.14, # Location's longitude.
+            "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
+            "name": "A String", # Location name.
+          },
+          "published": "A String", # RFC 3339 date-time when this Post was published.
+          "images": [ # Display image for the Post.
+            {
+              "url": "A String",
+            },
+          ],
+          "title": "A String", # The title of the Post.
+          "id": "A String", # The identifier of this Post.
+          "selfLink": "A String", # The API REST URL to fetch this resource from.
+        },
+      ],
+      "selfLink": "A String", # The URL of the container for posts in this blog.
+    },
+    "customMetaData": "A String", # The JSON custom meta-data for the Blog
+    "updated": "A String", # RFC 3339 date-time when this blog was last updated.
+    "pages": { # The container of pages in this blog.
+      "totalItems": 42, # The count of pages in this blog.
+      "selfLink": "A String", # The URL of the container for pages in this blog.
+    },
+    "url": "A String", # The URL where this blog is published.
+    "published": "A String", # RFC 3339 date-time when this blog was published.
+    "id": "A String", # The identifier for this resource.
+    "selfLink": "A String", # The API REST URL to fetch this resource from.
+    "name": "A String", # The name of this blog. This is displayed as the title.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="listByUser">listByUser(userId, fetchUserInfo=None, role=None, view=None)</code>
+  <pre>Retrieves a list of blogs, possibly filtered.
+
+Args:
+  userId: string, ID of the user whose blogs are to be fetched. Either the word 'self' (sans quote marks) or the user's profile identifier. (required)
+  fetchUserInfo: boolean, Whether the response is a list of blogs with per-user information instead of just blogs.
+  role: string, User access types for blogs to include in the results, e.g. AUTHOR will return blogs where the user has author level access. If no roles are specified, defaults to ADMIN and AUTHOR roles. (repeated)
+    Allowed values
+      ADMIN - Admin role - User has Admin level access.
+      AUTHOR - Author role - User has Author level access.
+      READER - Reader role - User has Reader level access.
+  view: string, Access level with which to view the blogs. Note that some fields require elevated access.
+    Allowed values
+      ADMIN - Admin level detail
+      AUTHOR - Author level detail
+      READER - Reader level detail
+
+Returns:
+  An object of the form:
+
+    {
+    "items": [ # The list of Blogs this user has Authorship or Admin rights over.
+      {
+        "kind": "blogger#blog", # The kind of this entry. Always blogger#blog
+        "description": "A String", # The description of this blog. This is displayed underneath the title.
+        "locale": { # The locale this Blog is set to.
+          "country": "A String", # The country this blog's locale is set to.
+          "variant": "A String", # The language variant this blog is authored in.
+          "language": "A String", # The language this blog is authored in.
+        },
+        "posts": { # The container of posts in this blog.
+          "totalItems": 42, # The count of posts in this blog.
+          "items": [ # The List of Posts for this Blog.
+            {
+              "status": "A String", # Status of the post. Only set for admin-level requests
+              "content": "A String", # The content of the Post. May contain HTML markup.
+              "kind": "blogger#post", # The kind of this entity. Always blogger#post
+              "titleLink": "A String", # The title link URL, similar to atom's related link.
+              "author": { # The author of this Post.
+                "url": "A String", # The URL of the Post creator's Profile page.
+                "image": { # The Post author's avatar.
+                  "url": "A String", # The Post author's avatar URL.
+                },
+                "displayName": "A String", # The display name.
+                "id": "A String", # The identifier of the Post creator.
+              },
+              "replies": { # The container of comments on this Post.
+                "totalItems": "A String", # The count of comments on this post.
+                "items": [ # The List of Comments for this Post.
+                  {
+                    "status": "A String", # The status of the comment (only populated for admin users)
+                    "content": "A String", # The actual content of the comment. May include HTML markup.
+                    "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
+                    "inReplyTo": { # Data about the comment this is in reply to.
+                      "id": "A String", # The identified of the parent of this comment.
+                    },
+                    "author": { # The author of this Comment.
+                      "url": "A String", # The URL of the Comment creator's Profile page.
+                      "image": { # The comment creator's avatar.
+                        "url": "A String", # The comment creator's avatar URL.
+                      },
+                      "displayName": "A String", # The display name.
+                      "id": "A String", # The identifier of the Comment creator.
+                    },
+                    "updated": "A String", # RFC 3339 date-time when this comment was last updated.
+                    "blog": { # Data about the blog containing this comment.
+                      "id": "A String", # The identifier of the blog containing this comment.
+                    },
+                    "published": "A String", # RFC 3339 date-time when this comment was published.
+                    "post": { # Data about the post containing this comment.
+                      "id": "A String", # The identifier of the post containing this comment.
+                    },
+                    "id": "A String", # The identifier for this resource.
+                    "selfLink": "A String", # The API REST URL to fetch this resource from.
+                  },
+                ],
+                "selfLink": "A String", # The URL of the comments on this post.
+              },
+              "labels": [ # The list of labels this Post was tagged with.
+                "A String",
+              ],
+              "customMetaData": "A String", # The JSON meta-data for the Post.
+              "updated": "A String", # RFC 3339 date-time when this Post was last updated.
+              "blog": { # Data about the blog containing this Post.
+                "id": "A String", # The identifier of the Blog that contains this Post.
+              },
+              "url": "A String", # The URL where this Post is displayed.
+              "location": { # The location for geotagged posts.
+                "lat": 3.14, # Location's latitude.
+                "lng": 3.14, # Location's longitude.
+                "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
+                "name": "A String", # Location name.
+              },
+              "published": "A String", # RFC 3339 date-time when this Post was published.
+              "images": [ # Display image for the Post.
+                {
+                  "url": "A String",
+                },
+              ],
+              "title": "A String", # The title of the Post.
+              "id": "A String", # The identifier of this Post.
+              "selfLink": "A String", # The API REST URL to fetch this resource from.
+            },
+          ],
+          "selfLink": "A String", # The URL of the container for posts in this blog.
+        },
+        "customMetaData": "A String", # The JSON custom meta-data for the Blog
+        "updated": "A String", # RFC 3339 date-time when this blog was last updated.
+        "pages": { # The container of pages in this blog.
+          "totalItems": 42, # The count of pages in this blog.
+          "selfLink": "A String", # The URL of the container for pages in this blog.
+        },
+        "url": "A String", # The URL where this blog is published.
+        "published": "A String", # RFC 3339 date-time when this blog was published.
+        "id": "A String", # The identifier for this resource.
+        "selfLink": "A String", # The API REST URL to fetch this resource from.
+        "name": "A String", # The name of this blog. This is displayed as the title.
+      },
+    ],
+    "kind": "blogger#blogList", # The kind of this entity. Always blogger#blogList
+    "blogUserInfos": [ # Admin level list of blog per-user information
+      {
+        "blog": { # The Blog resource.
+          "kind": "blogger#blog", # The kind of this entry. Always blogger#blog
+          "description": "A String", # The description of this blog. This is displayed underneath the title.
+          "locale": { # The locale this Blog is set to.
+            "country": "A String", # The country this blog's locale is set to.
+            "variant": "A String", # The language variant this blog is authored in.
+            "language": "A String", # The language this blog is authored in.
+          },
+          "posts": { # The container of posts in this blog.
+            "totalItems": 42, # The count of posts in this blog.
+            "items": [ # The List of Posts for this Blog.
+              {
+                "status": "A String", # Status of the post. Only set for admin-level requests
+                "content": "A String", # The content of the Post. May contain HTML markup.
+                "kind": "blogger#post", # The kind of this entity. Always blogger#post
+                "titleLink": "A String", # The title link URL, similar to atom's related link.
+                "author": { # The author of this Post.
+                  "url": "A String", # The URL of the Post creator's Profile page.
+                  "image": { # The Post author's avatar.
+                    "url": "A String", # The Post author's avatar URL.
+                  },
+                  "displayName": "A String", # The display name.
+                  "id": "A String", # The identifier of the Post creator.
+                },
+                "replies": { # The container of comments on this Post.
+                  "totalItems": "A String", # The count of comments on this post.
+                  "items": [ # The List of Comments for this Post.
+                    {
+                      "status": "A String", # The status of the comment (only populated for admin users)
+                      "content": "A String", # The actual content of the comment. May include HTML markup.
+                      "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
+                      "inReplyTo": { # Data about the comment this is in reply to.
+                        "id": "A String", # The identified of the parent of this comment.
+                      },
+                      "author": { # The author of this Comment.
+                        "url": "A String", # The URL of the Comment creator's Profile page.
+                        "image": { # The comment creator's avatar.
+                          "url": "A String", # The comment creator's avatar URL.
+                        },
+                        "displayName": "A String", # The display name.
+                        "id": "A String", # The identifier of the Comment creator.
+                      },
+                      "updated": "A String", # RFC 3339 date-time when this comment was last updated.
+                      "blog": { # Data about the blog containing this comment.
+                        "id": "A String", # The identifier of the blog containing this comment.
+                      },
+                      "published": "A String", # RFC 3339 date-time when this comment was published.
+                      "post": { # Data about the post containing this comment.
+                        "id": "A String", # The identifier of the post containing this comment.
+                      },
+                      "id": "A String", # The identifier for this resource.
+                      "selfLink": "A String", # The API REST URL to fetch this resource from.
+                    },
+                  ],
+                  "selfLink": "A String", # The URL of the comments on this post.
+                },
+                "labels": [ # The list of labels this Post was tagged with.
+                  "A String",
+                ],
+                "customMetaData": "A String", # The JSON meta-data for the Post.
+                "updated": "A String", # RFC 3339 date-time when this Post was last updated.
+                "blog": { # Data about the blog containing this Post.
+                  "id": "A String", # The identifier of the Blog that contains this Post.
+                },
+                "url": "A String", # The URL where this Post is displayed.
+                "location": { # The location for geotagged posts.
+                  "lat": 3.14, # Location's latitude.
+                  "lng": 3.14, # Location's longitude.
+                  "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
+                  "name": "A String", # Location name.
+                },
+                "published": "A String", # RFC 3339 date-time when this Post was published.
+                "images": [ # Display image for the Post.
+                  {
+                    "url": "A String",
+                  },
+                ],
+                "title": "A String", # The title of the Post.
+                "id": "A String", # The identifier of this Post.
+                "selfLink": "A String", # The API REST URL to fetch this resource from.
+              },
+            ],
+            "selfLink": "A String", # The URL of the container for posts in this blog.
+          },
+          "customMetaData": "A String", # The JSON custom meta-data for the Blog
+          "updated": "A String", # RFC 3339 date-time when this blog was last updated.
+          "pages": { # The container of pages in this blog.
+            "totalItems": 42, # The count of pages in this blog.
+            "selfLink": "A String", # The URL of the container for pages in this blog.
+          },
+          "url": "A String", # The URL where this blog is published.
+          "published": "A String", # RFC 3339 date-time when this blog was published.
+          "id": "A String", # The identifier for this resource.
+          "selfLink": "A String", # The API REST URL to fetch this resource from.
+          "name": "A String", # The name of this blog. This is displayed as the title.
+        },
+        "kind": "blogger#blogUserInfo", # The kind of this entity. Always blogger#blogUserInfo
+        "blog_user_info": { # Information about a User for the Blog.
+          "hasAdminAccess": True or False, # True if the user has Admin level access to the blog.
+          "kind": "blogger#blogPerUserInfo", # The kind of this entity. Always blogger#blogPerUserInfo
+          "userId": "A String", # ID of the User
+          "role": "A String", # Access permissions that the user has for the blog (ADMIN, AUTHOR, or READER).
+          "photosAlbumKey": "A String", # The Photo Album Key for the user when adding photos to the blog
+          "blogId": "A String", # ID of the Blog resource
+        },
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/blogger_v3.comments.html b/docs/dyn/blogger_v3.comments.html
new file mode 100644
index 0000000..3d9608f
--- /dev/null
+++ b/docs/dyn/blogger_v3.comments.html
@@ -0,0 +1,421 @@
+<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="blogger_v3.html">Blogger API</a> . <a href="blogger_v3.comments.html">comments</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#approve">approve(blogId, postId, commentId)</a></code></p>
+<p class="firstline">Marks a comment as not spam.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(blogId, postId, commentId)</a></code></p>
+<p class="firstline">Delete a comment by id.</p>
+<p class="toc_element">
+  <code><a href="#get">get(blogId, postId, commentId, view=None)</a></code></p>
+<p class="firstline">Gets one comment by id.</p>
+<p class="toc_element">
+  <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>
+<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>
+<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="#markAsSpam">markAsSpam(blogId, postId, commentId)</a></code></p>
+<p class="firstline">Marks a comment as spam.</p>
+<p class="toc_element">
+  <code><a href="#removeContent">removeContent(blogId, postId, commentId)</a></code></p>
+<p class="firstline">Removes the content of a comment.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="approve">approve(blogId, postId, commentId)</code>
+  <pre>Marks a comment as not spam.
+
+Args:
+  blogId: string, The Id of the Blog. (required)
+  postId: string, The ID of the Post. (required)
+  commentId: string, The ID of the comment to mark as not spam. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "status": "A String", # The status of the comment (only populated for admin users)
+    "content": "A String", # The actual content of the comment. May include HTML markup.
+    "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
+    "inReplyTo": { # Data about the comment this is in reply to.
+      "id": "A String", # The identified of the parent of this comment.
+    },
+    "author": { # The author of this Comment.
+      "url": "A String", # The URL of the Comment creator's Profile page.
+      "image": { # The comment creator's avatar.
+        "url": "A String", # The comment creator's avatar URL.
+      },
+      "displayName": "A String", # The display name.
+      "id": "A String", # The identifier of the Comment creator.
+    },
+    "updated": "A String", # RFC 3339 date-time when this comment was last updated.
+    "blog": { # Data about the blog containing this comment.
+      "id": "A String", # The identifier of the blog containing this comment.
+    },
+    "published": "A String", # RFC 3339 date-time when this comment was published.
+    "post": { # Data about the post containing this comment.
+      "id": "A String", # The identifier of the post containing this comment.
+    },
+    "id": "A String", # The identifier for this resource.
+    "selfLink": "A String", # The API REST URL to fetch this resource from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(blogId, postId, commentId)</code>
+  <pre>Delete a comment by id.
+
+Args:
+  blogId: string, The Id of the Blog. (required)
+  postId: string, The ID of the Post. (required)
+  commentId: string, The ID of the comment to delete. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(blogId, postId, commentId, view=None)</code>
+  <pre>Gets one comment by id.
+
+Args:
+  blogId: string, ID of the blog to containing the comment. (required)
+  postId: string, ID of the post to fetch posts from. (required)
+  commentId: string, The ID of the comment to get. (required)
+  view: string, Access level for the requested comment (default: READER). Note that some comments will require elevated permissions, for example comments where the parent posts which is in a draft state, or comments that are pending moderation.
+    Allowed values
+      ADMIN - Admin level detail
+      AUTHOR - Author level detail
+      READER - Admin level detail
+
+Returns:
+  An object of the form:
+
+    {
+    "status": "A String", # The status of the comment (only populated for admin users)
+    "content": "A String", # The actual content of the comment. May include HTML markup.
+    "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
+    "inReplyTo": { # Data about the comment this is in reply to.
+      "id": "A String", # The identified of the parent of this comment.
+    },
+    "author": { # The author of this Comment.
+      "url": "A String", # The URL of the Comment creator's Profile page.
+      "image": { # The comment creator's avatar.
+        "url": "A String", # The comment creator's avatar URL.
+      },
+      "displayName": "A String", # The display name.
+      "id": "A String", # The identifier of the Comment creator.
+    },
+    "updated": "A String", # RFC 3339 date-time when this comment was last updated.
+    "blog": { # Data about the blog containing this comment.
+      "id": "A String", # The identifier of the blog containing this comment.
+    },
+    "published": "A String", # RFC 3339 date-time when this comment was published.
+    "post": { # Data about the post containing this comment.
+      "id": "A String", # The identifier of the post containing this comment.
+    },
+    "id": "A String", # The identifier for this resource.
+    "selfLink": "A String", # The API REST URL to fetch this resource from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(blogId, postId, status=None, startDate=None, fetchBodies=None, endDate=None, pageToken=None, maxResults=None, view=None)</code>
+  <pre>Retrieves the comments for a post, possibly filtered.
+
+Args:
+  blogId: string, ID of the blog to fetch comments from. (required)
+  postId: string, ID of the post to fetch posts 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.
+  fetchBodies: boolean, Whether the body content of the comments is included.
+  endDate: string, Latest date of comment to fetch, a date-time with RFC 3339 formatting.
+  pageToken: string, Continuation token if request is paged.
+  maxResults: integer, Maximum number of comments to include in the result.
+  view: string, Access level with which to view the returned result. Note that some fields require elevated access.
+    Allowed values
+      ADMIN - Admin level detail
+      AUTHOR - Author level detail
+      READER - Reader level detail
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Pagination token to fetch the next page, if one exists.
+    "items": [ # The List of Comments for a Post.
+      {
+        "status": "A String", # The status of the comment (only populated for admin users)
+        "content": "A String", # The actual content of the comment. May include HTML markup.
+        "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
+        "inReplyTo": { # Data about the comment this is in reply to.
+          "id": "A String", # The identified of the parent of this comment.
+        },
+        "author": { # The author of this Comment.
+          "url": "A String", # The URL of the Comment creator's Profile page.
+          "image": { # The comment creator's avatar.
+            "url": "A String", # The comment creator's avatar URL.
+          },
+          "displayName": "A String", # The display name.
+          "id": "A String", # The identifier of the Comment creator.
+        },
+        "updated": "A String", # RFC 3339 date-time when this comment was last updated.
+        "blog": { # Data about the blog containing this comment.
+          "id": "A String", # The identifier of the blog containing this comment.
+        },
+        "published": "A String", # RFC 3339 date-time when this comment was published.
+        "post": { # Data about the post containing this comment.
+          "id": "A String", # The identifier of the post containing this comment.
+        },
+        "id": "A String", # The identifier for this resource.
+        "selfLink": "A String", # The API REST URL to fetch this resource from.
+      },
+    ],
+    "kind": "blogger#commentList", # The kind of this entry. Always blogger#commentList
+    "prevPageToken": "A String", # Pagination token to fetch the previous page, if one exists.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="listByBlog">listByBlog(blogId, 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)
+  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.
+  maxResults: integer, Maximum number of comments to include in the result.
+  fetchBodies: boolean, Whether the body content of the comments is included.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Pagination token to fetch the next page, if one exists.
+    "items": [ # The List of Comments for a Post.
+      {
+        "status": "A String", # The status of the comment (only populated for admin users)
+        "content": "A String", # The actual content of the comment. May include HTML markup.
+        "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
+        "inReplyTo": { # Data about the comment this is in reply to.
+          "id": "A String", # The identified of the parent of this comment.
+        },
+        "author": { # The author of this Comment.
+          "url": "A String", # The URL of the Comment creator's Profile page.
+          "image": { # The comment creator's avatar.
+            "url": "A String", # The comment creator's avatar URL.
+          },
+          "displayName": "A String", # The display name.
+          "id": "A String", # The identifier of the Comment creator.
+        },
+        "updated": "A String", # RFC 3339 date-time when this comment was last updated.
+        "blog": { # Data about the blog containing this comment.
+          "id": "A String", # The identifier of the blog containing this comment.
+        },
+        "published": "A String", # RFC 3339 date-time when this comment was published.
+        "post": { # Data about the post containing this comment.
+          "id": "A String", # The identifier of the post containing this comment.
+        },
+        "id": "A String", # The identifier for this resource.
+        "selfLink": "A String", # The API REST URL to fetch this resource from.
+      },
+    ],
+    "kind": "blogger#commentList", # The kind of this entry. Always blogger#commentList
+    "prevPageToken": "A String", # Pagination token to fetch the previous page, if one exists.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="listByBlog_next">listByBlog_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="markAsSpam">markAsSpam(blogId, postId, commentId)</code>
+  <pre>Marks a comment as spam.
+
+Args:
+  blogId: string, The Id of the Blog. (required)
+  postId: string, The ID of the Post. (required)
+  commentId: string, The ID of the comment to mark as spam. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "status": "A String", # The status of the comment (only populated for admin users)
+    "content": "A String", # The actual content of the comment. May include HTML markup.
+    "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
+    "inReplyTo": { # Data about the comment this is in reply to.
+      "id": "A String", # The identified of the parent of this comment.
+    },
+    "author": { # The author of this Comment.
+      "url": "A String", # The URL of the Comment creator's Profile page.
+      "image": { # The comment creator's avatar.
+        "url": "A String", # The comment creator's avatar URL.
+      },
+      "displayName": "A String", # The display name.
+      "id": "A String", # The identifier of the Comment creator.
+    },
+    "updated": "A String", # RFC 3339 date-time when this comment was last updated.
+    "blog": { # Data about the blog containing this comment.
+      "id": "A String", # The identifier of the blog containing this comment.
+    },
+    "published": "A String", # RFC 3339 date-time when this comment was published.
+    "post": { # Data about the post containing this comment.
+      "id": "A String", # The identifier of the post containing this comment.
+    },
+    "id": "A String", # The identifier for this resource.
+    "selfLink": "A String", # The API REST URL to fetch this resource from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="removeContent">removeContent(blogId, postId, commentId)</code>
+  <pre>Removes the content of a comment.
+
+Args:
+  blogId: string, The Id of the Blog. (required)
+  postId: string, The ID of the Post. (required)
+  commentId: string, The ID of the comment to delete content from. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "status": "A String", # The status of the comment (only populated for admin users)
+    "content": "A String", # The actual content of the comment. May include HTML markup.
+    "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
+    "inReplyTo": { # Data about the comment this is in reply to.
+      "id": "A String", # The identified of the parent of this comment.
+    },
+    "author": { # The author of this Comment.
+      "url": "A String", # The URL of the Comment creator's Profile page.
+      "image": { # The comment creator's avatar.
+        "url": "A String", # The comment creator's avatar URL.
+      },
+      "displayName": "A String", # The display name.
+      "id": "A String", # The identifier of the Comment creator.
+    },
+    "updated": "A String", # RFC 3339 date-time when this comment was last updated.
+    "blog": { # Data about the blog containing this comment.
+      "id": "A String", # The identifier of the blog containing this comment.
+    },
+    "published": "A String", # RFC 3339 date-time when this comment was published.
+    "post": { # Data about the post containing this comment.
+      "id": "A String", # The identifier of the post containing this comment.
+    },
+    "id": "A String", # The identifier for this resource.
+    "selfLink": "A String", # The API REST URL to fetch this resource from.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/blogger_v3.html b/docs/dyn/blogger_v3.html
new file mode 100644
index 0000000..2715ffa
--- /dev/null
+++ b/docs/dyn/blogger_v3.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="blogger_v3.html">Blogger API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="blogger_v3.blogUserInfos.html">blogUserInfos()</a></code>
+</p>
+<p class="firstline">Returns the blogUserInfos Resource.</p>
+
+<p class="toc_element">
+  <code><a href="blogger_v3.blogs.html">blogs()</a></code>
+</p>
+<p class="firstline">Returns the blogs Resource.</p>
+
+<p class="toc_element">
+  <code><a href="blogger_v3.comments.html">comments()</a></code>
+</p>
+<p class="firstline">Returns the comments Resource.</p>
+
+<p class="toc_element">
+  <code><a href="blogger_v3.pageViews.html">pageViews()</a></code>
+</p>
+<p class="firstline">Returns the pageViews Resource.</p>
+
+<p class="toc_element">
+  <code><a href="blogger_v3.pages.html">pages()</a></code>
+</p>
+<p class="firstline">Returns the pages Resource.</p>
+
+<p class="toc_element">
+  <code><a href="blogger_v3.postUserInfos.html">postUserInfos()</a></code>
+</p>
+<p class="firstline">Returns the postUserInfos Resource.</p>
+
+<p class="toc_element">
+  <code><a href="blogger_v3.posts.html">posts()</a></code>
+</p>
+<p class="firstline">Returns the posts Resource.</p>
+
+<p class="toc_element">
+  <code><a href="blogger_v3.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/blogger_v3.pageViews.html b/docs/dyn/blogger_v3.pageViews.html
new file mode 100644
index 0000000..f9ce56a
--- /dev/null
+++ b/docs/dyn/blogger_v3.pageViews.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="blogger_v3.html">Blogger API</a> . <a href="blogger_v3.pageViews.html">pageViews</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(blogId, range=None)</a></code></p>
+<p class="firstline">Retrieve pageview stats for a Blog.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(blogId, range=None)</code>
+  <pre>Retrieve pageview stats for a Blog.
+
+Args:
+  blogId: string, The ID of the blog to get. (required)
+  range: string, A parameter (repeated)
+    Allowed values
+      30DAYS - Page view counts from the last thirty days.
+      7DAYS - Page view counts from the last seven days.
+      all - Total page view counts from all time.
+
+Returns:
+  An object of the form:
+
+    {
+    "counts": [ # The container of posts in this blog.
+      {
+        "count": "A String", # Count of page views for the given time range
+        "timeRange": "A String", # Time range the given count applies to
+      },
+    ],
+    "blogId": "A String", # Blog Id
+    "kind": "blogger#page_views", # The kind of this entry. Always blogger#page_views
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/blogger_v3.pages.html b/docs/dyn/blogger_v3.pages.html
new file mode 100644
index 0000000..b14ffdc
--- /dev/null
+++ b/docs/dyn/blogger_v3.pages.html
@@ -0,0 +1,377 @@
+<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="blogger_v3.html">Blogger API</a> . <a href="blogger_v3.pages.html">pages</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(blogId, pageId)</a></code></p>
+<p class="firstline">Delete a page by id.</p>
+<p class="toc_element">
+  <code><a href="#get">get(blogId, pageId, view=None)</a></code></p>
+<p class="firstline">Gets one blog page by id.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(blogId, body)</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>
+<p class="firstline">Retrieves the pages for a blog, optionally including non-LIVE statuses.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(blogId, pageId, body)</a></code></p>
+<p class="firstline">Update a page. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(blogId, pageId, body)</a></code></p>
+<p class="firstline">Update a page.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(blogId, pageId)</code>
+  <pre>Delete a page by id.
+
+Args:
+  blogId: string, The Id of the Blog. (required)
+  pageId: string, The ID of the Page. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(blogId, pageId, view=None)</code>
+  <pre>Gets one blog page by id.
+
+Args:
+  blogId: string, ID of the blog containing the page. (required)
+  pageId: string, The ID of the page to get. (required)
+  view: string, A parameter
+    Allowed values
+      ADMIN - Admin level detail
+      AUTHOR - Author level detail
+      READER - Reader level detail
+
+Returns:
+  An object of the form:
+
+    {
+      "status": "A String", # The status of the page for admin resources (either LIVE or DRAFT).
+      "content": "A String", # The body content of this Page, in HTML.
+      "kind": "blogger#page", # The kind of this entity. Always blogger#page
+      "author": { # The author of this Page.
+        "url": "A String", # The URL of the Page creator's Profile page.
+        "image": { # The page author's avatar.
+          "url": "A String", # The page author's avatar URL.
+        },
+        "displayName": "A String", # The display name.
+        "id": "A String", # The identifier of the Page creator.
+      },
+      "url": "A String", # The URL that this Page is displayed at.
+      "title": "A String", # The title of this entity. This is the name displayed in the Admin user interface.
+      "updated": "A String", # RFC 3339 date-time when this Page was last updated.
+      "blog": { # Data about the blog containing this Page.
+        "id": "A String", # The identifier of the blog containing this page.
+      },
+      "published": "A String", # RFC 3339 date-time when this Page was published.
+      "id": "A String", # The identifier for this resource.
+      "selfLink": "A String", # The API REST URL to fetch this resource from.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(blogId, body)</code>
+  <pre>Add a page.
+
+Args:
+  blogId: string, ID of the blog to add the page to. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "status": "A String", # The status of the page for admin resources (either LIVE or DRAFT).
+    "content": "A String", # The body content of this Page, in HTML.
+    "kind": "blogger#page", # The kind of this entity. Always blogger#page
+    "author": { # The author of this Page.
+      "url": "A String", # The URL of the Page creator's Profile page.
+      "image": { # The page author's avatar.
+        "url": "A String", # The page author's avatar URL.
+      },
+      "displayName": "A String", # The display name.
+      "id": "A String", # The identifier of the Page creator.
+    },
+    "url": "A String", # The URL that this Page is displayed at.
+    "title": "A String", # The title of this entity. This is the name displayed in the Admin user interface.
+    "updated": "A String", # RFC 3339 date-time when this Page was last updated.
+    "blog": { # Data about the blog containing this Page.
+      "id": "A String", # The identifier of the blog containing this page.
+    },
+    "published": "A String", # RFC 3339 date-time when this Page was published.
+    "id": "A String", # The identifier for this resource.
+    "selfLink": "A String", # The API REST URL to fetch this resource from.
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "status": "A String", # The status of the page for admin resources (either LIVE or DRAFT).
+      "content": "A String", # The body content of this Page, in HTML.
+      "kind": "blogger#page", # The kind of this entity. Always blogger#page
+      "author": { # The author of this Page.
+        "url": "A String", # The URL of the Page creator's Profile page.
+        "image": { # The page author's avatar.
+          "url": "A String", # The page author's avatar URL.
+        },
+        "displayName": "A String", # The display name.
+        "id": "A String", # The identifier of the Page creator.
+      },
+      "url": "A String", # The URL that this Page is displayed at.
+      "title": "A String", # The title of this entity. This is the name displayed in the Admin user interface.
+      "updated": "A String", # RFC 3339 date-time when this Page was last updated.
+      "blog": { # Data about the blog containing this Page.
+        "id": "A String", # The identifier of the blog containing this page.
+      },
+      "published": "A String", # RFC 3339 date-time when this Page was published.
+      "id": "A String", # The identifier for this resource.
+      "selfLink": "A String", # The API REST URL to fetch this resource from.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(blogId, status=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)
+  status: string, A parameter (repeated)
+    Allowed values
+      draft - Draft (unpublished) Pages
+      live - Pages that are publicly visible
+  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
+      ADMIN - Admin level detail
+      AUTHOR - Author level detail
+      READER - Reader level detail
+
+Returns:
+  An object of the form:
+
+    {
+    "items": [ # The list of Pages for a Blog.
+      {
+          "status": "A String", # The status of the page for admin resources (either LIVE or DRAFT).
+          "content": "A String", # The body content of this Page, in HTML.
+          "kind": "blogger#page", # The kind of this entity. Always blogger#page
+          "author": { # The author of this Page.
+            "url": "A String", # The URL of the Page creator's Profile page.
+            "image": { # The page author's avatar.
+              "url": "A String", # The page author's avatar URL.
+            },
+            "displayName": "A String", # The display name.
+            "id": "A String", # The identifier of the Page creator.
+          },
+          "url": "A String", # The URL that this Page is displayed at.
+          "title": "A String", # The title of this entity. This is the name displayed in the Admin user interface.
+          "updated": "A String", # RFC 3339 date-time when this Page was last updated.
+          "blog": { # Data about the blog containing this Page.
+            "id": "A String", # The identifier of the blog containing this page.
+          },
+          "published": "A String", # RFC 3339 date-time when this Page was published.
+          "id": "A String", # The identifier for this resource.
+          "selfLink": "A String", # The API REST URL to fetch this resource from.
+        },
+    ],
+    "kind": "blogger#pageList", # The kind of this entity. Always blogger#pageList
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(blogId, pageId, body)</code>
+  <pre>Update a page. This method supports patch semantics.
+
+Args:
+  blogId: string, The ID of the Blog. (required)
+  pageId: string, The ID of the Page. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "status": "A String", # The status of the page for admin resources (either LIVE or DRAFT).
+    "content": "A String", # The body content of this Page, in HTML.
+    "kind": "blogger#page", # The kind of this entity. Always blogger#page
+    "author": { # The author of this Page.
+      "url": "A String", # The URL of the Page creator's Profile page.
+      "image": { # The page author's avatar.
+        "url": "A String", # The page author's avatar URL.
+      },
+      "displayName": "A String", # The display name.
+      "id": "A String", # The identifier of the Page creator.
+    },
+    "url": "A String", # The URL that this Page is displayed at.
+    "title": "A String", # The title of this entity. This is the name displayed in the Admin user interface.
+    "updated": "A String", # RFC 3339 date-time when this Page was last updated.
+    "blog": { # Data about the blog containing this Page.
+      "id": "A String", # The identifier of the blog containing this page.
+    },
+    "published": "A String", # RFC 3339 date-time when this Page was published.
+    "id": "A String", # The identifier for this resource.
+    "selfLink": "A String", # The API REST URL to fetch this resource from.
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "status": "A String", # The status of the page for admin resources (either LIVE or DRAFT).
+      "content": "A String", # The body content of this Page, in HTML.
+      "kind": "blogger#page", # The kind of this entity. Always blogger#page
+      "author": { # The author of this Page.
+        "url": "A String", # The URL of the Page creator's Profile page.
+        "image": { # The page author's avatar.
+          "url": "A String", # The page author's avatar URL.
+        },
+        "displayName": "A String", # The display name.
+        "id": "A String", # The identifier of the Page creator.
+      },
+      "url": "A String", # The URL that this Page is displayed at.
+      "title": "A String", # The title of this entity. This is the name displayed in the Admin user interface.
+      "updated": "A String", # RFC 3339 date-time when this Page was last updated.
+      "blog": { # Data about the blog containing this Page.
+        "id": "A String", # The identifier of the blog containing this page.
+      },
+      "published": "A String", # RFC 3339 date-time when this Page was published.
+      "id": "A String", # The identifier for this resource.
+      "selfLink": "A String", # The API REST URL to fetch this resource from.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(blogId, pageId, body)</code>
+  <pre>Update a page.
+
+Args:
+  blogId: string, The ID of the Blog. (required)
+  pageId: string, The ID of the Page. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "status": "A String", # The status of the page for admin resources (either LIVE or DRAFT).
+    "content": "A String", # The body content of this Page, in HTML.
+    "kind": "blogger#page", # The kind of this entity. Always blogger#page
+    "author": { # The author of this Page.
+      "url": "A String", # The URL of the Page creator's Profile page.
+      "image": { # The page author's avatar.
+        "url": "A String", # The page author's avatar URL.
+      },
+      "displayName": "A String", # The display name.
+      "id": "A String", # The identifier of the Page creator.
+    },
+    "url": "A String", # The URL that this Page is displayed at.
+    "title": "A String", # The title of this entity. This is the name displayed in the Admin user interface.
+    "updated": "A String", # RFC 3339 date-time when this Page was last updated.
+    "blog": { # Data about the blog containing this Page.
+      "id": "A String", # The identifier of the blog containing this page.
+    },
+    "published": "A String", # RFC 3339 date-time when this Page was published.
+    "id": "A String", # The identifier for this resource.
+    "selfLink": "A String", # The API REST URL to fetch this resource from.
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "status": "A String", # The status of the page for admin resources (either LIVE or DRAFT).
+      "content": "A String", # The body content of this Page, in HTML.
+      "kind": "blogger#page", # The kind of this entity. Always blogger#page
+      "author": { # The author of this Page.
+        "url": "A String", # The URL of the Page creator's Profile page.
+        "image": { # The page author's avatar.
+          "url": "A String", # The page author's avatar URL.
+        },
+        "displayName": "A String", # The display name.
+        "id": "A String", # The identifier of the Page creator.
+      },
+      "url": "A String", # The URL that this Page is displayed at.
+      "title": "A String", # The title of this entity. This is the name displayed in the Admin user interface.
+      "updated": "A String", # RFC 3339 date-time when this Page was last updated.
+      "blog": { # Data about the blog containing this Page.
+        "id": "A String", # The identifier of the blog containing this page.
+      },
+      "published": "A String", # RFC 3339 date-time when this Page was published.
+      "id": "A String", # The identifier for this resource.
+      "selfLink": "A String", # The API REST URL to fetch this resource from.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/blogger_v3.postUserInfos.html b/docs/dyn/blogger_v3.postUserInfos.html
new file mode 100644
index 0000000..7b1d986
--- /dev/null
+++ b/docs/dyn/blogger_v3.postUserInfos.html
@@ -0,0 +1,315 @@
+<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="blogger_v3.html">Blogger API</a> . <a href="blogger_v3.postUserInfos.html">postUserInfos</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(userId, blogId, postId, maxComments=None)</a></code></p>
+<p class="firstline">Gets one post and user info pair, by post id and user id. The post user info contains per-user information about the post, such as access rights, specific to the user.</p>
+<p class="toc_element">
+  <code><a href="#list">list(userId, blogId, orderBy=None, startDate=None, endDate=None, labels=None, pageToken=None, status=None, maxResults=None, fetchBodies=None, view=None)</a></code></p>
+<p class="firstline">Retrieves a list of post and post user info pairs, possibly filtered. The post user info contains per-user information about the post, such as access rights, specific to the user.</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(userId, blogId, postId, maxComments=None)</code>
+  <pre>Gets one post and user info pair, by post id and user id. The post user info contains per-user information about the post, such as access rights, specific to the user.
+
+Args:
+  userId: string, ID of the user for the per-user information to be fetched. Either the word 'self' (sans quote marks) or the user's profile identifier. (required)
+  blogId: string, The ID of the blog. (required)
+  postId: string, The ID of the post to get. (required)
+  maxComments: integer, Maximum number of comments to pull back on a post.
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "blogger#postUserInfo", # The kind of this entity. Always blogger#postUserInfo
+    "post": { # The Post resource.
+      "status": "A String", # Status of the post. Only set for admin-level requests
+      "content": "A String", # The content of the Post. May contain HTML markup.
+      "kind": "blogger#post", # The kind of this entity. Always blogger#post
+      "titleLink": "A String", # The title link URL, similar to atom's related link.
+      "author": { # The author of this Post.
+        "url": "A String", # The URL of the Post creator's Profile page.
+        "image": { # The Post author's avatar.
+          "url": "A String", # The Post author's avatar URL.
+        },
+        "displayName": "A String", # The display name.
+        "id": "A String", # The identifier of the Post creator.
+      },
+      "replies": { # The container of comments on this Post.
+        "totalItems": "A String", # The count of comments on this post.
+        "items": [ # The List of Comments for this Post.
+          {
+            "status": "A String", # The status of the comment (only populated for admin users)
+            "content": "A String", # The actual content of the comment. May include HTML markup.
+            "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
+            "inReplyTo": { # Data about the comment this is in reply to.
+              "id": "A String", # The identified of the parent of this comment.
+            },
+            "author": { # The author of this Comment.
+              "url": "A String", # The URL of the Comment creator's Profile page.
+              "image": { # The comment creator's avatar.
+                "url": "A String", # The comment creator's avatar URL.
+              },
+              "displayName": "A String", # The display name.
+              "id": "A String", # The identifier of the Comment creator.
+            },
+            "updated": "A String", # RFC 3339 date-time when this comment was last updated.
+            "blog": { # Data about the blog containing this comment.
+              "id": "A String", # The identifier of the blog containing this comment.
+            },
+            "published": "A String", # RFC 3339 date-time when this comment was published.
+            "post": { # Data about the post containing this comment.
+              "id": "A String", # The identifier of the post containing this comment.
+            },
+            "id": "A String", # The identifier for this resource.
+            "selfLink": "A String", # The API REST URL to fetch this resource from.
+          },
+        ],
+        "selfLink": "A String", # The URL of the comments on this post.
+      },
+      "labels": [ # The list of labels this Post was tagged with.
+        "A String",
+      ],
+      "customMetaData": "A String", # The JSON meta-data for the Post.
+      "updated": "A String", # RFC 3339 date-time when this Post was last updated.
+      "blog": { # Data about the blog containing this Post.
+        "id": "A String", # The identifier of the Blog that contains this Post.
+      },
+      "url": "A String", # The URL where this Post is displayed.
+      "location": { # The location for geotagged posts.
+        "lat": 3.14, # Location's latitude.
+        "lng": 3.14, # Location's longitude.
+        "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
+        "name": "A String", # Location name.
+      },
+      "published": "A String", # RFC 3339 date-time when this Post was published.
+      "images": [ # Display image for the Post.
+        {
+          "url": "A String",
+        },
+      ],
+      "title": "A String", # The title of the Post.
+      "id": "A String", # The identifier of this Post.
+      "selfLink": "A String", # The API REST URL to fetch this resource from.
+    },
+    "post_user_info": { # Information about a User for the Post.
+      "kind": "blogger#postPerUserInfo", # The kind of this entity. Always blogger#postPerUserInfo
+      "postId": "A String", # ID of the Post resource.
+      "userId": "A String", # ID of the User.
+      "blogId": "A String", # ID of the Blog that the post resource belongs to.
+      "hasEditAccess": True or False, # True if the user has Author level access to the post.
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(userId, blogId, orderBy=None, startDate=None, endDate=None, labels=None, pageToken=None, status=None, maxResults=None, fetchBodies=None, view=None)</code>
+  <pre>Retrieves a list of post and post user info pairs, possibly filtered. The post user info contains per-user information about the post, such as access rights, specific to the user.
+
+Args:
+  userId: string, ID of the user for the per-user information to be fetched. Either the word 'self' (sans quote marks) or the user's profile identifier. (required)
+  blogId: string, ID of the blog to fetch posts from. (required)
+  orderBy: string, Sort order applied to search results. Default is published.
+    Allowed values
+      published - Order by the date the post was published
+      updated - Order by the date the post was last updated
+  startDate: string, Earliest post date to fetch, a date-time with RFC 3339 formatting.
+  endDate: string, Latest post date to fetch, a date-time with RFC 3339 formatting.
+  labels: string, Comma-separated list of labels to search for.
+  pageToken: string, Continuation token if the request is paged.
+  status: string, A parameter (repeated)
+    Allowed values
+      draft - Draft posts
+      live - Published posts
+      scheduled - Posts that are scheduled to publish in future.
+  maxResults: integer, Maximum number of posts to fetch.
+  fetchBodies: boolean, Whether the body content of posts is included. Default is false.
+  view: string, Access level with which to view the returned result. Note that some fields require elevated access.
+    Allowed values
+      ADMIN - Admin level detail
+      AUTHOR - Author level detail
+      READER - Reader level detail
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Pagination token to fetch the next page, if one exists.
+    "items": [ # The list of Posts with User information for the post, for this Blog.
+      {
+        "kind": "blogger#postUserInfo", # The kind of this entity. Always blogger#postUserInfo
+        "post": { # The Post resource.
+          "status": "A String", # Status of the post. Only set for admin-level requests
+          "content": "A String", # The content of the Post. May contain HTML markup.
+          "kind": "blogger#post", # The kind of this entity. Always blogger#post
+          "titleLink": "A String", # The title link URL, similar to atom's related link.
+          "author": { # The author of this Post.
+            "url": "A String", # The URL of the Post creator's Profile page.
+            "image": { # The Post author's avatar.
+              "url": "A String", # The Post author's avatar URL.
+            },
+            "displayName": "A String", # The display name.
+            "id": "A String", # The identifier of the Post creator.
+          },
+          "replies": { # The container of comments on this Post.
+            "totalItems": "A String", # The count of comments on this post.
+            "items": [ # The List of Comments for this Post.
+              {
+                "status": "A String", # The status of the comment (only populated for admin users)
+                "content": "A String", # The actual content of the comment. May include HTML markup.
+                "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
+                "inReplyTo": { # Data about the comment this is in reply to.
+                  "id": "A String", # The identified of the parent of this comment.
+                },
+                "author": { # The author of this Comment.
+                  "url": "A String", # The URL of the Comment creator's Profile page.
+                  "image": { # The comment creator's avatar.
+                    "url": "A String", # The comment creator's avatar URL.
+                  },
+                  "displayName": "A String", # The display name.
+                  "id": "A String", # The identifier of the Comment creator.
+                },
+                "updated": "A String", # RFC 3339 date-time when this comment was last updated.
+                "blog": { # Data about the blog containing this comment.
+                  "id": "A String", # The identifier of the blog containing this comment.
+                },
+                "published": "A String", # RFC 3339 date-time when this comment was published.
+                "post": { # Data about the post containing this comment.
+                  "id": "A String", # The identifier of the post containing this comment.
+                },
+                "id": "A String", # The identifier for this resource.
+                "selfLink": "A String", # The API REST URL to fetch this resource from.
+              },
+            ],
+            "selfLink": "A String", # The URL of the comments on this post.
+          },
+          "labels": [ # The list of labels this Post was tagged with.
+            "A String",
+          ],
+          "customMetaData": "A String", # The JSON meta-data for the Post.
+          "updated": "A String", # RFC 3339 date-time when this Post was last updated.
+          "blog": { # Data about the blog containing this Post.
+            "id": "A String", # The identifier of the Blog that contains this Post.
+          },
+          "url": "A String", # The URL where this Post is displayed.
+          "location": { # The location for geotagged posts.
+            "lat": 3.14, # Location's latitude.
+            "lng": 3.14, # Location's longitude.
+            "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
+            "name": "A String", # Location name.
+          },
+          "published": "A String", # RFC 3339 date-time when this Post was published.
+          "images": [ # Display image for the Post.
+            {
+              "url": "A String",
+            },
+          ],
+          "title": "A String", # The title of the Post.
+          "id": "A String", # The identifier of this Post.
+          "selfLink": "A String", # The API REST URL to fetch this resource from.
+        },
+        "post_user_info": { # Information about a User for the Post.
+          "kind": "blogger#postPerUserInfo", # The kind of this entity. Always blogger#postPerUserInfo
+          "postId": "A String", # ID of the Post resource.
+          "userId": "A String", # ID of the User.
+          "blogId": "A String", # ID of the Blog that the post resource belongs to.
+          "hasEditAccess": True or False, # True if the user has Author level access to the post.
+        },
+      },
+    ],
+    "kind": "blogger#postUserInfosList", # The kind of this entity. Always blogger#postList
+  }</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/blogger_v3.posts.html b/docs/dyn/blogger_v3.posts.html
new file mode 100644
index 0000000..d4ffe1c
--- /dev/null
+++ b/docs/dyn/blogger_v3.posts.html
@@ -0,0 +1,1168 @@
+<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="blogger_v3.html">Blogger API</a> . <a href="blogger_v3.posts.html">posts</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(blogId, postId)</a></code></p>
+<p class="firstline">Delete a post by id.</p>
+<p class="toc_element">
+  <code><a href="#get">get(blogId, postId, maxComments=None, fetchImages=None, fetchBody=None, view=None)</a></code></p>
+<p class="firstline">Get a post by id.</p>
+<p class="toc_element">
+  <code><a href="#getByPath">getByPath(blogId, path, maxComments=None, view=None)</a></code></p>
+<p class="firstline">Retrieve a Post by Path.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(blogId, body, isDraft=None, fetchImages=None, fetchBody=None)</a></code></p>
+<p class="firstline">Add a post.</p>
+<p class="toc_element">
+  <code><a href="#list">list(blogId, orderBy=None, startDate=None, endDate=None, labels=None, pageToken=None, status=None, maxResults=None, fetchBodies=None, fetchImages=None, view=None)</a></code></p>
+<p class="firstline">Retrieves a list of posts, 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(blogId, postId, body, maxComments=None, revert=None, publish=None, fetchImages=None, fetchBody=None)</a></code></p>
+<p class="firstline">Update a post. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#publish">publish(blogId, postId, publishDate=None)</a></code></p>
+<p class="firstline">Publish a draft post.</p>
+<p class="toc_element">
+  <code><a href="#revert">revert(blogId, postId)</a></code></p>
+<p class="firstline">Revert a published or scheduled post to draft state.</p>
+<p class="toc_element">
+  <code><a href="#search">search(blogId, q, orderBy=None, fetchBodies=None)</a></code></p>
+<p class="firstline">Search for a post.</p>
+<p class="toc_element">
+  <code><a href="#update">update(blogId, postId, body, maxComments=None, revert=None, publish=None, fetchImages=None, fetchBody=None)</a></code></p>
+<p class="firstline">Update a post.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(blogId, postId)</code>
+  <pre>Delete a post by id.
+
+Args:
+  blogId: string, The Id of the Blog. (required)
+  postId: string, The ID of the Post. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(blogId, postId, maxComments=None, fetchImages=None, fetchBody=None, view=None)</code>
+  <pre>Get a post by id.
+
+Args:
+  blogId: string, ID of the blog to fetch the post from. (required)
+  postId: string, The ID of the post (required)
+  maxComments: integer, Maximum number of comments to pull back on a post.
+  fetchImages: boolean, Whether image URL metadata for each post is included (default: false).
+  fetchBody: boolean, Whether the body content of the post is included (default: true). This should be set to false when the post bodies are not required, to help minimize traffic.
+  view: string, Access level with which to view the returned result. Note that some fields require elevated access.
+    Allowed values
+      ADMIN - Admin level detail
+      AUTHOR - Author level detail
+      READER - Reader level detail
+
+Returns:
+  An object of the form:
+
+    {
+    "status": "A String", # Status of the post. Only set for admin-level requests
+    "content": "A String", # The content of the Post. May contain HTML markup.
+    "kind": "blogger#post", # The kind of this entity. Always blogger#post
+    "titleLink": "A String", # The title link URL, similar to atom's related link.
+    "author": { # The author of this Post.
+      "url": "A String", # The URL of the Post creator's Profile page.
+      "image": { # The Post author's avatar.
+        "url": "A String", # The Post author's avatar URL.
+      },
+      "displayName": "A String", # The display name.
+      "id": "A String", # The identifier of the Post creator.
+    },
+    "replies": { # The container of comments on this Post.
+      "totalItems": "A String", # The count of comments on this post.
+      "items": [ # The List of Comments for this Post.
+        {
+          "status": "A String", # The status of the comment (only populated for admin users)
+          "content": "A String", # The actual content of the comment. May include HTML markup.
+          "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
+          "inReplyTo": { # Data about the comment this is in reply to.
+            "id": "A String", # The identified of the parent of this comment.
+          },
+          "author": { # The author of this Comment.
+            "url": "A String", # The URL of the Comment creator's Profile page.
+            "image": { # The comment creator's avatar.
+              "url": "A String", # The comment creator's avatar URL.
+            },
+            "displayName": "A String", # The display name.
+            "id": "A String", # The identifier of the Comment creator.
+          },
+          "updated": "A String", # RFC 3339 date-time when this comment was last updated.
+          "blog": { # Data about the blog containing this comment.
+            "id": "A String", # The identifier of the blog containing this comment.
+          },
+          "published": "A String", # RFC 3339 date-time when this comment was published.
+          "post": { # Data about the post containing this comment.
+            "id": "A String", # The identifier of the post containing this comment.
+          },
+          "id": "A String", # The identifier for this resource.
+          "selfLink": "A String", # The API REST URL to fetch this resource from.
+        },
+      ],
+      "selfLink": "A String", # The URL of the comments on this post.
+    },
+    "labels": [ # The list of labels this Post was tagged with.
+      "A String",
+    ],
+    "customMetaData": "A String", # The JSON meta-data for the Post.
+    "updated": "A String", # RFC 3339 date-time when this Post was last updated.
+    "blog": { # Data about the blog containing this Post.
+      "id": "A String", # The identifier of the Blog that contains this Post.
+    },
+    "url": "A String", # The URL where this Post is displayed.
+    "location": { # The location for geotagged posts.
+      "lat": 3.14, # Location's latitude.
+      "lng": 3.14, # Location's longitude.
+      "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
+      "name": "A String", # Location name.
+    },
+    "published": "A String", # RFC 3339 date-time when this Post was published.
+    "images": [ # Display image for the Post.
+      {
+        "url": "A String",
+      },
+    ],
+    "title": "A String", # The title of the Post.
+    "id": "A String", # The identifier of this Post.
+    "selfLink": "A String", # The API REST URL to fetch this resource from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getByPath">getByPath(blogId, path, maxComments=None, view=None)</code>
+  <pre>Retrieve a Post by Path.
+
+Args:
+  blogId: string, ID of the blog to fetch the post from. (required)
+  path: string, Path of the Post to retrieve. (required)
+  maxComments: integer, Maximum number of comments to pull back on a post.
+  view: string, Access level with which to view the returned result. Note that some fields require elevated access.
+    Allowed values
+      ADMIN - Admin level detail
+      AUTHOR - Author level detail
+      READER - Reader level detail
+
+Returns:
+  An object of the form:
+
+    {
+    "status": "A String", # Status of the post. Only set for admin-level requests
+    "content": "A String", # The content of the Post. May contain HTML markup.
+    "kind": "blogger#post", # The kind of this entity. Always blogger#post
+    "titleLink": "A String", # The title link URL, similar to atom's related link.
+    "author": { # The author of this Post.
+      "url": "A String", # The URL of the Post creator's Profile page.
+      "image": { # The Post author's avatar.
+        "url": "A String", # The Post author's avatar URL.
+      },
+      "displayName": "A String", # The display name.
+      "id": "A String", # The identifier of the Post creator.
+    },
+    "replies": { # The container of comments on this Post.
+      "totalItems": "A String", # The count of comments on this post.
+      "items": [ # The List of Comments for this Post.
+        {
+          "status": "A String", # The status of the comment (only populated for admin users)
+          "content": "A String", # The actual content of the comment. May include HTML markup.
+          "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
+          "inReplyTo": { # Data about the comment this is in reply to.
+            "id": "A String", # The identified of the parent of this comment.
+          },
+          "author": { # The author of this Comment.
+            "url": "A String", # The URL of the Comment creator's Profile page.
+            "image": { # The comment creator's avatar.
+              "url": "A String", # The comment creator's avatar URL.
+            },
+            "displayName": "A String", # The display name.
+            "id": "A String", # The identifier of the Comment creator.
+          },
+          "updated": "A String", # RFC 3339 date-time when this comment was last updated.
+          "blog": { # Data about the blog containing this comment.
+            "id": "A String", # The identifier of the blog containing this comment.
+          },
+          "published": "A String", # RFC 3339 date-time when this comment was published.
+          "post": { # Data about the post containing this comment.
+            "id": "A String", # The identifier of the post containing this comment.
+          },
+          "id": "A String", # The identifier for this resource.
+          "selfLink": "A String", # The API REST URL to fetch this resource from.
+        },
+      ],
+      "selfLink": "A String", # The URL of the comments on this post.
+    },
+    "labels": [ # The list of labels this Post was tagged with.
+      "A String",
+    ],
+    "customMetaData": "A String", # The JSON meta-data for the Post.
+    "updated": "A String", # RFC 3339 date-time when this Post was last updated.
+    "blog": { # Data about the blog containing this Post.
+      "id": "A String", # The identifier of the Blog that contains this Post.
+    },
+    "url": "A String", # The URL where this Post is displayed.
+    "location": { # The location for geotagged posts.
+      "lat": 3.14, # Location's latitude.
+      "lng": 3.14, # Location's longitude.
+      "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
+      "name": "A String", # Location name.
+    },
+    "published": "A String", # RFC 3339 date-time when this Post was published.
+    "images": [ # Display image for the Post.
+      {
+        "url": "A String",
+      },
+    ],
+    "title": "A String", # The title of the Post.
+    "id": "A String", # The identifier of this Post.
+    "selfLink": "A String", # The API REST URL to fetch this resource from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(blogId, body, isDraft=None, fetchImages=None, fetchBody=None)</code>
+  <pre>Add a post.
+
+Args:
+  blogId: string, ID of the blog to add the post to. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+  "status": "A String", # Status of the post. Only set for admin-level requests
+  "content": "A String", # The content of the Post. May contain HTML markup.
+  "kind": "blogger#post", # The kind of this entity. Always blogger#post
+  "titleLink": "A String", # The title link URL, similar to atom's related link.
+  "author": { # The author of this Post.
+    "url": "A String", # The URL of the Post creator's Profile page.
+    "image": { # The Post author's avatar.
+      "url": "A String", # The Post author's avatar URL.
+    },
+    "displayName": "A String", # The display name.
+    "id": "A String", # The identifier of the Post creator.
+  },
+  "replies": { # The container of comments on this Post.
+    "totalItems": "A String", # The count of comments on this post.
+    "items": [ # The List of Comments for this Post.
+      {
+        "status": "A String", # The status of the comment (only populated for admin users)
+        "content": "A String", # The actual content of the comment. May include HTML markup.
+        "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
+        "inReplyTo": { # Data about the comment this is in reply to.
+          "id": "A String", # The identified of the parent of this comment.
+        },
+        "author": { # The author of this Comment.
+          "url": "A String", # The URL of the Comment creator's Profile page.
+          "image": { # The comment creator's avatar.
+            "url": "A String", # The comment creator's avatar URL.
+          },
+          "displayName": "A String", # The display name.
+          "id": "A String", # The identifier of the Comment creator.
+        },
+        "updated": "A String", # RFC 3339 date-time when this comment was last updated.
+        "blog": { # Data about the blog containing this comment.
+          "id": "A String", # The identifier of the blog containing this comment.
+        },
+        "published": "A String", # RFC 3339 date-time when this comment was published.
+        "post": { # Data about the post containing this comment.
+          "id": "A String", # The identifier of the post containing this comment.
+        },
+        "id": "A String", # The identifier for this resource.
+        "selfLink": "A String", # The API REST URL to fetch this resource from.
+      },
+    ],
+    "selfLink": "A String", # The URL of the comments on this post.
+  },
+  "labels": [ # The list of labels this Post was tagged with.
+    "A String",
+  ],
+  "customMetaData": "A String", # The JSON meta-data for the Post.
+  "updated": "A String", # RFC 3339 date-time when this Post was last updated.
+  "blog": { # Data about the blog containing this Post.
+    "id": "A String", # The identifier of the Blog that contains this Post.
+  },
+  "url": "A String", # The URL where this Post is displayed.
+  "location": { # The location for geotagged posts.
+    "lat": 3.14, # Location's latitude.
+    "lng": 3.14, # Location's longitude.
+    "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
+    "name": "A String", # Location name.
+  },
+  "published": "A String", # RFC 3339 date-time when this Post was published.
+  "images": [ # Display image for the Post.
+    {
+      "url": "A String",
+    },
+  ],
+  "title": "A String", # The title of the Post.
+  "id": "A String", # The identifier of this Post.
+  "selfLink": "A String", # The API REST URL to fetch this resource from.
+}
+
+  isDraft: boolean, Whether to create the post as a draft (default: false).
+  fetchImages: boolean, Whether image URL metadata for each post is included in the returned result (default: false).
+  fetchBody: boolean, Whether the body content of the post is included with the result (default: true).
+
+Returns:
+  An object of the form:
+
+    {
+    "status": "A String", # Status of the post. Only set for admin-level requests
+    "content": "A String", # The content of the Post. May contain HTML markup.
+    "kind": "blogger#post", # The kind of this entity. Always blogger#post
+    "titleLink": "A String", # The title link URL, similar to atom's related link.
+    "author": { # The author of this Post.
+      "url": "A String", # The URL of the Post creator's Profile page.
+      "image": { # The Post author's avatar.
+        "url": "A String", # The Post author's avatar URL.
+      },
+      "displayName": "A String", # The display name.
+      "id": "A String", # The identifier of the Post creator.
+    },
+    "replies": { # The container of comments on this Post.
+      "totalItems": "A String", # The count of comments on this post.
+      "items": [ # The List of Comments for this Post.
+        {
+          "status": "A String", # The status of the comment (only populated for admin users)
+          "content": "A String", # The actual content of the comment. May include HTML markup.
+          "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
+          "inReplyTo": { # Data about the comment this is in reply to.
+            "id": "A String", # The identified of the parent of this comment.
+          },
+          "author": { # The author of this Comment.
+            "url": "A String", # The URL of the Comment creator's Profile page.
+            "image": { # The comment creator's avatar.
+              "url": "A String", # The comment creator's avatar URL.
+            },
+            "displayName": "A String", # The display name.
+            "id": "A String", # The identifier of the Comment creator.
+          },
+          "updated": "A String", # RFC 3339 date-time when this comment was last updated.
+          "blog": { # Data about the blog containing this comment.
+            "id": "A String", # The identifier of the blog containing this comment.
+          },
+          "published": "A String", # RFC 3339 date-time when this comment was published.
+          "post": { # Data about the post containing this comment.
+            "id": "A String", # The identifier of the post containing this comment.
+          },
+          "id": "A String", # The identifier for this resource.
+          "selfLink": "A String", # The API REST URL to fetch this resource from.
+        },
+      ],
+      "selfLink": "A String", # The URL of the comments on this post.
+    },
+    "labels": [ # The list of labels this Post was tagged with.
+      "A String",
+    ],
+    "customMetaData": "A String", # The JSON meta-data for the Post.
+    "updated": "A String", # RFC 3339 date-time when this Post was last updated.
+    "blog": { # Data about the blog containing this Post.
+      "id": "A String", # The identifier of the Blog that contains this Post.
+    },
+    "url": "A String", # The URL where this Post is displayed.
+    "location": { # The location for geotagged posts.
+      "lat": 3.14, # Location's latitude.
+      "lng": 3.14, # Location's longitude.
+      "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
+      "name": "A String", # Location name.
+    },
+    "published": "A String", # RFC 3339 date-time when this Post was published.
+    "images": [ # Display image for the Post.
+      {
+        "url": "A String",
+      },
+    ],
+    "title": "A String", # The title of the Post.
+    "id": "A String", # The identifier of this Post.
+    "selfLink": "A String", # The API REST URL to fetch this resource from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(blogId, orderBy=None, startDate=None, endDate=None, labels=None, pageToken=None, status=None, maxResults=None, fetchBodies=None, fetchImages=None, view=None)</code>
+  <pre>Retrieves a list of posts, possibly filtered.
+
+Args:
+  blogId: string, ID of the blog to fetch posts from. (required)
+  orderBy: string, Sort search results
+    Allowed values
+      published - Order by the date the post was published
+      updated - Order by the date the post was last updated
+  startDate: string, Earliest post date to fetch, a date-time with RFC 3339 formatting.
+  endDate: string, Latest post date to fetch, a date-time with RFC 3339 formatting.
+  labels: string, Comma-separated list of labels to search for.
+  pageToken: string, Continuation token if the request is paged.
+  status: string, Statuses to include in the results. (repeated)
+    Allowed values
+      draft - Draft (non-published) posts.
+      live - Published posts
+      scheduled - Posts that are scheduled to publish in the future.
+  maxResults: integer, Maximum number of posts to fetch.
+  fetchBodies: boolean, Whether the body content of posts is included (default: true). This should be set to false when the post bodies are not required, to help minimize traffic.
+  fetchImages: boolean, Whether image URL metadata for each post is included.
+  view: string, Access level with which to view the returned result. Note that some fields require escalated access.
+    Allowed values
+      ADMIN - Admin level detail
+      AUTHOR - Author level detail
+      READER - Reader level detail
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Pagination token to fetch the next page, if one exists.
+    "items": [ # The list of Posts for this Blog.
+      {
+        "status": "A String", # Status of the post. Only set for admin-level requests
+        "content": "A String", # The content of the Post. May contain HTML markup.
+        "kind": "blogger#post", # The kind of this entity. Always blogger#post
+        "titleLink": "A String", # The title link URL, similar to atom's related link.
+        "author": { # The author of this Post.
+          "url": "A String", # The URL of the Post creator's Profile page.
+          "image": { # The Post author's avatar.
+            "url": "A String", # The Post author's avatar URL.
+          },
+          "displayName": "A String", # The display name.
+          "id": "A String", # The identifier of the Post creator.
+        },
+        "replies": { # The container of comments on this Post.
+          "totalItems": "A String", # The count of comments on this post.
+          "items": [ # The List of Comments for this Post.
+            {
+              "status": "A String", # The status of the comment (only populated for admin users)
+              "content": "A String", # The actual content of the comment. May include HTML markup.
+              "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
+              "inReplyTo": { # Data about the comment this is in reply to.
+                "id": "A String", # The identified of the parent of this comment.
+              },
+              "author": { # The author of this Comment.
+                "url": "A String", # The URL of the Comment creator's Profile page.
+                "image": { # The comment creator's avatar.
+                  "url": "A String", # The comment creator's avatar URL.
+                },
+                "displayName": "A String", # The display name.
+                "id": "A String", # The identifier of the Comment creator.
+              },
+              "updated": "A String", # RFC 3339 date-time when this comment was last updated.
+              "blog": { # Data about the blog containing this comment.
+                "id": "A String", # The identifier of the blog containing this comment.
+              },
+              "published": "A String", # RFC 3339 date-time when this comment was published.
+              "post": { # Data about the post containing this comment.
+                "id": "A String", # The identifier of the post containing this comment.
+              },
+              "id": "A String", # The identifier for this resource.
+              "selfLink": "A String", # The API REST URL to fetch this resource from.
+            },
+          ],
+          "selfLink": "A String", # The URL of the comments on this post.
+        },
+        "labels": [ # The list of labels this Post was tagged with.
+          "A String",
+        ],
+        "customMetaData": "A String", # The JSON meta-data for the Post.
+        "updated": "A String", # RFC 3339 date-time when this Post was last updated.
+        "blog": { # Data about the blog containing this Post.
+          "id": "A String", # The identifier of the Blog that contains this Post.
+        },
+        "url": "A String", # The URL where this Post is displayed.
+        "location": { # The location for geotagged posts.
+          "lat": 3.14, # Location's latitude.
+          "lng": 3.14, # Location's longitude.
+          "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
+          "name": "A String", # Location name.
+        },
+        "published": "A String", # RFC 3339 date-time when this Post was published.
+        "images": [ # Display image for the Post.
+          {
+            "url": "A String",
+          },
+        ],
+        "title": "A String", # The title of the Post.
+        "id": "A String", # The identifier of this Post.
+        "selfLink": "A String", # The API REST URL to fetch this resource from.
+      },
+    ],
+    "kind": "blogger#postList", # The kind of this entity. Always blogger#postList
+  }</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(blogId, postId, body, maxComments=None, revert=None, publish=None, fetchImages=None, fetchBody=None)</code>
+  <pre>Update a post. This method supports patch semantics.
+
+Args:
+  blogId: string, The ID of the Blog. (required)
+  postId: string, The ID of the Post. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+  "status": "A String", # Status of the post. Only set for admin-level requests
+  "content": "A String", # The content of the Post. May contain HTML markup.
+  "kind": "blogger#post", # The kind of this entity. Always blogger#post
+  "titleLink": "A String", # The title link URL, similar to atom's related link.
+  "author": { # The author of this Post.
+    "url": "A String", # The URL of the Post creator's Profile page.
+    "image": { # The Post author's avatar.
+      "url": "A String", # The Post author's avatar URL.
+    },
+    "displayName": "A String", # The display name.
+    "id": "A String", # The identifier of the Post creator.
+  },
+  "replies": { # The container of comments on this Post.
+    "totalItems": "A String", # The count of comments on this post.
+    "items": [ # The List of Comments for this Post.
+      {
+        "status": "A String", # The status of the comment (only populated for admin users)
+        "content": "A String", # The actual content of the comment. May include HTML markup.
+        "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
+        "inReplyTo": { # Data about the comment this is in reply to.
+          "id": "A String", # The identified of the parent of this comment.
+        },
+        "author": { # The author of this Comment.
+          "url": "A String", # The URL of the Comment creator's Profile page.
+          "image": { # The comment creator's avatar.
+            "url": "A String", # The comment creator's avatar URL.
+          },
+          "displayName": "A String", # The display name.
+          "id": "A String", # The identifier of the Comment creator.
+        },
+        "updated": "A String", # RFC 3339 date-time when this comment was last updated.
+        "blog": { # Data about the blog containing this comment.
+          "id": "A String", # The identifier of the blog containing this comment.
+        },
+        "published": "A String", # RFC 3339 date-time when this comment was published.
+        "post": { # Data about the post containing this comment.
+          "id": "A String", # The identifier of the post containing this comment.
+        },
+        "id": "A String", # The identifier for this resource.
+        "selfLink": "A String", # The API REST URL to fetch this resource from.
+      },
+    ],
+    "selfLink": "A String", # The URL of the comments on this post.
+  },
+  "labels": [ # The list of labels this Post was tagged with.
+    "A String",
+  ],
+  "customMetaData": "A String", # The JSON meta-data for the Post.
+  "updated": "A String", # RFC 3339 date-time when this Post was last updated.
+  "blog": { # Data about the blog containing this Post.
+    "id": "A String", # The identifier of the Blog that contains this Post.
+  },
+  "url": "A String", # The URL where this Post is displayed.
+  "location": { # The location for geotagged posts.
+    "lat": 3.14, # Location's latitude.
+    "lng": 3.14, # Location's longitude.
+    "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
+    "name": "A String", # Location name.
+  },
+  "published": "A String", # RFC 3339 date-time when this Post was published.
+  "images": [ # Display image for the Post.
+    {
+      "url": "A String",
+    },
+  ],
+  "title": "A String", # The title of the Post.
+  "id": "A String", # The identifier of this Post.
+  "selfLink": "A String", # The API REST URL to fetch this resource from.
+}
+
+  maxComments: integer, Maximum number of comments to retrieve with the returned post.
+  revert: boolean, Whether a revert action should be performed when the post is updated (default: false).
+  publish: boolean, Whether a publish action should be performed when the post is updated (default: false).
+  fetchImages: boolean, Whether image URL metadata for each post is included in the returned result (default: false).
+  fetchBody: boolean, Whether the body content of the post is included with the result (default: true).
+
+Returns:
+  An object of the form:
+
+    {
+    "status": "A String", # Status of the post. Only set for admin-level requests
+    "content": "A String", # The content of the Post. May contain HTML markup.
+    "kind": "blogger#post", # The kind of this entity. Always blogger#post
+    "titleLink": "A String", # The title link URL, similar to atom's related link.
+    "author": { # The author of this Post.
+      "url": "A String", # The URL of the Post creator's Profile page.
+      "image": { # The Post author's avatar.
+        "url": "A String", # The Post author's avatar URL.
+      },
+      "displayName": "A String", # The display name.
+      "id": "A String", # The identifier of the Post creator.
+    },
+    "replies": { # The container of comments on this Post.
+      "totalItems": "A String", # The count of comments on this post.
+      "items": [ # The List of Comments for this Post.
+        {
+          "status": "A String", # The status of the comment (only populated for admin users)
+          "content": "A String", # The actual content of the comment. May include HTML markup.
+          "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
+          "inReplyTo": { # Data about the comment this is in reply to.
+            "id": "A String", # The identified of the parent of this comment.
+          },
+          "author": { # The author of this Comment.
+            "url": "A String", # The URL of the Comment creator's Profile page.
+            "image": { # The comment creator's avatar.
+              "url": "A String", # The comment creator's avatar URL.
+            },
+            "displayName": "A String", # The display name.
+            "id": "A String", # The identifier of the Comment creator.
+          },
+          "updated": "A String", # RFC 3339 date-time when this comment was last updated.
+          "blog": { # Data about the blog containing this comment.
+            "id": "A String", # The identifier of the blog containing this comment.
+          },
+          "published": "A String", # RFC 3339 date-time when this comment was published.
+          "post": { # Data about the post containing this comment.
+            "id": "A String", # The identifier of the post containing this comment.
+          },
+          "id": "A String", # The identifier for this resource.
+          "selfLink": "A String", # The API REST URL to fetch this resource from.
+        },
+      ],
+      "selfLink": "A String", # The URL of the comments on this post.
+    },
+    "labels": [ # The list of labels this Post was tagged with.
+      "A String",
+    ],
+    "customMetaData": "A String", # The JSON meta-data for the Post.
+    "updated": "A String", # RFC 3339 date-time when this Post was last updated.
+    "blog": { # Data about the blog containing this Post.
+      "id": "A String", # The identifier of the Blog that contains this Post.
+    },
+    "url": "A String", # The URL where this Post is displayed.
+    "location": { # The location for geotagged posts.
+      "lat": 3.14, # Location's latitude.
+      "lng": 3.14, # Location's longitude.
+      "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
+      "name": "A String", # Location name.
+    },
+    "published": "A String", # RFC 3339 date-time when this Post was published.
+    "images": [ # Display image for the Post.
+      {
+        "url": "A String",
+      },
+    ],
+    "title": "A String", # The title of the Post.
+    "id": "A String", # The identifier of this Post.
+    "selfLink": "A String", # The API REST URL to fetch this resource from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="publish">publish(blogId, postId, publishDate=None)</code>
+  <pre>Publish a draft post.
+
+Args:
+  blogId: string, The ID of the Blog. (required)
+  postId: string, The ID of the Post. (required)
+  publishDate: string, The date and time to schedule the publishing of the Blog.
+
+Returns:
+  An object of the form:
+
+    {
+    "status": "A String", # Status of the post. Only set for admin-level requests
+    "content": "A String", # The content of the Post. May contain HTML markup.
+    "kind": "blogger#post", # The kind of this entity. Always blogger#post
+    "titleLink": "A String", # The title link URL, similar to atom's related link.
+    "author": { # The author of this Post.
+      "url": "A String", # The URL of the Post creator's Profile page.
+      "image": { # The Post author's avatar.
+        "url": "A String", # The Post author's avatar URL.
+      },
+      "displayName": "A String", # The display name.
+      "id": "A String", # The identifier of the Post creator.
+    },
+    "replies": { # The container of comments on this Post.
+      "totalItems": "A String", # The count of comments on this post.
+      "items": [ # The List of Comments for this Post.
+        {
+          "status": "A String", # The status of the comment (only populated for admin users)
+          "content": "A String", # The actual content of the comment. May include HTML markup.
+          "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
+          "inReplyTo": { # Data about the comment this is in reply to.
+            "id": "A String", # The identified of the parent of this comment.
+          },
+          "author": { # The author of this Comment.
+            "url": "A String", # The URL of the Comment creator's Profile page.
+            "image": { # The comment creator's avatar.
+              "url": "A String", # The comment creator's avatar URL.
+            },
+            "displayName": "A String", # The display name.
+            "id": "A String", # The identifier of the Comment creator.
+          },
+          "updated": "A String", # RFC 3339 date-time when this comment was last updated.
+          "blog": { # Data about the blog containing this comment.
+            "id": "A String", # The identifier of the blog containing this comment.
+          },
+          "published": "A String", # RFC 3339 date-time when this comment was published.
+          "post": { # Data about the post containing this comment.
+            "id": "A String", # The identifier of the post containing this comment.
+          },
+          "id": "A String", # The identifier for this resource.
+          "selfLink": "A String", # The API REST URL to fetch this resource from.
+        },
+      ],
+      "selfLink": "A String", # The URL of the comments on this post.
+    },
+    "labels": [ # The list of labels this Post was tagged with.
+      "A String",
+    ],
+    "customMetaData": "A String", # The JSON meta-data for the Post.
+    "updated": "A String", # RFC 3339 date-time when this Post was last updated.
+    "blog": { # Data about the blog containing this Post.
+      "id": "A String", # The identifier of the Blog that contains this Post.
+    },
+    "url": "A String", # The URL where this Post is displayed.
+    "location": { # The location for geotagged posts.
+      "lat": 3.14, # Location's latitude.
+      "lng": 3.14, # Location's longitude.
+      "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
+      "name": "A String", # Location name.
+    },
+    "published": "A String", # RFC 3339 date-time when this Post was published.
+    "images": [ # Display image for the Post.
+      {
+        "url": "A String",
+      },
+    ],
+    "title": "A String", # The title of the Post.
+    "id": "A String", # The identifier of this Post.
+    "selfLink": "A String", # The API REST URL to fetch this resource from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="revert">revert(blogId, postId)</code>
+  <pre>Revert a published or scheduled post to draft state.
+
+Args:
+  blogId: string, The ID of the Blog. (required)
+  postId: string, The ID of the Post. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "status": "A String", # Status of the post. Only set for admin-level requests
+    "content": "A String", # The content of the Post. May contain HTML markup.
+    "kind": "blogger#post", # The kind of this entity. Always blogger#post
+    "titleLink": "A String", # The title link URL, similar to atom's related link.
+    "author": { # The author of this Post.
+      "url": "A String", # The URL of the Post creator's Profile page.
+      "image": { # The Post author's avatar.
+        "url": "A String", # The Post author's avatar URL.
+      },
+      "displayName": "A String", # The display name.
+      "id": "A String", # The identifier of the Post creator.
+    },
+    "replies": { # The container of comments on this Post.
+      "totalItems": "A String", # The count of comments on this post.
+      "items": [ # The List of Comments for this Post.
+        {
+          "status": "A String", # The status of the comment (only populated for admin users)
+          "content": "A String", # The actual content of the comment. May include HTML markup.
+          "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
+          "inReplyTo": { # Data about the comment this is in reply to.
+            "id": "A String", # The identified of the parent of this comment.
+          },
+          "author": { # The author of this Comment.
+            "url": "A String", # The URL of the Comment creator's Profile page.
+            "image": { # The comment creator's avatar.
+              "url": "A String", # The comment creator's avatar URL.
+            },
+            "displayName": "A String", # The display name.
+            "id": "A String", # The identifier of the Comment creator.
+          },
+          "updated": "A String", # RFC 3339 date-time when this comment was last updated.
+          "blog": { # Data about the blog containing this comment.
+            "id": "A String", # The identifier of the blog containing this comment.
+          },
+          "published": "A String", # RFC 3339 date-time when this comment was published.
+          "post": { # Data about the post containing this comment.
+            "id": "A String", # The identifier of the post containing this comment.
+          },
+          "id": "A String", # The identifier for this resource.
+          "selfLink": "A String", # The API REST URL to fetch this resource from.
+        },
+      ],
+      "selfLink": "A String", # The URL of the comments on this post.
+    },
+    "labels": [ # The list of labels this Post was tagged with.
+      "A String",
+    ],
+    "customMetaData": "A String", # The JSON meta-data for the Post.
+    "updated": "A String", # RFC 3339 date-time when this Post was last updated.
+    "blog": { # Data about the blog containing this Post.
+      "id": "A String", # The identifier of the Blog that contains this Post.
+    },
+    "url": "A String", # The URL where this Post is displayed.
+    "location": { # The location for geotagged posts.
+      "lat": 3.14, # Location's latitude.
+      "lng": 3.14, # Location's longitude.
+      "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
+      "name": "A String", # Location name.
+    },
+    "published": "A String", # RFC 3339 date-time when this Post was published.
+    "images": [ # Display image for the Post.
+      {
+        "url": "A String",
+      },
+    ],
+    "title": "A String", # The title of the Post.
+    "id": "A String", # The identifier of this Post.
+    "selfLink": "A String", # The API REST URL to fetch this resource from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="search">search(blogId, q, orderBy=None, fetchBodies=None)</code>
+  <pre>Search for a post.
+
+Args:
+  blogId: string, ID of the blog to fetch the post from. (required)
+  q: string, Query terms to search this blog for matching posts. (required)
+  orderBy: string, Sort search results
+    Allowed values
+      published - Order by the date the post was published
+      updated - Order by the date the post was last updated
+  fetchBodies: boolean, Whether the body content of posts is included (default: true). This should be set to false when the post bodies are not required, to help minimize traffic.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Pagination token to fetch the next page, if one exists.
+    "items": [ # The list of Posts for this Blog.
+      {
+        "status": "A String", # Status of the post. Only set for admin-level requests
+        "content": "A String", # The content of the Post. May contain HTML markup.
+        "kind": "blogger#post", # The kind of this entity. Always blogger#post
+        "titleLink": "A String", # The title link URL, similar to atom's related link.
+        "author": { # The author of this Post.
+          "url": "A String", # The URL of the Post creator's Profile page.
+          "image": { # The Post author's avatar.
+            "url": "A String", # The Post author's avatar URL.
+          },
+          "displayName": "A String", # The display name.
+          "id": "A String", # The identifier of the Post creator.
+        },
+        "replies": { # The container of comments on this Post.
+          "totalItems": "A String", # The count of comments on this post.
+          "items": [ # The List of Comments for this Post.
+            {
+              "status": "A String", # The status of the comment (only populated for admin users)
+              "content": "A String", # The actual content of the comment. May include HTML markup.
+              "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
+              "inReplyTo": { # Data about the comment this is in reply to.
+                "id": "A String", # The identified of the parent of this comment.
+              },
+              "author": { # The author of this Comment.
+                "url": "A String", # The URL of the Comment creator's Profile page.
+                "image": { # The comment creator's avatar.
+                  "url": "A String", # The comment creator's avatar URL.
+                },
+                "displayName": "A String", # The display name.
+                "id": "A String", # The identifier of the Comment creator.
+              },
+              "updated": "A String", # RFC 3339 date-time when this comment was last updated.
+              "blog": { # Data about the blog containing this comment.
+                "id": "A String", # The identifier of the blog containing this comment.
+              },
+              "published": "A String", # RFC 3339 date-time when this comment was published.
+              "post": { # Data about the post containing this comment.
+                "id": "A String", # The identifier of the post containing this comment.
+              },
+              "id": "A String", # The identifier for this resource.
+              "selfLink": "A String", # The API REST URL to fetch this resource from.
+            },
+          ],
+          "selfLink": "A String", # The URL of the comments on this post.
+        },
+        "labels": [ # The list of labels this Post was tagged with.
+          "A String",
+        ],
+        "customMetaData": "A String", # The JSON meta-data for the Post.
+        "updated": "A String", # RFC 3339 date-time when this Post was last updated.
+        "blog": { # Data about the blog containing this Post.
+          "id": "A String", # The identifier of the Blog that contains this Post.
+        },
+        "url": "A String", # The URL where this Post is displayed.
+        "location": { # The location for geotagged posts.
+          "lat": 3.14, # Location's latitude.
+          "lng": 3.14, # Location's longitude.
+          "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
+          "name": "A String", # Location name.
+        },
+        "published": "A String", # RFC 3339 date-time when this Post was published.
+        "images": [ # Display image for the Post.
+          {
+            "url": "A String",
+          },
+        ],
+        "title": "A String", # The title of the Post.
+        "id": "A String", # The identifier of this Post.
+        "selfLink": "A String", # The API REST URL to fetch this resource from.
+      },
+    ],
+    "kind": "blogger#postList", # The kind of this entity. Always blogger#postList
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(blogId, postId, body, maxComments=None, revert=None, publish=None, fetchImages=None, fetchBody=None)</code>
+  <pre>Update a post.
+
+Args:
+  blogId: string, The ID of the Blog. (required)
+  postId: string, The ID of the Post. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+  "status": "A String", # Status of the post. Only set for admin-level requests
+  "content": "A String", # The content of the Post. May contain HTML markup.
+  "kind": "blogger#post", # The kind of this entity. Always blogger#post
+  "titleLink": "A String", # The title link URL, similar to atom's related link.
+  "author": { # The author of this Post.
+    "url": "A String", # The URL of the Post creator's Profile page.
+    "image": { # The Post author's avatar.
+      "url": "A String", # The Post author's avatar URL.
+    },
+    "displayName": "A String", # The display name.
+    "id": "A String", # The identifier of the Post creator.
+  },
+  "replies": { # The container of comments on this Post.
+    "totalItems": "A String", # The count of comments on this post.
+    "items": [ # The List of Comments for this Post.
+      {
+        "status": "A String", # The status of the comment (only populated for admin users)
+        "content": "A String", # The actual content of the comment. May include HTML markup.
+        "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
+        "inReplyTo": { # Data about the comment this is in reply to.
+          "id": "A String", # The identified of the parent of this comment.
+        },
+        "author": { # The author of this Comment.
+          "url": "A String", # The URL of the Comment creator's Profile page.
+          "image": { # The comment creator's avatar.
+            "url": "A String", # The comment creator's avatar URL.
+          },
+          "displayName": "A String", # The display name.
+          "id": "A String", # The identifier of the Comment creator.
+        },
+        "updated": "A String", # RFC 3339 date-time when this comment was last updated.
+        "blog": { # Data about the blog containing this comment.
+          "id": "A String", # The identifier of the blog containing this comment.
+        },
+        "published": "A String", # RFC 3339 date-time when this comment was published.
+        "post": { # Data about the post containing this comment.
+          "id": "A String", # The identifier of the post containing this comment.
+        },
+        "id": "A String", # The identifier for this resource.
+        "selfLink": "A String", # The API REST URL to fetch this resource from.
+      },
+    ],
+    "selfLink": "A String", # The URL of the comments on this post.
+  },
+  "labels": [ # The list of labels this Post was tagged with.
+    "A String",
+  ],
+  "customMetaData": "A String", # The JSON meta-data for the Post.
+  "updated": "A String", # RFC 3339 date-time when this Post was last updated.
+  "blog": { # Data about the blog containing this Post.
+    "id": "A String", # The identifier of the Blog that contains this Post.
+  },
+  "url": "A String", # The URL where this Post is displayed.
+  "location": { # The location for geotagged posts.
+    "lat": 3.14, # Location's latitude.
+    "lng": 3.14, # Location's longitude.
+    "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
+    "name": "A String", # Location name.
+  },
+  "published": "A String", # RFC 3339 date-time when this Post was published.
+  "images": [ # Display image for the Post.
+    {
+      "url": "A String",
+    },
+  ],
+  "title": "A String", # The title of the Post.
+  "id": "A String", # The identifier of this Post.
+  "selfLink": "A String", # The API REST URL to fetch this resource from.
+}
+
+  maxComments: integer, Maximum number of comments to retrieve with the returned post.
+  revert: boolean, Whether a revert action should be performed when the post is updated (default: false).
+  publish: boolean, Whether a publish action should be performed when the post is updated (default: false).
+  fetchImages: boolean, Whether image URL metadata for each post is included in the returned result (default: false).
+  fetchBody: boolean, Whether the body content of the post is included with the result (default: true).
+
+Returns:
+  An object of the form:
+
+    {
+    "status": "A String", # Status of the post. Only set for admin-level requests
+    "content": "A String", # The content of the Post. May contain HTML markup.
+    "kind": "blogger#post", # The kind of this entity. Always blogger#post
+    "titleLink": "A String", # The title link URL, similar to atom's related link.
+    "author": { # The author of this Post.
+      "url": "A String", # The URL of the Post creator's Profile page.
+      "image": { # The Post author's avatar.
+        "url": "A String", # The Post author's avatar URL.
+      },
+      "displayName": "A String", # The display name.
+      "id": "A String", # The identifier of the Post creator.
+    },
+    "replies": { # The container of comments on this Post.
+      "totalItems": "A String", # The count of comments on this post.
+      "items": [ # The List of Comments for this Post.
+        {
+          "status": "A String", # The status of the comment (only populated for admin users)
+          "content": "A String", # The actual content of the comment. May include HTML markup.
+          "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
+          "inReplyTo": { # Data about the comment this is in reply to.
+            "id": "A String", # The identified of the parent of this comment.
+          },
+          "author": { # The author of this Comment.
+            "url": "A String", # The URL of the Comment creator's Profile page.
+            "image": { # The comment creator's avatar.
+              "url": "A String", # The comment creator's avatar URL.
+            },
+            "displayName": "A String", # The display name.
+            "id": "A String", # The identifier of the Comment creator.
+          },
+          "updated": "A String", # RFC 3339 date-time when this comment was last updated.
+          "blog": { # Data about the blog containing this comment.
+            "id": "A String", # The identifier of the blog containing this comment.
+          },
+          "published": "A String", # RFC 3339 date-time when this comment was published.
+          "post": { # Data about the post containing this comment.
+            "id": "A String", # The identifier of the post containing this comment.
+          },
+          "id": "A String", # The identifier for this resource.
+          "selfLink": "A String", # The API REST URL to fetch this resource from.
+        },
+      ],
+      "selfLink": "A String", # The URL of the comments on this post.
+    },
+    "labels": [ # The list of labels this Post was tagged with.
+      "A String",
+    ],
+    "customMetaData": "A String", # The JSON meta-data for the Post.
+    "updated": "A String", # RFC 3339 date-time when this Post was last updated.
+    "blog": { # Data about the blog containing this Post.
+      "id": "A String", # The identifier of the Blog that contains this Post.
+    },
+    "url": "A String", # The URL where this Post is displayed.
+    "location": { # The location for geotagged posts.
+      "lat": 3.14, # Location's latitude.
+      "lng": 3.14, # Location's longitude.
+      "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
+      "name": "A String", # Location name.
+    },
+    "published": "A String", # RFC 3339 date-time when this Post was published.
+    "images": [ # Display image for the Post.
+      {
+        "url": "A String",
+      },
+    ],
+    "title": "A String", # The title of the Post.
+    "id": "A String", # The identifier of this Post.
+    "selfLink": "A String", # The API REST URL to fetch this resource from.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/blogger_v3.users.html b/docs/dyn/blogger_v3.users.html
new file mode 100644
index 0000000..87b6f2e
--- /dev/null
+++ b/docs/dyn/blogger_v3.users.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="blogger_v3.html">Blogger API</a> . <a href="blogger_v3.users.html">users</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(userId)</a></code></p>
+<p class="firstline">Gets one user by id.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(userId)</code>
+  <pre>Gets one user by id.
+
+Args:
+  userId: string, The ID of the user to get. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "about": "A String", # Profile summary information.
+    "displayName": "A String", # The display name.
+    "created": "A String", # The timestamp of when this profile was created, in seconds since epoch.
+    "locale": { # This user's locale
+      "country": "A String", # The user's country setting.
+      "variant": "A String", # The user's language variant setting.
+      "language": "A String", # The user's language setting.
+    },
+    "blogs": { # The container of blogs for this user.
+      "selfLink": "A String", # The URL of the Blogs for this user.
+    },
+    "kind": "blogger#user", # The kind of this entity. Always blogger#user
+    "url": "A String", # The user's profile page.
+    "id": "A String", # The identifier for this User.
+    "selfLink": "A String", # The API REST URL to fetch this resource from.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/books_v1.bookshelves.html b/docs/dyn/books_v1.bookshelves.html
new file mode 100644
index 0000000..59fb7b6
--- /dev/null
+++ b/docs/dyn/books_v1.bookshelves.html
@@ -0,0 +1,145 @@
+<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.bookshelves.html">bookshelves</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="books_v1.bookshelves.volumes.html">volumes()</a></code>
+</p>
+<p class="firstline">Returns the volumes Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#get">get(userId, shelf, source=None)</a></code></p>
+<p class="firstline">Retrieves metadata for a specific bookshelf for the specified user.</p>
+<p class="toc_element">
+  <code><a href="#list">list(userId, source=None)</a></code></p>
+<p class="firstline">Retrieves a list of public bookshelves for the specified user.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(userId, shelf, source=None)</code>
+  <pre>Retrieves metadata for a specific bookshelf for the specified user.
+
+Args:
+  userId: string, ID of user for whom to retrieve bookshelves. (required)
+  shelf: string, ID of bookshelf to retrieve. (required)
+  source: string, String to identify the originator of this request.
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "books#bookshelf", # Resource type for bookshelf metadata.
+    "description": "A String", # Description of this bookshelf.
+    "created": "A String", # Created time for this bookshelf (formatted UTC timestamp with millisecond resolution).
+    "volumeCount": 42, # Number of volumes in this bookshelf.
+    "title": "A String", # Title of this bookshelf.
+    "updated": "A String", # Last modified time of this bookshelf (formatted UTC timestamp with millisecond resolution).
+    "access": "A String", # Whether this bookshelf is PUBLIC or PRIVATE.
+    "volumesLastUpdated": "A String", # Last time a volume was added or removed from this bookshelf (formatted UTC timestamp with millisecond resolution).
+    "id": 42, # Id of this bookshelf, only unique by user.
+    "selfLink": "A String", # URL to this resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(userId, source=None)</code>
+  <pre>Retrieves a list of public bookshelves for the specified user.
+
+Args:
+  userId: string, ID of user for whom to retrieve bookshelves. (required)
+  source: string, String to identify the originator of this request.
+
+Returns:
+  An object of the form:
+
+    {
+    "items": [ # A list of bookshelves.
+      {
+        "kind": "books#bookshelf", # Resource type for bookshelf metadata.
+        "description": "A String", # Description of this bookshelf.
+        "created": "A String", # Created time for this bookshelf (formatted UTC timestamp with millisecond resolution).
+        "volumeCount": 42, # Number of volumes in this bookshelf.
+        "title": "A String", # Title of this bookshelf.
+        "updated": "A String", # Last modified time of this bookshelf (formatted UTC timestamp with millisecond resolution).
+        "access": "A String", # Whether this bookshelf is PUBLIC or PRIVATE.
+        "volumesLastUpdated": "A String", # Last time a volume was added or removed from this bookshelf (formatted UTC timestamp with millisecond resolution).
+        "id": 42, # Id of this bookshelf, only unique by user.
+        "selfLink": "A String", # URL to this resource.
+      },
+    ],
+    "kind": "books#bookshelves", # Resource type.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/books_v1.bookshelves.volumes.html b/docs/dyn/books_v1.bookshelves.volumes.html
new file mode 100644
index 0000000..1941c1f
--- /dev/null
+++ b/docs/dyn/books_v1.bookshelves.volumes.html
@@ -0,0 +1,284 @@
+<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.bookshelves.html">bookshelves</a> . <a href="books_v1.bookshelves.volumes.html">volumes</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(userId, shelf, source=None, showPreorders=None, maxResults=None, startIndex=None)</a></code></p>
+<p class="firstline">Retrieves volumes in a specific bookshelf for the specified user.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(userId, shelf, source=None, showPreorders=None, maxResults=None, startIndex=None)</code>
+  <pre>Retrieves volumes in a specific bookshelf for the specified user.
+
+Args:
+  userId: string, ID of user for whom to retrieve bookshelf volumes. (required)
+  shelf: string, ID of bookshelf to retrieve volumes. (required)
+  source: string, String to identify the originator of this request.
+  showPreorders: boolean, Set to true to show pre-ordered books. Defaults to false.
+  maxResults: integer, Maximum number of results to return
+  startIndex: integer, Index of the first element to return (starts at 0)
+
+Returns:
+  An object of the form:
+
+    {
+    "totalItems": 42, # Total number of volumes found. This might be greater than the number of volumes returned in this response if results have been paginated.
+    "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.
+          "publisher": "A String", # Publisher of this volume. (In LITE projection.)
+          "subtitle": "A String", # Volume subtitle. (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.)
+          "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.
+          "pageCount": 42, # Total number of pages as per publisher metadata.
+          "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)
+          },
+          "publishedDate": "A String", # Date of publication. (In LITE projection.)
+          "previewLink": "A String", # URL to preview this volume on the Google Books site.
+          "printType": "A String", # Type of publication of this volume. Possible values are BOOK or MAGAZINE.
+          "ratingsCount": 42, # The number of review ratings for this volume.
+          "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).
+          },
+          "contentVersion": "A String", # An identifier for the version of the volume content (text & images). (In LITE projection)
+          "printedPageCount": 42, # Total number of printed pages in generated pdf representation.
+          "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.
+            },
+          ],
+          "authors": [ # The names of the authors and/or editors for this volume. (In LITE projection)
+            "A String",
+          ],
+          "title": "A String", # Volume title. (In LITE projection.)
+          "canonicalVolumeLink": "A String", # Canonical URL for a volume. (In LITE projection.)
+          "infoLink": "A String", # URL to view information about this volume on the Google Books site. (In LITE projection)
+          "categories": [ # A list of subject categories, such as "Fiction", "Suspense", etc.
+            "A String",
+          ],
+          "averageRating": 3.14, # The mean review rating for this volume. (min = 1.0, max = 5.0)
+        },
+        "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": "books#volumes", # Resource type.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/books_v1.cloudloading.html b/docs/dyn/books_v1.cloudloading.html
new file mode 100644
index 0000000..7ab41fb
--- /dev/null
+++ b/docs/dyn/books_v1.cloudloading.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="books_v1.html">Books API</a> . <a href="books_v1.cloudloading.html">cloudloading</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#addBook">addBook(upload_client_token=None, name=None, drive_document_id=None, mime_type=None)</a></code></p>
+<p class="firstline"></p>
+<p class="toc_element">
+  <code><a href="#deleteBook">deleteBook(volumeId)</a></code></p>
+<p class="firstline">Remove the book and its contents</p>
+<p class="toc_element">
+  <code><a href="#updateBook">updateBook(body)</a></code></p>
+<p class="firstline"></p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="addBook">addBook(upload_client_token=None, name=None, drive_document_id=None, mime_type=None)</code>
+  <pre>
+
+Args:
+  upload_client_token: string, A parameter
+  name: string, The document name. It can be set only if the drive_document_id is set.
+  drive_document_id: string, A drive document id. The upload_client_token must not be set.
+  mime_type: string, The document MIME type. It can be set only if the drive_document_id is set.
+
+Returns:
+  An object of the form:
+
+    {
+    "title": "A String",
+    "processingState": "A String",
+    "volumeId": "A String",
+    "author": "A String",
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="deleteBook">deleteBook(volumeId)</code>
+  <pre>Remove the book and its contents
+
+Args:
+  volumeId: string, The id of the book to be removed. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="updateBook">updateBook(body)</code>
+  <pre>
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+  "title": "A String",
+  "processingState": "A String",
+  "volumeId": "A String",
+  "author": "A String",
+}
+
+
+Returns:
+  An object of the form:
+
+    {
+    "title": "A String",
+    "processingState": "A String",
+    "volumeId": "A String",
+    "author": "A String",
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/books_v1.html b/docs/dyn/books_v1.html
new file mode 100644
index 0000000..4adb450
--- /dev/null
+++ b/docs/dyn/books_v1.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="books_v1.html">Books API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="books_v1.bookshelves.html">bookshelves()</a></code>
+</p>
+<p class="firstline">Returns the bookshelves Resource.</p>
+
+<p class="toc_element">
+  <code><a href="books_v1.cloudloading.html">cloudloading()</a></code>
+</p>
+<p class="firstline">Returns the cloudloading 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>
+
+<p class="toc_element">
+  <code><a href="books_v1.myconfig.html">myconfig()</a></code>
+</p>
+<p class="firstline">Returns the myconfig Resource.</p>
+
+<p class="toc_element">
+  <code><a href="books_v1.mylibrary.html">mylibrary()</a></code>
+</p>
+<p class="firstline">Returns the mylibrary Resource.</p>
+
+<p class="toc_element">
+  <code><a href="books_v1.volumes.html">volumes()</a></code>
+</p>
+<p class="firstline">Returns the volumes Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/books_v1.layers.annotationData.html b/docs/dyn/books_v1.layers.annotationData.html
new file mode 100644
index 0000000..12163eb
--- /dev/null
+++ b/docs/dyn/books_v1.layers.annotationData.html
@@ -0,0 +1,175 @@
+<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.layers.html">layers</a> . <a href="books_v1.layers.annotationData.html">annotationData</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(volumeId, layerId, annotationDataId, contentVersion, scale=None, allowWebDefinitions=None, w=None, source=None, h=None, locale=None)</a></code></p>
+<p class="firstline">Gets the annotation data.</p>
+<p class="toc_element">
+  <code><a href="#list">list(volumeId, layerId, contentVersion, locale=None, scale=None, pageToken=None, updatedMin=None, source=None, updatedMax=None, maxResults=None, annotationDataId=None, w=None, h=None)</a></code></p>
+<p class="firstline">Gets the annotation data for a volume and layer.</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(volumeId, layerId, annotationDataId, contentVersion, scale=None, allowWebDefinitions=None, w=None, source=None, h=None, locale=None)</code>
+  <pre>Gets the annotation data.
+
+Args:
+  volumeId: string, The volume to retrieve annotations for. (required)
+  layerId: string, The ID for the layer to get the annotations. (required)
+  annotationDataId: string, The ID of the annotation data to retrieve. (required)
+  contentVersion: string, The content version for the volume you are trying to retrieve. (required)
+  scale: integer, The requested scale for the image.
+  allowWebDefinitions: boolean, For the dictionary layer. Whether or not to allow web definitions.
+  w: integer, The requested pixel width for any images. If width is provided height must also be provided.
+  source: string, String to identify the originator of this request.
+  h: integer, The requested pixel height for any images. If height is provided width must also be provided.
+  locale: string, The locale information for the data. ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'.
+
+Returns:
+  An object of the form:
+
+    {
+    "annotationType": "A String", # The type of annotation this data is for.
+    "kind": "books#annotationdata", # Resource Type
+    "updated": "A String", # Timestamp for the last time this data was updated. (RFC 3339 UTC date-time format).
+    "volumeId": "A String", # The volume id for this data. *
+    "encoded_data": "A String", # Base64 encoded data for this annotation data.
+    "layerId": "A String", # The Layer id for this data. *
+    "data": "",
+    "id": "A String", # Unique id for this annotation data.
+    "selfLink": "A String", # URL for this resource. *
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(volumeId, layerId, contentVersion, locale=None, scale=None, pageToken=None, updatedMin=None, source=None, updatedMax=None, maxResults=None, annotationDataId=None, w=None, h=None)</code>
+  <pre>Gets the annotation data for a volume and layer.
+
+Args:
+  volumeId: string, The volume to retrieve annotation data for. (required)
+  layerId: string, The ID for the layer to get the annotation data. (required)
+  contentVersion: string, The content version for the requested volume. (required)
+  locale: string, The locale information for the data. ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'.
+  scale: integer, The requested scale for the image.
+  pageToken: string, The value of the nextToken from the previous page.
+  updatedMin: string, RFC 3339 timestamp to restrict to items updated since this timestamp (inclusive).
+  source: string, String to identify the originator of this request.
+  updatedMax: string, RFC 3339 timestamp to restrict to items updated prior to this timestamp (exclusive).
+  maxResults: integer, Maximum number of results to return
+  annotationDataId: string, The list of Annotation Data Ids to retrieve. Pagination is ignored if this is set. (repeated)
+  w: integer, The requested pixel width for any images. If width is provided height must also be provided.
+  h: integer, The requested pixel height for any images. If height is provided width must also be provided.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Token to pass in for pagination for the next page. This will not be present if this request does not have more results.
+    "items": [ # A list of Annotation Data.
+      {
+        "annotationType": "A String", # The type of annotation this data is for.
+        "kind": "books#annotationdata", # Resource Type
+        "updated": "A String", # Timestamp for the last time this data was updated. (RFC 3339 UTC date-time format).
+        "volumeId": "A String", # The volume id for this data. *
+        "encoded_data": "A String", # Base64 encoded data for this annotation data.
+        "layerId": "A String", # The Layer id for this data. *
+        "data": "",
+        "id": "A String", # Unique id for this annotation data.
+        "selfLink": "A String", # URL for this resource. *
+      },
+    ],
+    "kind": "books#annotationsdata", # Resource type
+    "totalItems": 42, # The total number of volume annotations found.
+  }</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/books_v1.layers.html b/docs/dyn/books_v1.layers.html
new file mode 100644
index 0000000..df07137
--- /dev/null
+++ b/docs/dyn/books_v1.layers.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="books_v1.html">Books API</a> . <a href="books_v1.layers.html">layers</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="books_v1.layers.annotationData.html">annotationData()</a></code>
+</p>
+<p class="firstline">Returns the annotationData Resource.</p>
+
+<p class="toc_element">
+  <code><a href="books_v1.layers.volumeAnnotations.html">volumeAnnotations()</a></code>
+</p>
+<p class="firstline">Returns the volumeAnnotations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#get">get(volumeId, summaryId, source=None, contentVersion=None)</a></code></p>
+<p class="firstline">Gets the layer summary for a volume.</p>
+<p class="toc_element">
+  <code><a href="#list">list(volumeId, pageToken=None, maxResults=None, source=None, contentVersion=None)</a></code></p>
+<p class="firstline">List the layer summaries for a volume.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(volumeId, summaryId, source=None, contentVersion=None)</code>
+  <pre>Gets the layer summary for a volume.
+
+Args:
+  volumeId: string, The volume to retrieve layers for. (required)
+  summaryId: string, The ID for the layer to get the summary for. (required)
+  source: string, String to identify the originator of this request.
+  contentVersion: string, The content version for the requested volume.
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "books#layersummary", # Resource Type
+    "annotationCount": 42, # The number of annotations for this layer.
+    "dataCount": 42, # The number of data items for this layer.
+    "annotationsLink": "A String", # The link to get the annotations for this layer.
+    "updated": "A String", # Timestamp for the last time an item in this layer was updated. (RFC 3339 UTC date-time format).
+    "volumeId": "A String", # The volume id this resource is for.
+    "id": "A String", # Unique id of this layer summary.
+    "annotationTypes": [ # The list of annotation types contained for this layer.
+      "A String",
+    ],
+    "contentVersion": "A String", # The content version this resource is for.
+    "layerId": "A String", # The layer id for this summary.
+    "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.
+    "annotationsDataLink": "A String", # Link to get data for this annotation.
+    "selfLink": "A String", # URL to this resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(volumeId, pageToken=None, maxResults=None, source=None, contentVersion=None)</code>
+  <pre>List the layer summaries for a volume.
+
+Args:
+  volumeId: string, The volume to retrieve layers for. (required)
+  pageToken: string, The value of the nextToken from the previous page.
+  maxResults: integer, Maximum number of results to return
+  source: string, String to identify the originator of this request.
+  contentVersion: string, The content version for the requested volume.
+
+Returns:
+  An object of the form:
+
+    {
+    "totalItems": 42, # The total number of layer summaries found.
+    "items": [ # A list of layer summary items.
+      {
+        "kind": "books#layersummary", # Resource Type
+        "annotationCount": 42, # The number of annotations for this layer.
+        "dataCount": 42, # The number of data items for this layer.
+        "annotationsLink": "A String", # The link to get the annotations for this layer.
+        "updated": "A String", # Timestamp for the last time an item in this layer was updated. (RFC 3339 UTC date-time format).
+        "volumeId": "A String", # The volume id this resource is for.
+        "id": "A String", # Unique id of this layer summary.
+        "annotationTypes": [ # The list of annotation types contained for this layer.
+          "A String",
+        ],
+        "contentVersion": "A String", # The content version this resource is for.
+        "layerId": "A String", # The layer id for this summary.
+        "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.
+        "annotationsDataLink": "A String", # Link to get data for this annotation.
+        "selfLink": "A String", # URL to this resource.
+      },
+    ],
+    "kind": "books#layersummaries", # Resource type.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/books_v1.layers.volumeAnnotations.html b/docs/dyn/books_v1.layers.volumeAnnotations.html
new file mode 100644
index 0000000..72b7e34
--- /dev/null
+++ b/docs/dyn/books_v1.layers.volumeAnnotations.html
@@ -0,0 +1,227 @@
+<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.layers.html">layers</a> . <a href="books_v1.layers.volumeAnnotations.html">volumeAnnotations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(volumeId, layerId, annotationId, source=None, locale=None)</a></code></p>
+<p class="firstline">Gets the volume annotation.</p>
+<p class="toc_element">
+  <code><a href="#list">list(volumeId, layerId, contentVersion, endPosition=None, locale=None, startOffset=None, volumeAnnotationsVersion=None, pageToken=None, updatedMin=None, endOffset=None, showDeleted=None, updatedMax=None, maxResults=None, startPosition=None, source=None)</a></code></p>
+<p class="firstline">Gets the volume annotations for a volume and layer.</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(volumeId, layerId, annotationId, source=None, locale=None)</code>
+  <pre>Gets the volume annotation.
+
+Args:
+  volumeId: string, The volume to retrieve annotations for. (required)
+  layerId: string, The ID for the layer to get the annotations. (required)
+  annotationId: string, The ID of the volume annotation to retrieve. (required)
+  source: string, String to identify the originator of this request.
+  locale: string, The locale information for the data. ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'.
+
+Returns:
+  An object of the form:
+
+    {
+    "annotationType": "A String", # The type of annotation this is.
+    "kind": "books#volumeannotation", # Resource Type
+    "updated": "A String", # Timestamp for the last time this anntoation was updated. (RFC 3339 UTC date-time format).
+    "deleted": True or False, # Indicates that this annotation is deleted.
+    "contentRanges": { # The content ranges to identify the selected text.
+      "contentVersion": "A String", # Content version applicable to ranges below.
+      "gbTextRange": { # Range in GB text format for this annotation for version above.
+        "startPosition": "A String", # The starting position for the range.
+        "endPosition": "A String", # The ending position for the range.
+        "startOffset": "A String", # The offset from the starting position.
+        "endOffset": "A String", # The offset from the ending position.
+      },
+      "cfiRange": { # Range in CFI format for this annotation for version above.
+        "startPosition": "A String", # The starting position for the range.
+        "endPosition": "A String", # The ending position for the range.
+        "startOffset": "A String", # The offset from the starting position.
+        "endOffset": "A String", # The offset from the ending position.
+      },
+      "gbImageRange": { # Range in GB image format for this annotation for version above.
+        "startPosition": "A String", # The starting position for the range.
+        "endPosition": "A String", # The ending position for the range.
+        "startOffset": "A String", # The offset from the starting position.
+        "endOffset": "A String", # The offset from the ending position.
+      },
+    },
+    "selectedText": "A String", # Excerpt from the volume.
+    "volumeId": "A String", # The Volume this annotation is for.
+    "annotationDataId": "A String", # The annotation data id for this volume annotation.
+    "annotationDataLink": "A String", # Link to get data for this annotation.
+    "pageIds": [ # Pages the annotation spans.
+      "A String",
+    ],
+    "layerId": "A String", # The Layer this annotation is for.
+    "data": "A String", # Data for this annotation.
+    "id": "A String", # Unique id of this volume annotation.
+    "selfLink": "A String", # URL to this resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(volumeId, layerId, contentVersion, endPosition=None, locale=None, startOffset=None, volumeAnnotationsVersion=None, pageToken=None, updatedMin=None, endOffset=None, showDeleted=None, updatedMax=None, maxResults=None, startPosition=None, source=None)</code>
+  <pre>Gets the volume annotations for a volume and layer.
+
+Args:
+  volumeId: string, The volume to retrieve annotations for. (required)
+  layerId: string, The ID for the layer to get the annotations. (required)
+  contentVersion: string, The content version for the requested volume. (required)
+  endPosition: string, The end position to end retrieving data from.
+  locale: string, The locale information for the data. ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'.
+  startOffset: string, The start offset to start retrieving data from.
+  volumeAnnotationsVersion: string, The version of the volume annotations that you are requesting.
+  pageToken: string, The value of the nextToken from the previous page.
+  updatedMin: string, RFC 3339 timestamp to restrict to items updated since this timestamp (inclusive).
+  endOffset: string, The end offset to end retrieving data from.
+  showDeleted: boolean, Set to true to return deleted annotations. updatedMin must be in the request to use this. Defaults to false.
+  updatedMax: string, RFC 3339 timestamp to restrict to items updated prior to this timestamp (exclusive).
+  maxResults: integer, Maximum number of results to return
+  startPosition: string, The start position to start retrieving data from.
+  source: string, String to identify the originator of this request.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Token to pass in for pagination for the next page. This will not be present if this request does not have more results.
+    "items": [ # A list of volume annotations.
+      {
+        "annotationType": "A String", # The type of annotation this is.
+        "kind": "books#volumeannotation", # Resource Type
+        "updated": "A String", # Timestamp for the last time this anntoation was updated. (RFC 3339 UTC date-time format).
+        "deleted": True or False, # Indicates that this annotation is deleted.
+        "contentRanges": { # The content ranges to identify the selected text.
+          "contentVersion": "A String", # Content version applicable to ranges below.
+          "gbTextRange": { # Range in GB text format for this annotation for version above.
+            "startPosition": "A String", # The starting position for the range.
+            "endPosition": "A String", # The ending position for the range.
+            "startOffset": "A String", # The offset from the starting position.
+            "endOffset": "A String", # The offset from the ending position.
+          },
+          "cfiRange": { # Range in CFI format for this annotation for version above.
+            "startPosition": "A String", # The starting position for the range.
+            "endPosition": "A String", # The ending position for the range.
+            "startOffset": "A String", # The offset from the starting position.
+            "endOffset": "A String", # The offset from the ending position.
+          },
+          "gbImageRange": { # Range in GB image format for this annotation for version above.
+            "startPosition": "A String", # The starting position for the range.
+            "endPosition": "A String", # The ending position for the range.
+            "startOffset": "A String", # The offset from the starting position.
+            "endOffset": "A String", # The offset from the ending position.
+          },
+        },
+        "selectedText": "A String", # Excerpt from the volume.
+        "volumeId": "A String", # The Volume this annotation is for.
+        "annotationDataId": "A String", # The annotation data id for this volume annotation.
+        "annotationDataLink": "A String", # Link to get data for this annotation.
+        "pageIds": [ # Pages the annotation spans.
+          "A String",
+        ],
+        "layerId": "A String", # The Layer this annotation is for.
+        "data": "A String", # Data for this annotation.
+        "id": "A String", # Unique id of this volume annotation.
+        "selfLink": "A String", # URL to this resource.
+      },
+    ],
+    "kind": "books#volumeannotations", # Resource type
+    "version": "A String", # The version string for all of the volume annotations in this layer (not just the ones in this response). Note: the version string doesn't apply to the annotation data, just the information in this response (e.g. the location of annotations in the book).
+    "totalItems": 42, # The total number of volume annotations found.
+  }</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/books_v1.myconfig.html b/docs/dyn/books_v1.myconfig.html
new file mode 100644
index 0000000..5b133bf
--- /dev/null
+++ b/docs/dyn/books_v1.myconfig.html
@@ -0,0 +1,378 @@
+<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.myconfig.html">myconfig</a></h1>
+<h2>Instance Methods</h2>
+<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">
+  <code><a href="#requestAccess">requestAccess(source, volumeId, nonce, cpksver, licenseTypes=None, locale=None)</a></code></p>
+<p class="firstline">Request concurrent and download access restrictions.</p>
+<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>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="releaseDownloadAccess">releaseDownloadAccess(volumeIds, cpksver, source=None, locale=None)</code>
+  <pre>Release downloaded content access restriction.
+
+Args:
+  volumeIds: string, The volume(s) to release restrictions for. (required) (repeated)
+  cpksver: string, The device/version ID from which to release the restriction. (required)
+  source: string, String to identify the originator of this request.
+  locale: string, ISO-639-1, ISO-3166-1 codes for message localization, i.e. en_US.
+
+Returns:
+  An object of the form:
+
+    {
+    "downloadAccessList": [ # A list of download access responses.
+      {
+        "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.
+      },
+    ],
+    "kind": "books#downloadAccesses", # Resource type.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="requestAccess">requestAccess(source, volumeId, nonce, cpksver, licenseTypes=None, locale=None)</code>
+  <pre>Request concurrent and download access restrictions.
+
+Args:
+  source: string, String to identify the originator of this request. (required)
+  volumeId: string, The volume to request concurrent/download restrictions for. (required)
+  nonce: string, The client nonce value. (required)
+  cpksver: string, The device/version ID from which to request the restrictions. (required)
+  licenseTypes: string, The type of access license to request. If not specified, the default is BOTH.
+    Allowed values
+      BOTH - Both concurrent and download licenses.
+      CONCURRENT - Concurrent access license.
+      DOWNLOAD - Offline download access license.
+  locale: string, ISO-639-1, ISO-3166-1 codes for message localization, i.e. en_US.
+
+Returns:
+  An object of the form:
+
+    {
+    "downloadAccess": { # A download access response.
+      "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.
+    },
+    "kind": "books#requestAccess", # Resource type.
+    "concurrentAccess": { # A concurrent access response.
+      "nonce": "A String", # Client nonce for verification. Download access and client-validation only.
+      "kind": "books#concurrentAccessRestriction", # Resource type.
+      "restricted": True or False, # Whether this volume has any concurrent access restrictions.
+      "volumeId": "A String", # Identifies the volume for which this entry applies.
+      "maxConcurrentDevices": 42, # The maximum number of concurrent access licenses for this volume.
+      "deviceAllowed": True or False, # Whether access is granted for this (user, device, volume).
+      "source": "A String", # Client app identifier for verification. Download access and client-validation only.
+      "timeWindowSeconds": 42, # Time in seconds for license auto-expiration.
+      "signature": "A String", # Response signature.
+      "reasonCode": "A String", # Error/warning reason code.
+      "message": "A String", # Error/warning message.
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="syncVolumeLicenses">syncVolumeLicenses(source, nonce, cpksver, features=None, locale=None, showPreorders=None, volumeIds=None)</code>
+  <pre>Request downloaded content access for specified volumes on the My eBooks shelf.
+
+Args:
+  source: string, String to identify the originator of this request. (required)
+  nonce: string, The client nonce value. (required)
+  cpksver: string, The device/version ID from which to release the restriction. (required)
+  features: string, List of features supported by the client, i.e., 'RENTALS' (repeated)
+    Allowed values
+      RENTALS - Client supports rentals.
+  locale: string, ISO-639-1, ISO-3166-1 codes for message localization, i.e. en_US.
+  showPreorders: boolean, Set to true to show pre-ordered books. Defaults to false.
+  volumeIds: string, The volume(s) to request download restrictions for. (repeated)
+
+Returns:
+  An object of the form:
+
+    {
+    "totalItems": 42, # Total number of volumes found. This might be greater than the number of volumes returned in this response if results have been paginated.
+    "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.
+          "publisher": "A String", # Publisher of this volume. (In LITE projection.)
+          "subtitle": "A String", # Volume subtitle. (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.)
+          "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.
+          "pageCount": 42, # Total number of pages as per publisher metadata.
+          "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)
+          },
+          "publishedDate": "A String", # Date of publication. (In LITE projection.)
+          "previewLink": "A String", # URL to preview this volume on the Google Books site.
+          "printType": "A String", # Type of publication of this volume. Possible values are BOOK or MAGAZINE.
+          "ratingsCount": 42, # The number of review ratings for this volume.
+          "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).
+          },
+          "contentVersion": "A String", # An identifier for the version of the volume content (text & images). (In LITE projection)
+          "printedPageCount": 42, # Total number of printed pages in generated pdf representation.
+          "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.
+            },
+          ],
+          "authors": [ # The names of the authors and/or editors for this volume. (In LITE projection)
+            "A String",
+          ],
+          "title": "A String", # Volume title. (In LITE projection.)
+          "canonicalVolumeLink": "A String", # Canonical URL for a volume. (In LITE projection.)
+          "infoLink": "A String", # URL to view information about this volume on the Google Books site. (In LITE projection)
+          "categories": [ # A list of subject categories, such as "Fiction", "Suspense", etc.
+            "A String",
+          ],
+          "averageRating": 3.14, # The mean review rating for this volume. (min = 1.0, max = 5.0)
+        },
+        "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": "books#volumes", # Resource type.
+  }</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
new file mode 100644
index 0000000..d28c361
--- /dev/null
+++ b/docs/dyn/books_v1.mylibrary.annotations.html
@@ -0,0 +1,686 @@
+<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.mylibrary.html">mylibrary</a> . <a href="books_v1.mylibrary.annotations.html">annotations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(annotationId, source=None)</a></code></p>
+<p class="firstline">Deletes an annotation.</p>
+<p class="toc_element">
+  <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>
+<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>
+<p class="firstline">Retrieves a list of annotations, 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="#summary">summary(layerIds, volumeId)</a></code></p>
+<p class="firstline">Gets the summary of specified layers.</p>
+<p class="toc_element">
+  <code><a href="#update">update(annotationId, body, source=None)</a></code></p>
+<p class="firstline">Updates an existing annotation.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(annotationId, source=None)</code>
+  <pre>Deletes an annotation.
+
+Args:
+  annotationId: string, The ID for the annotation to delete. (required)
+  source: string, String to identify the originator of this request.
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(annotationId, source=None)</code>
+  <pre>Gets an annotation by its ID.
+
+Args:
+  annotationId: string, The ID for the annotation to retrieve. (required)
+  source: string, String to identify the originator of this request.
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "books#annotation", # Resource type.
+      "updated": "A String", # Timestamp for the last time this annotation was modified.
+      "created": "A String", # Timestamp for the created time of this annotation.
+      "deleted": True or False, # Indicates that this annotation is deleted.
+      "beforeSelectedText": "A String", # Anchor text before excerpt. For requests, if the user bookmarked a screen that has no flowing text on it, then this field should be empty.
+      "currentVersionRanges": { # Selection ranges for the most recent content version.
+        "contentVersion": "A String", # Content version applicable to ranges below.
+        "gbTextRange": { # Range in GB text format for this annotation for version above.
+          "startPosition": "A String", # The starting position for the range.
+          "endPosition": "A String", # The ending position for the range.
+          "startOffset": "A String", # The offset from the starting position.
+          "endOffset": "A String", # The offset from the ending position.
+        },
+        "cfiRange": { # Range in CFI format for this annotation for version above.
+          "startPosition": "A String", # The starting position for the range.
+          "endPosition": "A String", # The ending position for the range.
+          "startOffset": "A String", # The offset from the starting position.
+          "endOffset": "A String", # The offset from the ending position.
+        },
+        "imageCfiRange": { # Range in image CFI format for this annotation for version above.
+          "startPosition": "A String", # The starting position for the range.
+          "endPosition": "A String", # The ending position for the range.
+          "startOffset": "A String", # The offset from the starting position.
+          "endOffset": "A String", # The offset from the ending position.
+        },
+        "gbImageRange": { # Range in GB image format for this annotation for version above.
+          "startPosition": "A String", # The starting position for the range.
+          "endPosition": "A String", # The ending position for the range.
+          "startOffset": "A String", # The offset from the starting position.
+          "endOffset": "A String", # The offset from the ending position.
+        },
+      },
+      "afterSelectedText": "A String", # Anchor text after excerpt. For requests, if the user bookmarked a screen that has no flowing text on it, then this field should be empty.
+      "clientVersionRanges": { # Selection ranges sent from the client.
+        "contentVersion": "A String", # Content version the client sent in.
+        "gbTextRange": { # Range in GB text format for this annotation sent by client.
+          "startPosition": "A String", # The starting position for the range.
+          "endPosition": "A String", # The ending position for the range.
+          "startOffset": "A String", # The offset from the starting position.
+          "endOffset": "A String", # The offset from the ending position.
+        },
+        "cfiRange": { # Range in CFI format for this annotation sent by client.
+          "startPosition": "A String", # The starting position for the range.
+          "endPosition": "A String", # The ending position for the range.
+          "startOffset": "A String", # The offset from the starting position.
+          "endOffset": "A String", # The offset from the ending position.
+        },
+        "imageCfiRange": { # Range in image CFI format for this annotation sent by client.
+          "startPosition": "A String", # The starting position for the range.
+          "endPosition": "A String", # The ending position for the range.
+          "startOffset": "A String", # The offset from the starting position.
+          "endOffset": "A String", # The offset from the ending position.
+        },
+        "gbImageRange": { # Range in GB image format for this annotation sent by client.
+          "startPosition": "A String", # The starting position for the range.
+          "endPosition": "A String", # The ending position for the range.
+          "startOffset": "A String", # The offset from the starting position.
+          "endOffset": "A String", # The offset from the ending position.
+        },
+      },
+      "layerSummary": {
+        "limitType": "A String", # Type of limitation on this layer. "limited" or "unlimited" for the "copy" layer.
+        "remainingCharacterCount": 42, # Remaining allowed characters on this layer, especially for the "copy" layer.
+        "allowedCharacterCount": 42, # Maximum allowed characters on this layer, especially for the "copy" layer.
+      },
+      "volumeId": "A String", # The volume that this annotation belongs to.
+      "pageIds": [ # Pages that this annotation spans.
+        "A String",
+      ],
+      "layerId": "A String", # The layer this annotation is for.
+      "selectedText": "A String", # Excerpt from the volume.
+      "highlightStyle": "A String", # The highlight style for this annotation.
+      "data": "A String", # User-created data for this annotation.
+      "id": "A String", # Id of this annotation, in the form of a GUID.
+      "selfLink": "A String", # URL to this resource.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(body, source=None, showOnlySummaryInResponse=None)</code>
+  <pre>Inserts a new annotation.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "kind": "books#annotation", # Resource type.
+    "updated": "A String", # Timestamp for the last time this annotation was modified.
+    "created": "A String", # Timestamp for the created time of this annotation.
+    "deleted": True or False, # Indicates that this annotation is deleted.
+    "beforeSelectedText": "A String", # Anchor text before excerpt. For requests, if the user bookmarked a screen that has no flowing text on it, then this field should be empty.
+    "currentVersionRanges": { # Selection ranges for the most recent content version.
+      "contentVersion": "A String", # Content version applicable to ranges below.
+      "gbTextRange": { # Range in GB text format for this annotation for version above.
+        "startPosition": "A String", # The starting position for the range.
+        "endPosition": "A String", # The ending position for the range.
+        "startOffset": "A String", # The offset from the starting position.
+        "endOffset": "A String", # The offset from the ending position.
+      },
+      "cfiRange": { # Range in CFI format for this annotation for version above.
+        "startPosition": "A String", # The starting position for the range.
+        "endPosition": "A String", # The ending position for the range.
+        "startOffset": "A String", # The offset from the starting position.
+        "endOffset": "A String", # The offset from the ending position.
+      },
+      "imageCfiRange": { # Range in image CFI format for this annotation for version above.
+        "startPosition": "A String", # The starting position for the range.
+        "endPosition": "A String", # The ending position for the range.
+        "startOffset": "A String", # The offset from the starting position.
+        "endOffset": "A String", # The offset from the ending position.
+      },
+      "gbImageRange": { # Range in GB image format for this annotation for version above.
+        "startPosition": "A String", # The starting position for the range.
+        "endPosition": "A String", # The ending position for the range.
+        "startOffset": "A String", # The offset from the starting position.
+        "endOffset": "A String", # The offset from the ending position.
+      },
+    },
+    "afterSelectedText": "A String", # Anchor text after excerpt. For requests, if the user bookmarked a screen that has no flowing text on it, then this field should be empty.
+    "clientVersionRanges": { # Selection ranges sent from the client.
+      "contentVersion": "A String", # Content version the client sent in.
+      "gbTextRange": { # Range in GB text format for this annotation sent by client.
+        "startPosition": "A String", # The starting position for the range.
+        "endPosition": "A String", # The ending position for the range.
+        "startOffset": "A String", # The offset from the starting position.
+        "endOffset": "A String", # The offset from the ending position.
+      },
+      "cfiRange": { # Range in CFI format for this annotation sent by client.
+        "startPosition": "A String", # The starting position for the range.
+        "endPosition": "A String", # The ending position for the range.
+        "startOffset": "A String", # The offset from the starting position.
+        "endOffset": "A String", # The offset from the ending position.
+      },
+      "imageCfiRange": { # Range in image CFI format for this annotation sent by client.
+        "startPosition": "A String", # The starting position for the range.
+        "endPosition": "A String", # The ending position for the range.
+        "startOffset": "A String", # The offset from the starting position.
+        "endOffset": "A String", # The offset from the ending position.
+      },
+      "gbImageRange": { # Range in GB image format for this annotation sent by client.
+        "startPosition": "A String", # The starting position for the range.
+        "endPosition": "A String", # The ending position for the range.
+        "startOffset": "A String", # The offset from the starting position.
+        "endOffset": "A String", # The offset from the ending position.
+      },
+    },
+    "layerSummary": {
+      "limitType": "A String", # Type of limitation on this layer. "limited" or "unlimited" for the "copy" layer.
+      "remainingCharacterCount": 42, # Remaining allowed characters on this layer, especially for the "copy" layer.
+      "allowedCharacterCount": 42, # Maximum allowed characters on this layer, especially for the "copy" layer.
+    },
+    "volumeId": "A String", # The volume that this annotation belongs to.
+    "pageIds": [ # Pages that this annotation spans.
+      "A String",
+    ],
+    "layerId": "A String", # The layer this annotation is for.
+    "selectedText": "A String", # Excerpt from the volume.
+    "highlightStyle": "A String", # The highlight style for this annotation.
+    "data": "A String", # User-created data for this annotation.
+    "id": "A String", # Id of this annotation, in the form of a GUID.
+    "selfLink": "A String", # URL to this resource.
+  }
+
+  source: string, String to identify the originator of this request.
+  showOnlySummaryInResponse: boolean, Requests that only the summary of the specified layer be provided in the response.
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "books#annotation", # Resource type.
+      "updated": "A String", # Timestamp for the last time this annotation was modified.
+      "created": "A String", # Timestamp for the created time of this annotation.
+      "deleted": True or False, # Indicates that this annotation is deleted.
+      "beforeSelectedText": "A String", # Anchor text before excerpt. For requests, if the user bookmarked a screen that has no flowing text on it, then this field should be empty.
+      "currentVersionRanges": { # Selection ranges for the most recent content version.
+        "contentVersion": "A String", # Content version applicable to ranges below.
+        "gbTextRange": { # Range in GB text format for this annotation for version above.
+          "startPosition": "A String", # The starting position for the range.
+          "endPosition": "A String", # The ending position for the range.
+          "startOffset": "A String", # The offset from the starting position.
+          "endOffset": "A String", # The offset from the ending position.
+        },
+        "cfiRange": { # Range in CFI format for this annotation for version above.
+          "startPosition": "A String", # The starting position for the range.
+          "endPosition": "A String", # The ending position for the range.
+          "startOffset": "A String", # The offset from the starting position.
+          "endOffset": "A String", # The offset from the ending position.
+        },
+        "imageCfiRange": { # Range in image CFI format for this annotation for version above.
+          "startPosition": "A String", # The starting position for the range.
+          "endPosition": "A String", # The ending position for the range.
+          "startOffset": "A String", # The offset from the starting position.
+          "endOffset": "A String", # The offset from the ending position.
+        },
+        "gbImageRange": { # Range in GB image format for this annotation for version above.
+          "startPosition": "A String", # The starting position for the range.
+          "endPosition": "A String", # The ending position for the range.
+          "startOffset": "A String", # The offset from the starting position.
+          "endOffset": "A String", # The offset from the ending position.
+        },
+      },
+      "afterSelectedText": "A String", # Anchor text after excerpt. For requests, if the user bookmarked a screen that has no flowing text on it, then this field should be empty.
+      "clientVersionRanges": { # Selection ranges sent from the client.
+        "contentVersion": "A String", # Content version the client sent in.
+        "gbTextRange": { # Range in GB text format for this annotation sent by client.
+          "startPosition": "A String", # The starting position for the range.
+          "endPosition": "A String", # The ending position for the range.
+          "startOffset": "A String", # The offset from the starting position.
+          "endOffset": "A String", # The offset from the ending position.
+        },
+        "cfiRange": { # Range in CFI format for this annotation sent by client.
+          "startPosition": "A String", # The starting position for the range.
+          "endPosition": "A String", # The ending position for the range.
+          "startOffset": "A String", # The offset from the starting position.
+          "endOffset": "A String", # The offset from the ending position.
+        },
+        "imageCfiRange": { # Range in image CFI format for this annotation sent by client.
+          "startPosition": "A String", # The starting position for the range.
+          "endPosition": "A String", # The ending position for the range.
+          "startOffset": "A String", # The offset from the starting position.
+          "endOffset": "A String", # The offset from the ending position.
+        },
+        "gbImageRange": { # Range in GB image format for this annotation sent by client.
+          "startPosition": "A String", # The starting position for the range.
+          "endPosition": "A String", # The ending position for the range.
+          "startOffset": "A String", # The offset from the starting position.
+          "endOffset": "A String", # The offset from the ending position.
+        },
+      },
+      "layerSummary": {
+        "limitType": "A String", # Type of limitation on this layer. "limited" or "unlimited" for the "copy" layer.
+        "remainingCharacterCount": 42, # Remaining allowed characters on this layer, especially for the "copy" layer.
+        "allowedCharacterCount": 42, # Maximum allowed characters on this layer, especially for the "copy" layer.
+      },
+      "volumeId": "A String", # The volume that this annotation belongs to.
+      "pageIds": [ # Pages that this annotation spans.
+        "A String",
+      ],
+      "layerId": "A String", # The layer this annotation is for.
+      "selectedText": "A String", # Excerpt from the volume.
+      "highlightStyle": "A String", # The highlight style for this annotation.
+      "data": "A String", # User-created data for this annotation.
+      "id": "A String", # Id of this annotation, in the form of a GUID.
+      "selfLink": "A String", # URL to this resource.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(pageToken=None, updatedMin=None, showDeleted=None, pageIds=None, contentVersion=None, layerId=None, updatedMax=None, volumeId=None, maxResults=None, layerIds=None, source=None)</code>
+  <pre>Retrieves a list of annotations, possibly filtered.
+
+Args:
+  pageToken: string, The value of the nextToken from the previous page.
+  updatedMin: string, RFC 3339 timestamp to restrict to items updated since this timestamp (inclusive).
+  showDeleted: boolean, Set to true to return deleted annotations. updatedMin must be in the request to use this. Defaults to false.
+  pageIds: string, The page ID(s) for the volume that is being queried. (repeated)
+  contentVersion: string, The content version for the requested volume.
+  layerId: string, The layer ID to limit annotation by.
+  updatedMax: string, RFC 3339 timestamp to restrict to items updated prior to this timestamp (exclusive).
+  volumeId: string, The volume to restrict annotations to.
+  maxResults: integer, Maximum number of results to return
+  layerIds: string, The layer ID(s) to limit annotation by. (repeated)
+  source: string, String to identify the originator of this request.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Token to pass in for pagination for the next page. This will not be present if this request does not have more results.
+    "items": [ # A list of annotations.
+      {
+          "kind": "books#annotation", # Resource type.
+          "updated": "A String", # Timestamp for the last time this annotation was modified.
+          "created": "A String", # Timestamp for the created time of this annotation.
+          "deleted": True or False, # Indicates that this annotation is deleted.
+          "beforeSelectedText": "A String", # Anchor text before excerpt. For requests, if the user bookmarked a screen that has no flowing text on it, then this field should be empty.
+          "currentVersionRanges": { # Selection ranges for the most recent content version.
+            "contentVersion": "A String", # Content version applicable to ranges below.
+            "gbTextRange": { # Range in GB text format for this annotation for version above.
+              "startPosition": "A String", # The starting position for the range.
+              "endPosition": "A String", # The ending position for the range.
+              "startOffset": "A String", # The offset from the starting position.
+              "endOffset": "A String", # The offset from the ending position.
+            },
+            "cfiRange": { # Range in CFI format for this annotation for version above.
+              "startPosition": "A String", # The starting position for the range.
+              "endPosition": "A String", # The ending position for the range.
+              "startOffset": "A String", # The offset from the starting position.
+              "endOffset": "A String", # The offset from the ending position.
+            },
+            "imageCfiRange": { # Range in image CFI format for this annotation for version above.
+              "startPosition": "A String", # The starting position for the range.
+              "endPosition": "A String", # The ending position for the range.
+              "startOffset": "A String", # The offset from the starting position.
+              "endOffset": "A String", # The offset from the ending position.
+            },
+            "gbImageRange": { # Range in GB image format for this annotation for version above.
+              "startPosition": "A String", # The starting position for the range.
+              "endPosition": "A String", # The ending position for the range.
+              "startOffset": "A String", # The offset from the starting position.
+              "endOffset": "A String", # The offset from the ending position.
+            },
+          },
+          "afterSelectedText": "A String", # Anchor text after excerpt. For requests, if the user bookmarked a screen that has no flowing text on it, then this field should be empty.
+          "clientVersionRanges": { # Selection ranges sent from the client.
+            "contentVersion": "A String", # Content version the client sent in.
+            "gbTextRange": { # Range in GB text format for this annotation sent by client.
+              "startPosition": "A String", # The starting position for the range.
+              "endPosition": "A String", # The ending position for the range.
+              "startOffset": "A String", # The offset from the starting position.
+              "endOffset": "A String", # The offset from the ending position.
+            },
+            "cfiRange": { # Range in CFI format for this annotation sent by client.
+              "startPosition": "A String", # The starting position for the range.
+              "endPosition": "A String", # The ending position for the range.
+              "startOffset": "A String", # The offset from the starting position.
+              "endOffset": "A String", # The offset from the ending position.
+            },
+            "imageCfiRange": { # Range in image CFI format for this annotation sent by client.
+              "startPosition": "A String", # The starting position for the range.
+              "endPosition": "A String", # The ending position for the range.
+              "startOffset": "A String", # The offset from the starting position.
+              "endOffset": "A String", # The offset from the ending position.
+            },
+            "gbImageRange": { # Range in GB image format for this annotation sent by client.
+              "startPosition": "A String", # The starting position for the range.
+              "endPosition": "A String", # The ending position for the range.
+              "startOffset": "A String", # The offset from the starting position.
+              "endOffset": "A String", # The offset from the ending position.
+            },
+          },
+          "layerSummary": {
+            "limitType": "A String", # Type of limitation on this layer. "limited" or "unlimited" for the "copy" layer.
+            "remainingCharacterCount": 42, # Remaining allowed characters on this layer, especially for the "copy" layer.
+            "allowedCharacterCount": 42, # Maximum allowed characters on this layer, especially for the "copy" layer.
+          },
+          "volumeId": "A String", # The volume that this annotation belongs to.
+          "pageIds": [ # Pages that this annotation spans.
+            "A String",
+          ],
+          "layerId": "A String", # The layer this annotation is for.
+          "selectedText": "A String", # Excerpt from the volume.
+          "highlightStyle": "A String", # The highlight style for this annotation.
+          "data": "A String", # User-created data for this annotation.
+          "id": "A String", # Id of this annotation, in the form of a GUID.
+          "selfLink": "A String", # URL to this resource.
+        },
+    ],
+    "kind": "books#annotations", # Resource type.
+    "totalItems": 42, # Total number of annotations found. This may be greater than the number of notes returned in this response if results have been paginated.
+  }</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="summary">summary(layerIds, volumeId)</code>
+  <pre>Gets the summary of specified layers.
+
+Args:
+  layerIds: string, Array of layer IDs to get the summary for. (required) (repeated)
+  volumeId: string, Volume id to get the summary for. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "layers": [
+      {
+        "limitType": "A String",
+        "remainingCharacterCount": 42,
+        "updated": "A String",
+        "layerId": "A String",
+        "allowedCharacterCount": 42,
+      },
+    ],
+    "kind": "books#annotationsSummary",
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(annotationId, body, source=None)</code>
+  <pre>Updates an existing annotation.
+
+Args:
+  annotationId: string, The ID for the annotation to update. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "kind": "books#annotation", # Resource type.
+    "updated": "A String", # Timestamp for the last time this annotation was modified.
+    "created": "A String", # Timestamp for the created time of this annotation.
+    "deleted": True or False, # Indicates that this annotation is deleted.
+    "beforeSelectedText": "A String", # Anchor text before excerpt. For requests, if the user bookmarked a screen that has no flowing text on it, then this field should be empty.
+    "currentVersionRanges": { # Selection ranges for the most recent content version.
+      "contentVersion": "A String", # Content version applicable to ranges below.
+      "gbTextRange": { # Range in GB text format for this annotation for version above.
+        "startPosition": "A String", # The starting position for the range.
+        "endPosition": "A String", # The ending position for the range.
+        "startOffset": "A String", # The offset from the starting position.
+        "endOffset": "A String", # The offset from the ending position.
+      },
+      "cfiRange": { # Range in CFI format for this annotation for version above.
+        "startPosition": "A String", # The starting position for the range.
+        "endPosition": "A String", # The ending position for the range.
+        "startOffset": "A String", # The offset from the starting position.
+        "endOffset": "A String", # The offset from the ending position.
+      },
+      "imageCfiRange": { # Range in image CFI format for this annotation for version above.
+        "startPosition": "A String", # The starting position for the range.
+        "endPosition": "A String", # The ending position for the range.
+        "startOffset": "A String", # The offset from the starting position.
+        "endOffset": "A String", # The offset from the ending position.
+      },
+      "gbImageRange": { # Range in GB image format for this annotation for version above.
+        "startPosition": "A String", # The starting position for the range.
+        "endPosition": "A String", # The ending position for the range.
+        "startOffset": "A String", # The offset from the starting position.
+        "endOffset": "A String", # The offset from the ending position.
+      },
+    },
+    "afterSelectedText": "A String", # Anchor text after excerpt. For requests, if the user bookmarked a screen that has no flowing text on it, then this field should be empty.
+    "clientVersionRanges": { # Selection ranges sent from the client.
+      "contentVersion": "A String", # Content version the client sent in.
+      "gbTextRange": { # Range in GB text format for this annotation sent by client.
+        "startPosition": "A String", # The starting position for the range.
+        "endPosition": "A String", # The ending position for the range.
+        "startOffset": "A String", # The offset from the starting position.
+        "endOffset": "A String", # The offset from the ending position.
+      },
+      "cfiRange": { # Range in CFI format for this annotation sent by client.
+        "startPosition": "A String", # The starting position for the range.
+        "endPosition": "A String", # The ending position for the range.
+        "startOffset": "A String", # The offset from the starting position.
+        "endOffset": "A String", # The offset from the ending position.
+      },
+      "imageCfiRange": { # Range in image CFI format for this annotation sent by client.
+        "startPosition": "A String", # The starting position for the range.
+        "endPosition": "A String", # The ending position for the range.
+        "startOffset": "A String", # The offset from the starting position.
+        "endOffset": "A String", # The offset from the ending position.
+      },
+      "gbImageRange": { # Range in GB image format for this annotation sent by client.
+        "startPosition": "A String", # The starting position for the range.
+        "endPosition": "A String", # The ending position for the range.
+        "startOffset": "A String", # The offset from the starting position.
+        "endOffset": "A String", # The offset from the ending position.
+      },
+    },
+    "layerSummary": {
+      "limitType": "A String", # Type of limitation on this layer. "limited" or "unlimited" for the "copy" layer.
+      "remainingCharacterCount": 42, # Remaining allowed characters on this layer, especially for the "copy" layer.
+      "allowedCharacterCount": 42, # Maximum allowed characters on this layer, especially for the "copy" layer.
+    },
+    "volumeId": "A String", # The volume that this annotation belongs to.
+    "pageIds": [ # Pages that this annotation spans.
+      "A String",
+    ],
+    "layerId": "A String", # The layer this annotation is for.
+    "selectedText": "A String", # Excerpt from the volume.
+    "highlightStyle": "A String", # The highlight style for this annotation.
+    "data": "A String", # User-created data for this annotation.
+    "id": "A String", # Id of this annotation, in the form of a GUID.
+    "selfLink": "A String", # URL to this resource.
+  }
+
+  source: string, String to identify the originator of this request.
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "books#annotation", # Resource type.
+      "updated": "A String", # Timestamp for the last time this annotation was modified.
+      "created": "A String", # Timestamp for the created time of this annotation.
+      "deleted": True or False, # Indicates that this annotation is deleted.
+      "beforeSelectedText": "A String", # Anchor text before excerpt. For requests, if the user bookmarked a screen that has no flowing text on it, then this field should be empty.
+      "currentVersionRanges": { # Selection ranges for the most recent content version.
+        "contentVersion": "A String", # Content version applicable to ranges below.
+        "gbTextRange": { # Range in GB text format for this annotation for version above.
+          "startPosition": "A String", # The starting position for the range.
+          "endPosition": "A String", # The ending position for the range.
+          "startOffset": "A String", # The offset from the starting position.
+          "endOffset": "A String", # The offset from the ending position.
+        },
+        "cfiRange": { # Range in CFI format for this annotation for version above.
+          "startPosition": "A String", # The starting position for the range.
+          "endPosition": "A String", # The ending position for the range.
+          "startOffset": "A String", # The offset from the starting position.
+          "endOffset": "A String", # The offset from the ending position.
+        },
+        "imageCfiRange": { # Range in image CFI format for this annotation for version above.
+          "startPosition": "A String", # The starting position for the range.
+          "endPosition": "A String", # The ending position for the range.
+          "startOffset": "A String", # The offset from the starting position.
+          "endOffset": "A String", # The offset from the ending position.
+        },
+        "gbImageRange": { # Range in GB image format for this annotation for version above.
+          "startPosition": "A String", # The starting position for the range.
+          "endPosition": "A String", # The ending position for the range.
+          "startOffset": "A String", # The offset from the starting position.
+          "endOffset": "A String", # The offset from the ending position.
+        },
+      },
+      "afterSelectedText": "A String", # Anchor text after excerpt. For requests, if the user bookmarked a screen that has no flowing text on it, then this field should be empty.
+      "clientVersionRanges": { # Selection ranges sent from the client.
+        "contentVersion": "A String", # Content version the client sent in.
+        "gbTextRange": { # Range in GB text format for this annotation sent by client.
+          "startPosition": "A String", # The starting position for the range.
+          "endPosition": "A String", # The ending position for the range.
+          "startOffset": "A String", # The offset from the starting position.
+          "endOffset": "A String", # The offset from the ending position.
+        },
+        "cfiRange": { # Range in CFI format for this annotation sent by client.
+          "startPosition": "A String", # The starting position for the range.
+          "endPosition": "A String", # The ending position for the range.
+          "startOffset": "A String", # The offset from the starting position.
+          "endOffset": "A String", # The offset from the ending position.
+        },
+        "imageCfiRange": { # Range in image CFI format for this annotation sent by client.
+          "startPosition": "A String", # The starting position for the range.
+          "endPosition": "A String", # The ending position for the range.
+          "startOffset": "A String", # The offset from the starting position.
+          "endOffset": "A String", # The offset from the ending position.
+        },
+        "gbImageRange": { # Range in GB image format for this annotation sent by client.
+          "startPosition": "A String", # The starting position for the range.
+          "endPosition": "A String", # The ending position for the range.
+          "startOffset": "A String", # The offset from the starting position.
+          "endOffset": "A String", # The offset from the ending position.
+        },
+      },
+      "layerSummary": {
+        "limitType": "A String", # Type of limitation on this layer. "limited" or "unlimited" for the "copy" layer.
+        "remainingCharacterCount": 42, # Remaining allowed characters on this layer, especially for the "copy" layer.
+        "allowedCharacterCount": 42, # Maximum allowed characters on this layer, especially for the "copy" layer.
+      },
+      "volumeId": "A String", # The volume that this annotation belongs to.
+      "pageIds": [ # Pages that this annotation spans.
+        "A String",
+      ],
+      "layerId": "A String", # The layer this annotation is for.
+      "selectedText": "A String", # Excerpt from the volume.
+      "highlightStyle": "A String", # The highlight style for this annotation.
+      "data": "A String", # User-created data for this annotation.
+      "id": "A String", # Id of this annotation, in the form of a GUID.
+      "selfLink": "A String", # URL to this resource.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/books_v1.mylibrary.bookshelves.html b/docs/dyn/books_v1.mylibrary.bookshelves.html
new file mode 100644
index 0000000..907ef4f
--- /dev/null
+++ b/docs/dyn/books_v1.mylibrary.bookshelves.html
@@ -0,0 +1,199 @@
+<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.mylibrary.html">mylibrary</a> . <a href="books_v1.mylibrary.bookshelves.html">bookshelves</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="books_v1.mylibrary.bookshelves.volumes.html">volumes()</a></code>
+</p>
+<p class="firstline">Returns the volumes Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#addVolume">addVolume(shelf, volumeId, source=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>
+<p class="firstline">Clears all volumes from a bookshelf.</p>
+<p class="toc_element">
+  <code><a href="#get">get(shelf, source=None)</a></code></p>
+<p class="firstline">Retrieves metadata for a specific bookshelf belonging to the authenticated user.</p>
+<p class="toc_element">
+  <code><a href="#list">list(source=None)</a></code></p>
+<p class="firstline">Retrieves a list of bookshelves belonging to the authenticated user.</p>
+<p class="toc_element">
+  <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>
+<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>
+  <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.
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="clearVolumes">clearVolumes(shelf, source=None)</code>
+  <pre>Clears all volumes from a bookshelf.
+
+Args:
+  shelf: string, ID of bookshelf from which to remove a volume. (required)
+  source: string, String to identify the originator of this request.
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(shelf, source=None)</code>
+  <pre>Retrieves metadata for a specific bookshelf belonging to the authenticated user.
+
+Args:
+  shelf: string, ID of bookshelf to retrieve. (required)
+  source: string, String to identify the originator of this request.
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "books#bookshelf", # Resource type for bookshelf metadata.
+    "description": "A String", # Description of this bookshelf.
+    "created": "A String", # Created time for this bookshelf (formatted UTC timestamp with millisecond resolution).
+    "volumeCount": 42, # Number of volumes in this bookshelf.
+    "title": "A String", # Title of this bookshelf.
+    "updated": "A String", # Last modified time of this bookshelf (formatted UTC timestamp with millisecond resolution).
+    "access": "A String", # Whether this bookshelf is PUBLIC or PRIVATE.
+    "volumesLastUpdated": "A String", # Last time a volume was added or removed from this bookshelf (formatted UTC timestamp with millisecond resolution).
+    "id": 42, # Id of this bookshelf, only unique by user.
+    "selfLink": "A String", # URL to this resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(source=None)</code>
+  <pre>Retrieves a list of bookshelves belonging to the authenticated user.
+
+Args:
+  source: string, String to identify the originator of this request.
+
+Returns:
+  An object of the form:
+
+    {
+    "items": [ # A list of bookshelves.
+      {
+        "kind": "books#bookshelf", # Resource type for bookshelf metadata.
+        "description": "A String", # Description of this bookshelf.
+        "created": "A String", # Created time for this bookshelf (formatted UTC timestamp with millisecond resolution).
+        "volumeCount": 42, # Number of volumes in this bookshelf.
+        "title": "A String", # Title of this bookshelf.
+        "updated": "A String", # Last modified time of this bookshelf (formatted UTC timestamp with millisecond resolution).
+        "access": "A String", # Whether this bookshelf is PUBLIC or PRIVATE.
+        "volumesLastUpdated": "A String", # Last time a volume was added or removed from this bookshelf (formatted UTC timestamp with millisecond resolution).
+        "id": 42, # Id of this bookshelf, only unique by user.
+        "selfLink": "A String", # URL to this resource.
+      },
+    ],
+    "kind": "books#bookshelves", # Resource type.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="moveVolume">moveVolume(shelf, volumeId, volumePosition, source=None)</code>
+  <pre>Moves a volume within a bookshelf.
+
+Args:
+  shelf: string, ID of bookshelf with the volume. (required)
+  volumeId: string, ID of volume to move. (required)
+  volumePosition: integer, Position on shelf to move the item (0 puts the item before the current first item, 1 puts it between the first and the second and so on.) (required)
+  source: string, String to identify the originator of this request.
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="removeVolume">removeVolume(shelf, volumeId, source=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.
+</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/books_v1.mylibrary.bookshelves.volumes.html b/docs/dyn/books_v1.mylibrary.bookshelves.volumes.html
new file mode 100644
index 0000000..5127177
--- /dev/null
+++ b/docs/dyn/books_v1.mylibrary.bookshelves.volumes.html
@@ -0,0 +1,289 @@
+<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.mylibrary.html">mylibrary</a> . <a href="books_v1.mylibrary.bookshelves.html">bookshelves</a> . <a href="books_v1.mylibrary.bookshelves.volumes.html">volumes</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(shelf, q=None, projection=None, source=None, country=None, showPreorders=None, startIndex=None, maxResults=None)</a></code></p>
+<p class="firstline">Gets volume information for volumes on a bookshelf.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(shelf, q=None, projection=None, source=None, country=None, showPreorders=None, startIndex=None, maxResults=None)</code>
+  <pre>Gets volume information for volumes on a bookshelf.
+
+Args:
+  shelf: string, The bookshelf ID or name retrieve volumes for. (required)
+  q: string, Full-text search query string in this bookshelf.
+  projection: string, Restrict information returned to a set of selected fields.
+    Allowed values
+      full - Includes all volume data.
+      lite - Includes a subset of fields in volumeInfo and accessInfo.
+  source: string, String to identify the originator of this request.
+  country: string, ISO-3166-1 code to override the IP-based location.
+  showPreorders: boolean, Set to true to show pre-ordered books. Defaults to false.
+  startIndex: integer, Index of the first element to return (starts at 0)
+  maxResults: integer, Maximum number of results to return
+
+Returns:
+  An object of the form:
+
+    {
+    "totalItems": 42, # Total number of volumes found. This might be greater than the number of volumes returned in this response if results have been paginated.
+    "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.
+          "publisher": "A String", # Publisher of this volume. (In LITE projection.)
+          "subtitle": "A String", # Volume subtitle. (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.)
+          "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.
+          "pageCount": 42, # Total number of pages as per publisher metadata.
+          "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)
+          },
+          "publishedDate": "A String", # Date of publication. (In LITE projection.)
+          "previewLink": "A String", # URL to preview this volume on the Google Books site.
+          "printType": "A String", # Type of publication of this volume. Possible values are BOOK or MAGAZINE.
+          "ratingsCount": 42, # The number of review ratings for this volume.
+          "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).
+          },
+          "contentVersion": "A String", # An identifier for the version of the volume content (text & images). (In LITE projection)
+          "printedPageCount": 42, # Total number of printed pages in generated pdf representation.
+          "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.
+            },
+          ],
+          "authors": [ # The names of the authors and/or editors for this volume. (In LITE projection)
+            "A String",
+          ],
+          "title": "A String", # Volume title. (In LITE projection.)
+          "canonicalVolumeLink": "A String", # Canonical URL for a volume. (In LITE projection.)
+          "infoLink": "A String", # URL to view information about this volume on the Google Books site. (In LITE projection)
+          "categories": [ # A list of subject categories, such as "Fiction", "Suspense", etc.
+            "A String",
+          ],
+          "averageRating": 3.14, # The mean review rating for this volume. (min = 1.0, max = 5.0)
+        },
+        "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": "books#volumes", # Resource type.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/books_v1.mylibrary.html b/docs/dyn/books_v1.mylibrary.html
new file mode 100644
index 0000000..7880a0b
--- /dev/null
+++ b/docs/dyn/books_v1.mylibrary.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="books_v1.html">Books API</a> . <a href="books_v1.mylibrary.html">mylibrary</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="books_v1.mylibrary.annotations.html">annotations()</a></code>
+</p>
+<p class="firstline">Returns the annotations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="books_v1.mylibrary.bookshelves.html">bookshelves()</a></code>
+</p>
+<p class="firstline">Returns the bookshelves Resource.</p>
+
+<p class="toc_element">
+  <code><a href="books_v1.mylibrary.readingpositions.html">readingpositions()</a></code>
+</p>
+<p class="firstline">Returns the readingpositions Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/books_v1.mylibrary.readingpositions.html b/docs/dyn/books_v1.mylibrary.readingpositions.html
new file mode 100644
index 0000000..af47982
--- /dev/null
+++ b/docs/dyn/books_v1.mylibrary.readingpositions.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="books_v1.html">Books API</a> . <a href="books_v1.mylibrary.html">mylibrary</a> . <a href="books_v1.mylibrary.readingpositions.html">readingpositions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(volumeId, source=None, contentVersion=None)</a></code></p>
+<p class="firstline">Retrieves my reading position information for a volume.</p>
+<p class="toc_element">
+  <code><a href="#setPosition">setPosition(volumeId, timestamp, position, deviceCookie=None, source=None, contentVersion=None, action=None)</a></code></p>
+<p class="firstline">Sets my reading position information for a volume.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(volumeId, source=None, contentVersion=None)</code>
+  <pre>Retrieves my reading position information for a volume.
+
+Args:
+  volumeId: string, ID of volume for which to retrieve a reading position. (required)
+  source: string, String to identify the originator of this request.
+  contentVersion: string, Volume content version for which this reading position is requested.
+
+Returns:
+  An object of the form:
+
+    {
+    "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.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setPosition">setPosition(volumeId, timestamp, position, deviceCookie=None, source=None, contentVersion=None, action=None)</code>
+  <pre>Sets my reading position information for a volume.
+
+Args:
+  volumeId: string, ID of volume for which to update the reading position. (required)
+  timestamp: string, RFC 3339 UTC format timestamp associated with this reading position. (required)
+  position: string, Position string for the new volume reading position. (required)
+  deviceCookie: string, Random persistent device cookie optional on set position.
+  source: string, String to identify the originator of this request.
+  contentVersion: string, Volume content version for which this reading position applies.
+  action: string, Action that caused this reading position to be set.
+    Allowed values
+      bookmark - User chose bookmark within volume.
+      chapter - User selected chapter from list.
+      next-page - Next page event.
+      prev-page - Previous page event.
+      scroll - User navigated to page.
+      search - User chose search results within volume.
+</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/books_v1.volumes.associated.html b/docs/dyn/books_v1.volumes.associated.html
new file mode 100644
index 0000000..b014a81
--- /dev/null
+++ b/docs/dyn/books_v1.volumes.associated.html
@@ -0,0 +1,285 @@
+<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.volumes.html">volumes</a> . <a href="books_v1.volumes.associated.html">associated</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(volumeId, source=None, locale=None, association=None)</a></code></p>
+<p class="firstline">Return a list of associated books.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(volumeId, source=None, locale=None, association=None)</code>
+  <pre>Return a list of associated books.
+
+Args:
+  volumeId: string, ID of the source volume. (required)
+  source: string, String to identify the originator of this request.
+  locale: string, ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'. Used for generating recommendations.
+  association: string, Association type.
+    Allowed values
+      end-of-sample - Recommendations for display end-of-sample.
+      end-of-volume - Recommendations for display end-of-volume.
+
+Returns:
+  An object of the form:
+
+    {
+    "totalItems": 42, # Total number of volumes found. This might be greater than the number of volumes returned in this response if results have been paginated.
+    "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.
+          "publisher": "A String", # Publisher of this volume. (In LITE projection.)
+          "subtitle": "A String", # Volume subtitle. (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.)
+          "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.
+          "pageCount": 42, # Total number of pages as per publisher metadata.
+          "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)
+          },
+          "publishedDate": "A String", # Date of publication. (In LITE projection.)
+          "previewLink": "A String", # URL to preview this volume on the Google Books site.
+          "printType": "A String", # Type of publication of this volume. Possible values are BOOK or MAGAZINE.
+          "ratingsCount": 42, # The number of review ratings for this volume.
+          "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).
+          },
+          "contentVersion": "A String", # An identifier for the version of the volume content (text & images). (In LITE projection)
+          "printedPageCount": 42, # Total number of printed pages in generated pdf representation.
+          "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.
+            },
+          ],
+          "authors": [ # The names of the authors and/or editors for this volume. (In LITE projection)
+            "A String",
+          ],
+          "title": "A String", # Volume title. (In LITE projection.)
+          "canonicalVolumeLink": "A String", # Canonical URL for a volume. (In LITE projection.)
+          "infoLink": "A String", # URL to view information about this volume on the Google Books site. (In LITE projection)
+          "categories": [ # A list of subject categories, such as "Fiction", "Suspense", etc.
+            "A String",
+          ],
+          "averageRating": 3.14, # The mean review rating for this volume. (min = 1.0, max = 5.0)
+        },
+        "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": "books#volumes", # Resource type.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/books_v1.volumes.html b/docs/dyn/books_v1.volumes.html
new file mode 100644
index 0000000..b73ef04
--- /dev/null
+++ b/docs/dyn/books_v1.volumes.html
@@ -0,0 +1,534 @@
+<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.volumes.html">volumes</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="books_v1.volumes.associated.html">associated()</a></code>
+</p>
+<p class="firstline">Returns the associated Resource.</p>
+
+<p class="toc_element">
+  <code><a href="books_v1.volumes.mybooks.html">mybooks()</a></code>
+</p>
+<p class="firstline">Returns the mybooks Resource.</p>
+
+<p class="toc_element">
+  <code><a href="books_v1.volumes.recommended.html">recommended()</a></code>
+</p>
+<p class="firstline">Returns the recommended Resource.</p>
+
+<p class="toc_element">
+  <code><a href="books_v1.volumes.useruploaded.html">useruploaded()</a></code>
+</p>
+<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>
+<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>
+  <pre>Gets volume information for a single volume.
+
+Args:
+  volumeId: string, ID of volume to retrieve. (required)
+  projection: string, Restrict information returned to a set of selected fields.
+    Allowed values
+      full - Includes all volume data.
+      lite - Includes a subset of fields in volumeInfo and accessInfo.
+  source: string, String to identify the originator of this request.
+  country: string, ISO-3166-1 code to override the IP-based location.
+  partner: string, Brand results for partner ID.
+
+Returns:
+  An object of the form:
+
+    {
+    "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.
+      "publisher": "A String", # Publisher of this volume. (In LITE projection.)
+      "subtitle": "A String", # Volume subtitle. (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.)
+      "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.
+      "pageCount": 42, # Total number of pages as per publisher metadata.
+      "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)
+      },
+      "publishedDate": "A String", # Date of publication. (In LITE projection.)
+      "previewLink": "A String", # URL to preview this volume on the Google Books site.
+      "printType": "A String", # Type of publication of this volume. Possible values are BOOK or MAGAZINE.
+      "ratingsCount": 42, # The number of review ratings for this volume.
+      "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).
+      },
+      "contentVersion": "A String", # An identifier for the version of the volume content (text & images). (In LITE projection)
+      "printedPageCount": 42, # Total number of printed pages in generated pdf representation.
+      "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.
+        },
+      ],
+      "authors": [ # The names of the authors and/or editors for this volume. (In LITE projection)
+        "A String",
+      ],
+      "title": "A String", # Volume title. (In LITE projection.)
+      "canonicalVolumeLink": "A String", # Canonical URL for a volume. (In LITE projection.)
+      "infoLink": "A String", # URL to view information about this volume on the Google Books site. (In LITE projection)
+      "categories": [ # A list of subject categories, such as "Fiction", "Suspense", etc.
+        "A String",
+      ],
+      "averageRating": 3.14, # The mean review rating for this volume. (min = 1.0, max = 5.0)
+    },
+    "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.
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="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)</code>
+  <pre>Performs a book search.
+
+Args:
+  q: string, Full-text search query string. (required)
+  orderBy: string, Sort search results.
+    Allowed values
+      newest - Most recently published.
+      relevance - Relevance to search terms.
+  projection: string, Restrict information returned to a set of selected fields.
+    Allowed values
+      full - Includes all volume data.
+      lite - Includes a subset of fields in volumeInfo and accessInfo.
+  showPreorders: boolean, Set to true to show books available for preorder. Defaults to false.
+  download: string, Restrict to volumes by download availability.
+    Allowed values
+      epub - All volumes with epub.
+  startIndex: integer, Index of the first result to return (starts at 0)
+  partner: string, Restrict and brand results for partner ID.
+  source: string, String to identify the originator of this request.
+  maxResults: integer, Maximum number of results to return.
+  libraryRestrict: string, Restrict search to this user's library.
+    Allowed values
+      my-library - Restrict to the user's library, any shelf.
+      no-restrict - Do not restrict based on user's library.
+  langRestrict: string, Restrict results to books with this language code.
+  printType: string, Restrict to books or magazines.
+    Allowed values
+      all - All volume content types.
+      books - Just books.
+      magazines - Just magazines.
+  filter: string, Filter search results.
+    Allowed values
+      ebooks - All Google eBooks.
+      free-ebooks - Google eBook with full volume text viewability.
+      full - Public can view entire volume text.
+      paid-ebooks - Google eBook with a price.
+      partial - Public able to see parts of text.
+
+Returns:
+  An object of the form:
+
+    {
+    "totalItems": 42, # Total number of volumes found. This might be greater than the number of volumes returned in this response if results have been paginated.
+    "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.
+          "publisher": "A String", # Publisher of this volume. (In LITE projection.)
+          "subtitle": "A String", # Volume subtitle. (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.)
+          "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.
+          "pageCount": 42, # Total number of pages as per publisher metadata.
+          "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)
+          },
+          "publishedDate": "A String", # Date of publication. (In LITE projection.)
+          "previewLink": "A String", # URL to preview this volume on the Google Books site.
+          "printType": "A String", # Type of publication of this volume. Possible values are BOOK or MAGAZINE.
+          "ratingsCount": 42, # The number of review ratings for this volume.
+          "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).
+          },
+          "contentVersion": "A String", # An identifier for the version of the volume content (text & images). (In LITE projection)
+          "printedPageCount": 42, # Total number of printed pages in generated pdf representation.
+          "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.
+            },
+          ],
+          "authors": [ # The names of the authors and/or editors for this volume. (In LITE projection)
+            "A String",
+          ],
+          "title": "A String", # Volume title. (In LITE projection.)
+          "canonicalVolumeLink": "A String", # Canonical URL for a volume. (In LITE projection.)
+          "infoLink": "A String", # URL to view information about this volume on the Google Books site. (In LITE projection)
+          "categories": [ # A list of subject categories, such as "Fiction", "Suspense", etc.
+            "A String",
+          ],
+          "averageRating": 3.14, # The mean review rating for this volume. (min = 1.0, max = 5.0)
+        },
+        "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": "books#volumes", # Resource type.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/books_v1.volumes.mybooks.html b/docs/dyn/books_v1.volumes.mybooks.html
new file mode 100644
index 0000000..f28ca32
--- /dev/null
+++ b/docs/dyn/books_v1.volumes.mybooks.html
@@ -0,0 +1,296 @@
+<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.volumes.html">volumes</a> . <a href="books_v1.volumes.mybooks.html">mybooks</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(source=None, locale=None, acquireMethod=None, maxResults=None, startIndex=None, processingState=None)</a></code></p>
+<p class="firstline">Return a list of books in My Library.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(source=None, locale=None, acquireMethod=None, maxResults=None, startIndex=None, processingState=None)</code>
+  <pre>Return a list of books in My Library.
+
+Args:
+  source: string, String to identify the originator of this request.
+  locale: string, ISO-639-1 language and ISO-3166-1 country code. Ex:'en_US'. Used for generating recommendations.
+  acquireMethod: string, How the book was aquired (repeated)
+    Allowed values
+      PREORDERED - Preordered books (not yet available)
+      PREVIOUSLY_RENTED - User-rented books past their expiration time
+      PUBLIC_DOMAIN - Public domain books
+      PURCHASED - Purchased books
+      RENTED - User-rented books
+      SAMPLE - Sample books
+      UPLOADED - User uploaded books
+  maxResults: integer, Maximum number of results to return.
+  startIndex: integer, Index of the first result to return (starts at 0)
+  processingState: string, The processing state of the user uploaded volumes to be returned. Applicable only if the UPLOADED is specified in the acquireMethod. (repeated)
+    Allowed values
+      COMPLETED_FAILED - The volume processing hase failed.
+      COMPLETED_SUCCESS - The volume processing was completed.
+      RUNNING - The volume processing is not completed.
+
+Returns:
+  An object of the form:
+
+    {
+    "totalItems": 42, # Total number of volumes found. This might be greater than the number of volumes returned in this response if results have been paginated.
+    "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.
+          "publisher": "A String", # Publisher of this volume. (In LITE projection.)
+          "subtitle": "A String", # Volume subtitle. (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.)
+          "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.
+          "pageCount": 42, # Total number of pages as per publisher metadata.
+          "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)
+          },
+          "publishedDate": "A String", # Date of publication. (In LITE projection.)
+          "previewLink": "A String", # URL to preview this volume on the Google Books site.
+          "printType": "A String", # Type of publication of this volume. Possible values are BOOK or MAGAZINE.
+          "ratingsCount": 42, # The number of review ratings for this volume.
+          "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).
+          },
+          "contentVersion": "A String", # An identifier for the version of the volume content (text & images). (In LITE projection)
+          "printedPageCount": 42, # Total number of printed pages in generated pdf representation.
+          "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.
+            },
+          ],
+          "authors": [ # The names of the authors and/or editors for this volume. (In LITE projection)
+            "A String",
+          ],
+          "title": "A String", # Volume title. (In LITE projection.)
+          "canonicalVolumeLink": "A String", # Canonical URL for a volume. (In LITE projection.)
+          "infoLink": "A String", # URL to view information about this volume on the Google Books site. (In LITE projection)
+          "categories": [ # A list of subject categories, such as "Fiction", "Suspense", etc.
+            "A String",
+          ],
+          "averageRating": 3.14, # The mean review rating for this volume. (min = 1.0, max = 5.0)
+        },
+        "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": "books#volumes", # Resource type.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/books_v1.volumes.recommended.html b/docs/dyn/books_v1.volumes.recommended.html
new file mode 100644
index 0000000..93a9eac
--- /dev/null
+++ b/docs/dyn/books_v1.volumes.recommended.html
@@ -0,0 +1,304 @@
+<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.volumes.html">volumes</a> . <a href="books_v1.volumes.recommended.html">recommended</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(source=None, locale=None)</a></code></p>
+<p class="firstline">Return a list of recommended books for the current user.</p>
+<p class="toc_element">
+  <code><a href="#rate">rate(rating, volumeId, source=None, locale=None)</a></code></p>
+<p class="firstline">Rate a recommended book for the current user.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(source=None, locale=None)</code>
+  <pre>Return a list of recommended books for the current user.
+
+Args:
+  source: string, String to identify the originator of this request.
+  locale: string, ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'. Used for generating recommendations.
+
+Returns:
+  An object of the form:
+
+    {
+    "totalItems": 42, # Total number of volumes found. This might be greater than the number of volumes returned in this response if results have been paginated.
+    "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.
+          "publisher": "A String", # Publisher of this volume. (In LITE projection.)
+          "subtitle": "A String", # Volume subtitle. (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.)
+          "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.
+          "pageCount": 42, # Total number of pages as per publisher metadata.
+          "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)
+          },
+          "publishedDate": "A String", # Date of publication. (In LITE projection.)
+          "previewLink": "A String", # URL to preview this volume on the Google Books site.
+          "printType": "A String", # Type of publication of this volume. Possible values are BOOK or MAGAZINE.
+          "ratingsCount": 42, # The number of review ratings for this volume.
+          "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).
+          },
+          "contentVersion": "A String", # An identifier for the version of the volume content (text & images). (In LITE projection)
+          "printedPageCount": 42, # Total number of printed pages in generated pdf representation.
+          "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.
+            },
+          ],
+          "authors": [ # The names of the authors and/or editors for this volume. (In LITE projection)
+            "A String",
+          ],
+          "title": "A String", # Volume title. (In LITE projection.)
+          "canonicalVolumeLink": "A String", # Canonical URL for a volume. (In LITE projection.)
+          "infoLink": "A String", # URL to view information about this volume on the Google Books site. (In LITE projection)
+          "categories": [ # A list of subject categories, such as "Fiction", "Suspense", etc.
+            "A String",
+          ],
+          "averageRating": 3.14, # The mean review rating for this volume. (min = 1.0, max = 5.0)
+        },
+        "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": "books#volumes", # Resource type.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="rate">rate(rating, volumeId, source=None, locale=None)</code>
+  <pre>Rate a recommended book for the current user.
+
+Args:
+  rating: string, Rating to be given to the volume. (required)
+    Allowed values
+      HAVE_IT - Rating indicating a dismissal due to ownership.
+      NOT_INTERESTED - Rating indicating a negative dismissal of a volume.
+  volumeId: string, ID of the source volume. (required)
+  source: string, String to identify the originator of this request.
+  locale: string, ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'. Used for generating recommendations.
+
+Returns:
+  An object of the form:
+
+    {
+    "consistency_token": "A String",
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/books_v1.volumes.useruploaded.html b/docs/dyn/books_v1.volumes.useruploaded.html
new file mode 100644
index 0000000..4802e59
--- /dev/null
+++ b/docs/dyn/books_v1.volumes.useruploaded.html
@@ -0,0 +1,288 @@
+<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.volumes.html">volumes</a> . <a href="books_v1.volumes.useruploaded.html">useruploaded</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(source=None, locale=None, volumeId=None, maxResults=None, startIndex=None, processingState=None)</a></code></p>
+<p class="firstline">Return a list of books uploaded by the current user.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(source=None, locale=None, volumeId=None, maxResults=None, startIndex=None, processingState=None)</code>
+  <pre>Return a list of books uploaded by the current user.
+
+Args:
+  source: string, String to identify the originator of this request.
+  locale: string, ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'. Used for generating recommendations.
+  volumeId: string, The ids of the volumes to be returned. If not specified all that match the processingState are returned. (repeated)
+  maxResults: integer, Maximum number of results to return.
+  startIndex: integer, Index of the first result to return (starts at 0)
+  processingState: string, The processing state of the user uploaded volumes to be returned. (repeated)
+    Allowed values
+      COMPLETED_FAILED - The volume processing hase failed.
+      COMPLETED_SUCCESS - The volume processing was completed.
+      RUNNING - The volume processing is not completed.
+
+Returns:
+  An object of the form:
+
+    {
+    "totalItems": 42, # Total number of volumes found. This might be greater than the number of volumes returned in this response if results have been paginated.
+    "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.
+          "publisher": "A String", # Publisher of this volume. (In LITE projection.)
+          "subtitle": "A String", # Volume subtitle. (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.)
+          "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.
+          "pageCount": 42, # Total number of pages as per publisher metadata.
+          "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)
+          },
+          "publishedDate": "A String", # Date of publication. (In LITE projection.)
+          "previewLink": "A String", # URL to preview this volume on the Google Books site.
+          "printType": "A String", # Type of publication of this volume. Possible values are BOOK or MAGAZINE.
+          "ratingsCount": 42, # The number of review ratings for this volume.
+          "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).
+          },
+          "contentVersion": "A String", # An identifier for the version of the volume content (text & images). (In LITE projection)
+          "printedPageCount": 42, # Total number of printed pages in generated pdf representation.
+          "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.
+            },
+          ],
+          "authors": [ # The names of the authors and/or editors for this volume. (In LITE projection)
+            "A String",
+          ],
+          "title": "A String", # Volume title. (In LITE projection.)
+          "canonicalVolumeLink": "A String", # Canonical URL for a volume. (In LITE projection.)
+          "infoLink": "A String", # URL to view information about this volume on the Google Books site. (In LITE projection)
+          "categories": [ # A list of subject categories, such as "Fiction", "Suspense", etc.
+            "A String",
+          ],
+          "averageRating": 3.14, # The mean review rating for this volume. (min = 1.0, max = 5.0)
+        },
+        "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": "books#volumes", # Resource type.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/calendar_v3.acl.html b/docs/dyn/calendar_v3.acl.html
new file mode 100644
index 0000000..6ffffe3
--- /dev/null
+++ b/docs/dyn/calendar_v3.acl.html
@@ -0,0 +1,413 @@
+<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="calendar_v3.html">Calendar API</a> . <a href="calendar_v3.acl.html">acl</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(calendarId, ruleId)</a></code></p>
+<p class="firstline">Deletes an access control rule.</p>
+<p class="toc_element">
+  <code><a href="#get">get(calendarId, ruleId)</a></code></p>
+<p class="firstline">Returns an access control rule.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(calendarId, body)</a></code></p>
+<p class="firstline">Creates an access control rule.</p>
+<p class="toc_element">
+  <code><a href="#list">list(calendarId, syncToken=None, pageToken=None, maxResults=None, showDeleted=None)</a></code></p>
+<p class="firstline">Returns the rules in the access control list for the calendar.</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(calendarId, ruleId, body)</a></code></p>
+<p class="firstline">Updates an access control rule. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(calendarId, ruleId, body)</a></code></p>
+<p class="firstline">Updates an access control rule.</p>
+<p class="toc_element">
+  <code><a href="#watch">watch(calendarId, body, syncToken=None, pageToken=None, maxResults=None, showDeleted=None)</a></code></p>
+<p class="firstline">Watch for changes to ACL resources.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(calendarId, ruleId)</code>
+  <pre>Deletes an access control rule.
+
+Args:
+  calendarId: string, Calendar identifier. (required)
+  ruleId: string, ACL rule identifier. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(calendarId, ruleId)</code>
+  <pre>Returns an access control rule.
+
+Args:
+  calendarId: string, Calendar identifier. (required)
+  ruleId: string, ACL rule identifier. (required)
+
+Returns:
+  An object of the form:
+
+    {
+      "scope": { # The scope of the rule.
+        "type": "A String", # The type of the scope. Possible values are:
+            # - "default" - The public scope. This is the default value.
+            # - "user" - Limits the scope to a single user.
+            # - "group" - Limits the scope to a group.
+            # - "domain" - Limits the scope to a domain.  Note: The permissions granted to the "default", or public, scope apply to any user, authenticated or not.
+        "value": "A String", # The email address of a user or group, or the name of a domain, depending on the scope type. Omitted for type "default".
+      },
+      "kind": "calendar#aclRule", # Type of the resource ("calendar#aclRule").
+      "etag": "A String", # ETag of the resource.
+      "role": "A String", # The role assigned to the scope. Possible values are:
+          # - "none" - Provides no access.
+          # - "freeBusyReader" - Provides read access to free/busy information.
+          # - "reader" - Provides read access to the calendar. Private events will appear to users with reader access, but event details will be hidden.
+          # - "writer" - Provides read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible.
+          # - "owner" - Provides ownership of the calendar. This role has all of the permissions of the writer role with the additional ability to see and manipulate ACLs.
+      "id": "A String", # Identifier of the ACL rule.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(calendarId, body)</code>
+  <pre>Creates an access control rule.
+
+Args:
+  calendarId: string, Calendar identifier. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "scope": { # The scope of the rule.
+      "type": "A String", # The type of the scope. Possible values are:
+          # - "default" - The public scope. This is the default value.
+          # - "user" - Limits the scope to a single user.
+          # - "group" - Limits the scope to a group.
+          # - "domain" - Limits the scope to a domain.  Note: The permissions granted to the "default", or public, scope apply to any user, authenticated or not.
+      "value": "A String", # The email address of a user or group, or the name of a domain, depending on the scope type. Omitted for type "default".
+    },
+    "kind": "calendar#aclRule", # Type of the resource ("calendar#aclRule").
+    "etag": "A String", # ETag of the resource.
+    "role": "A String", # The role assigned to the scope. Possible values are:
+        # - "none" - Provides no access.
+        # - "freeBusyReader" - Provides read access to free/busy information.
+        # - "reader" - Provides read access to the calendar. Private events will appear to users with reader access, but event details will be hidden.
+        # - "writer" - Provides read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible.
+        # - "owner" - Provides ownership of the calendar. This role has all of the permissions of the writer role with the additional ability to see and manipulate ACLs.
+    "id": "A String", # Identifier of the ACL rule.
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "scope": { # The scope of the rule.
+        "type": "A String", # The type of the scope. Possible values are:
+            # - "default" - The public scope. This is the default value.
+            # - "user" - Limits the scope to a single user.
+            # - "group" - Limits the scope to a group.
+            # - "domain" - Limits the scope to a domain.  Note: The permissions granted to the "default", or public, scope apply to any user, authenticated or not.
+        "value": "A String", # The email address of a user or group, or the name of a domain, depending on the scope type. Omitted for type "default".
+      },
+      "kind": "calendar#aclRule", # Type of the resource ("calendar#aclRule").
+      "etag": "A String", # ETag of the resource.
+      "role": "A String", # The role assigned to the scope. Possible values are:
+          # - "none" - Provides no access.
+          # - "freeBusyReader" - Provides read access to free/busy information.
+          # - "reader" - Provides read access to the calendar. Private events will appear to users with reader access, but event details will be hidden.
+          # - "writer" - Provides read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible.
+          # - "owner" - Provides ownership of the calendar. This role has all of the permissions of the writer role with the additional ability to see and manipulate ACLs.
+      "id": "A String", # Identifier of the ACL rule.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(calendarId, syncToken=None, pageToken=None, maxResults=None, showDeleted=None)</code>
+  <pre>Returns the rules in the access control list for the calendar.
+
+Args:
+  calendarId: string, Calendar identifier. (required)
+  syncToken: string, Token obtained from the 'nextSyncToken' field returned as part of the result of a previous call to this method. It makes the result of this call contain only entries that have changed since the last call, including entries that have been removed in the meantime (they will have the 'role' set to 'none'). Optional. The default is to return to all entries.
+  pageToken: string, Token specifying which result page to return. Optional.
+  maxResults: integer, Maximum number of entries returned on one result page. Optional.
+  showDeleted: boolean, Whether to include deleted acls in the result. Deleted acls are represented by with 'role' equal to 'none'. Deleted acls will always be included if 'syncToken' is provided. Optional. The default is False.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Token used to access the next page of this result. Omitted if no further results are available.
+    "items": [ # List of rules on the access control list.
+      {
+          "scope": { # The scope of the rule.
+            "type": "A String", # The type of the scope. Possible values are:
+                # - "default" - The public scope. This is the default value.
+                # - "user" - Limits the scope to a single user.
+                # - "group" - Limits the scope to a group.
+                # - "domain" - Limits the scope to a domain.  Note: The permissions granted to the "default", or public, scope apply to any user, authenticated or not.
+            "value": "A String", # The email address of a user or group, or the name of a domain, depending on the scope type. Omitted for type "default".
+          },
+          "kind": "calendar#aclRule", # Type of the resource ("calendar#aclRule").
+          "etag": "A String", # ETag of the resource.
+          "role": "A String", # The role assigned to the scope. Possible values are:
+              # - "none" - Provides no access.
+              # - "freeBusyReader" - Provides read access to free/busy information.
+              # - "reader" - Provides read access to the calendar. Private events will appear to users with reader access, but event details will be hidden.
+              # - "writer" - Provides read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible.
+              # - "owner" - Provides ownership of the calendar. This role has all of the permissions of the writer role with the additional ability to see and manipulate ACLs.
+          "id": "A String", # Identifier of the ACL rule.
+        },
+    ],
+    "kind": "calendar#acl", # Type of the collection ("calendar#acl").
+    "etag": "A String", # ETag of the collection.
+    "nextSyncToken": "A String", # Token used at a later point in time to retrieve only the entries that have changed since this result was returned.
+  }</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(calendarId, ruleId, body)</code>
+  <pre>Updates an access control rule. This method supports patch semantics.
+
+Args:
+  calendarId: string, Calendar identifier. (required)
+  ruleId: string, ACL rule identifier. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "scope": { # The scope of the rule.
+      "type": "A String", # The type of the scope. Possible values are:
+          # - "default" - The public scope. This is the default value.
+          # - "user" - Limits the scope to a single user.
+          # - "group" - Limits the scope to a group.
+          # - "domain" - Limits the scope to a domain.  Note: The permissions granted to the "default", or public, scope apply to any user, authenticated or not.
+      "value": "A String", # The email address of a user or group, or the name of a domain, depending on the scope type. Omitted for type "default".
+    },
+    "kind": "calendar#aclRule", # Type of the resource ("calendar#aclRule").
+    "etag": "A String", # ETag of the resource.
+    "role": "A String", # The role assigned to the scope. Possible values are:
+        # - "none" - Provides no access.
+        # - "freeBusyReader" - Provides read access to free/busy information.
+        # - "reader" - Provides read access to the calendar. Private events will appear to users with reader access, but event details will be hidden.
+        # - "writer" - Provides read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible.
+        # - "owner" - Provides ownership of the calendar. This role has all of the permissions of the writer role with the additional ability to see and manipulate ACLs.
+    "id": "A String", # Identifier of the ACL rule.
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "scope": { # The scope of the rule.
+        "type": "A String", # The type of the scope. Possible values are:
+            # - "default" - The public scope. This is the default value.
+            # - "user" - Limits the scope to a single user.
+            # - "group" - Limits the scope to a group.
+            # - "domain" - Limits the scope to a domain.  Note: The permissions granted to the "default", or public, scope apply to any user, authenticated or not.
+        "value": "A String", # The email address of a user or group, or the name of a domain, depending on the scope type. Omitted for type "default".
+      },
+      "kind": "calendar#aclRule", # Type of the resource ("calendar#aclRule").
+      "etag": "A String", # ETag of the resource.
+      "role": "A String", # The role assigned to the scope. Possible values are:
+          # - "none" - Provides no access.
+          # - "freeBusyReader" - Provides read access to free/busy information.
+          # - "reader" - Provides read access to the calendar. Private events will appear to users with reader access, but event details will be hidden.
+          # - "writer" - Provides read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible.
+          # - "owner" - Provides ownership of the calendar. This role has all of the permissions of the writer role with the additional ability to see and manipulate ACLs.
+      "id": "A String", # Identifier of the ACL rule.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(calendarId, ruleId, body)</code>
+  <pre>Updates an access control rule.
+
+Args:
+  calendarId: string, Calendar identifier. (required)
+  ruleId: string, ACL rule identifier. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "scope": { # The scope of the rule.
+      "type": "A String", # The type of the scope. Possible values are:
+          # - "default" - The public scope. This is the default value.
+          # - "user" - Limits the scope to a single user.
+          # - "group" - Limits the scope to a group.
+          # - "domain" - Limits the scope to a domain.  Note: The permissions granted to the "default", or public, scope apply to any user, authenticated or not.
+      "value": "A String", # The email address of a user or group, or the name of a domain, depending on the scope type. Omitted for type "default".
+    },
+    "kind": "calendar#aclRule", # Type of the resource ("calendar#aclRule").
+    "etag": "A String", # ETag of the resource.
+    "role": "A String", # The role assigned to the scope. Possible values are:
+        # - "none" - Provides no access.
+        # - "freeBusyReader" - Provides read access to free/busy information.
+        # - "reader" - Provides read access to the calendar. Private events will appear to users with reader access, but event details will be hidden.
+        # - "writer" - Provides read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible.
+        # - "owner" - Provides ownership of the calendar. This role has all of the permissions of the writer role with the additional ability to see and manipulate ACLs.
+    "id": "A String", # Identifier of the ACL rule.
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "scope": { # The scope of the rule.
+        "type": "A String", # The type of the scope. Possible values are:
+            # - "default" - The public scope. This is the default value.
+            # - "user" - Limits the scope to a single user.
+            # - "group" - Limits the scope to a group.
+            # - "domain" - Limits the scope to a domain.  Note: The permissions granted to the "default", or public, scope apply to any user, authenticated or not.
+        "value": "A String", # The email address of a user or group, or the name of a domain, depending on the scope type. Omitted for type "default".
+      },
+      "kind": "calendar#aclRule", # Type of the resource ("calendar#aclRule").
+      "etag": "A String", # ETag of the resource.
+      "role": "A String", # The role assigned to the scope. Possible values are:
+          # - "none" - Provides no access.
+          # - "freeBusyReader" - Provides read access to free/busy information.
+          # - "reader" - Provides read access to the calendar. Private events will appear to users with reader access, but event details will be hidden.
+          # - "writer" - Provides read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible.
+          # - "owner" - Provides ownership of the calendar. This role has all of the permissions of the writer role with the additional ability to see and manipulate ACLs.
+      "id": "A String", # Identifier of the ACL rule.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="watch">watch(calendarId, body, syncToken=None, pageToken=None, maxResults=None, showDeleted=None)</code>
+  <pre>Watch for changes to ACL resources.
+
+Args:
+  calendarId: string, Calendar identifier. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "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.
+  }
+
+  syncToken: string, Token obtained from the 'nextSyncToken' field returned as part of the result of a previous call to this method. It makes the result of this call contain only entries that have changed since the last call, including entries that have been removed in the meantime (they will have the 'role' set to 'none'). Optional. The default is to return to all entries.
+  pageToken: string, Token specifying which result page to return. Optional.
+  maxResults: integer, Maximum number of entries returned on one result page. Optional.
+  showDeleted: boolean, Whether to include deleted acls in the result. Deleted acls are represented by with 'role' equal to 'none'. Deleted acls will always be included if 'syncToken' is provided. Optional. The default is False.
+
+Returns:
+  An object of the form:
+
+    {
+      "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.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/calendar_v3.calendarList.html b/docs/dyn/calendar_v3.calendarList.html
new file mode 100644
index 0000000..386cf42
--- /dev/null
+++ b/docs/dyn/calendar_v3.calendarList.html
@@ -0,0 +1,639 @@
+<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="calendar_v3.html">Calendar API</a> . <a href="calendar_v3.calendarList.html">calendarList</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(calendarId)</a></code></p>
+<p class="firstline">Deletes an entry on the user's calendar list.</p>
+<p class="toc_element">
+  <code><a href="#get">get(calendarId)</a></code></p>
+<p class="firstline">Returns an entry on the user's calendar list.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(body, colorRgbFormat=None)</a></code></p>
+<p class="firstline">Adds an entry to the user's calendar list.</p>
+<p class="toc_element">
+  <code><a href="#list">list(syncToken=None, minAccessRole=None, maxResults=None, showDeleted=None, showHidden=None, pageToken=None)</a></code></p>
+<p class="firstline">Returns entries on the user's calendar list.</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(calendarId, body, colorRgbFormat=None)</a></code></p>
+<p class="firstline">Updates an entry on the user's calendar list. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(calendarId, body, colorRgbFormat=None)</a></code></p>
+<p class="firstline">Updates an entry on the user's calendar list.</p>
+<p class="toc_element">
+  <code><a href="#watch">watch(body, syncToken=None, minAccessRole=None, maxResults=None, showDeleted=None, showHidden=None, pageToken=None)</a></code></p>
+<p class="firstline">Watch for changes to CalendarList resources.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(calendarId)</code>
+  <pre>Deletes an entry on the user's calendar list.
+
+Args:
+  calendarId: string, Calendar identifier. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(calendarId)</code>
+  <pre>Returns an entry on the user's calendar list.
+
+Args:
+  calendarId: string, Calendar identifier. (required)
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "calendar#calendarListEntry", # Type of the resource ("calendar#calendarListEntry").
+      "foregroundColor": "A String", # The foreground color of the calendar in the format '#ffffff'. This property supersedes the index-based colorId property. Optional.
+      "defaultReminders": [ # The default reminders that the authenticated user has for this calendar.
+        {
+          "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger.
+          "method": "A String", # The method used by this reminder. Possible values are:
+              # - "email" - Reminders are sent via email.
+              # - "sms" - Reminders are sent via SMS.
+              # - "popup" - Reminders are sent via a UI popup.
+        },
+      ],
+      "description": "A String", # Description of the calendar. Optional. Read-only.
+      "deleted": false, # Whether this calendar list entry has been deleted from the calendar list. Read-only. Optional. The default is False.
+      "colorId": "A String", # The color of the calendar. This is an ID referring to an entry in the "calendar" section of the colors definition (see the "colors" endpoint). Optional.
+      "selected": false, # Whether the calendar content shows up in the calendar UI. Optional. The default is False.
+      "notificationSettings": { # The notifications that the authenticated user is receiving for this calendar.
+        "notifications": [ # The list of notifications set for this calendar.
+          {
+            "type": "A String", # The type of notification. Possible values are:
+                # - "eventCreation" - Notification sent when a new event is put on the calendar.
+                # - "eventChange" - Notification sent when an event is changed.
+                # - "eventCancellation" - Notification sent when an event is cancelled.
+                # - "eventResponse" - Notification sent when an event is changed.
+                # - "agenda" - An agenda with the events of the day (sent out in the morning).
+            "method": "A String", # The method used to deliver the notification. Possible values are:
+                # - "email" - Reminders are sent via email.
+                # - "sms" - Reminders are sent via SMS. This value is read-only and is ignored on inserts and updates.
+          },
+        ],
+      },
+      "primary": false, # Whether the calendar is the primary calendar of the authenticated user. Read-only. Optional. The default is False.
+      "etag": "A String", # ETag of the resource.
+      "location": "A String", # Geographic location of the calendar as free-form text. Optional. Read-only.
+      "backgroundColor": "A String", # The main color of the calendar in the format '#0088aa'. This property supersedes the index-based colorId property. Optional.
+      "summaryOverride": "A String", # The summary that the authenticated user has set for this calendar. Optional.
+      "timeZone": "A String", # The time zone of the calendar. Optional. Read-only.
+      "hidden": false, # Whether the calendar has been hidden from the list. Optional. The default is False.
+      "summary": "A String", # Title of the calendar. Read-only.
+      "accessRole": "A String", # The effective access role that the authenticated user has on the calendar. Read-only. Possible values are:
+          # - "freeBusyReader" - Provides read access to free/busy information.
+          # - "reader" - Provides read access to the calendar. Private events will appear to users with reader access, but event details will be hidden.
+          # - "writer" - Provides read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible.
+          # - "owner" - Provides ownership of the calendar. This role has all of the permissions of the writer role with the additional ability to see and manipulate ACLs.
+      "id": "A String", # Identifier of the calendar.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(body, colorRgbFormat=None)</code>
+  <pre>Adds an entry to the user's calendar list.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "kind": "calendar#calendarListEntry", # Type of the resource ("calendar#calendarListEntry").
+    "foregroundColor": "A String", # The foreground color of the calendar in the format '#ffffff'. This property supersedes the index-based colorId property. Optional.
+    "defaultReminders": [ # The default reminders that the authenticated user has for this calendar.
+      {
+        "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger.
+        "method": "A String", # The method used by this reminder. Possible values are:
+            # - "email" - Reminders are sent via email.
+            # - "sms" - Reminders are sent via SMS.
+            # - "popup" - Reminders are sent via a UI popup.
+      },
+    ],
+    "description": "A String", # Description of the calendar. Optional. Read-only.
+    "deleted": false, # Whether this calendar list entry has been deleted from the calendar list. Read-only. Optional. The default is False.
+    "colorId": "A String", # The color of the calendar. This is an ID referring to an entry in the "calendar" section of the colors definition (see the "colors" endpoint). Optional.
+    "selected": false, # Whether the calendar content shows up in the calendar UI. Optional. The default is False.
+    "notificationSettings": { # The notifications that the authenticated user is receiving for this calendar.
+      "notifications": [ # The list of notifications set for this calendar.
+        {
+          "type": "A String", # The type of notification. Possible values are:
+              # - "eventCreation" - Notification sent when a new event is put on the calendar.
+              # - "eventChange" - Notification sent when an event is changed.
+              # - "eventCancellation" - Notification sent when an event is cancelled.
+              # - "eventResponse" - Notification sent when an event is changed.
+              # - "agenda" - An agenda with the events of the day (sent out in the morning).
+          "method": "A String", # The method used to deliver the notification. Possible values are:
+              # - "email" - Reminders are sent via email.
+              # - "sms" - Reminders are sent via SMS. This value is read-only and is ignored on inserts and updates.
+        },
+      ],
+    },
+    "primary": false, # Whether the calendar is the primary calendar of the authenticated user. Read-only. Optional. The default is False.
+    "etag": "A String", # ETag of the resource.
+    "location": "A String", # Geographic location of the calendar as free-form text. Optional. Read-only.
+    "backgroundColor": "A String", # The main color of the calendar in the format '#0088aa'. This property supersedes the index-based colorId property. Optional.
+    "summaryOverride": "A String", # The summary that the authenticated user has set for this calendar. Optional.
+    "timeZone": "A String", # The time zone of the calendar. Optional. Read-only.
+    "hidden": false, # Whether the calendar has been hidden from the list. Optional. The default is False.
+    "summary": "A String", # Title of the calendar. Read-only.
+    "accessRole": "A String", # The effective access role that the authenticated user has on the calendar. Read-only. Possible values are:
+        # - "freeBusyReader" - Provides read access to free/busy information.
+        # - "reader" - Provides read access to the calendar. Private events will appear to users with reader access, but event details will be hidden.
+        # - "writer" - Provides read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible.
+        # - "owner" - Provides ownership of the calendar. This role has all of the permissions of the writer role with the additional ability to see and manipulate ACLs.
+    "id": "A String", # Identifier of the calendar.
+  }
+
+  colorRgbFormat: boolean, Whether to use the foregroundColor and backgroundColor fields to write the calendar colors (RGB). If this feature is used, the index-based colorId field will be set to the best matching option automatically. Optional. The default is False.
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "calendar#calendarListEntry", # Type of the resource ("calendar#calendarListEntry").
+      "foregroundColor": "A String", # The foreground color of the calendar in the format '#ffffff'. This property supersedes the index-based colorId property. Optional.
+      "defaultReminders": [ # The default reminders that the authenticated user has for this calendar.
+        {
+          "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger.
+          "method": "A String", # The method used by this reminder. Possible values are:
+              # - "email" - Reminders are sent via email.
+              # - "sms" - Reminders are sent via SMS.
+              # - "popup" - Reminders are sent via a UI popup.
+        },
+      ],
+      "description": "A String", # Description of the calendar. Optional. Read-only.
+      "deleted": false, # Whether this calendar list entry has been deleted from the calendar list. Read-only. Optional. The default is False.
+      "colorId": "A String", # The color of the calendar. This is an ID referring to an entry in the "calendar" section of the colors definition (see the "colors" endpoint). Optional.
+      "selected": false, # Whether the calendar content shows up in the calendar UI. Optional. The default is False.
+      "notificationSettings": { # The notifications that the authenticated user is receiving for this calendar.
+        "notifications": [ # The list of notifications set for this calendar.
+          {
+            "type": "A String", # The type of notification. Possible values are:
+                # - "eventCreation" - Notification sent when a new event is put on the calendar.
+                # - "eventChange" - Notification sent when an event is changed.
+                # - "eventCancellation" - Notification sent when an event is cancelled.
+                # - "eventResponse" - Notification sent when an event is changed.
+                # - "agenda" - An agenda with the events of the day (sent out in the morning).
+            "method": "A String", # The method used to deliver the notification. Possible values are:
+                # - "email" - Reminders are sent via email.
+                # - "sms" - Reminders are sent via SMS. This value is read-only and is ignored on inserts and updates.
+          },
+        ],
+      },
+      "primary": false, # Whether the calendar is the primary calendar of the authenticated user. Read-only. Optional. The default is False.
+      "etag": "A String", # ETag of the resource.
+      "location": "A String", # Geographic location of the calendar as free-form text. Optional. Read-only.
+      "backgroundColor": "A String", # The main color of the calendar in the format '#0088aa'. This property supersedes the index-based colorId property. Optional.
+      "summaryOverride": "A String", # The summary that the authenticated user has set for this calendar. Optional.
+      "timeZone": "A String", # The time zone of the calendar. Optional. Read-only.
+      "hidden": false, # Whether the calendar has been hidden from the list. Optional. The default is False.
+      "summary": "A String", # Title of the calendar. Read-only.
+      "accessRole": "A String", # The effective access role that the authenticated user has on the calendar. Read-only. Possible values are:
+          # - "freeBusyReader" - Provides read access to free/busy information.
+          # - "reader" - Provides read access to the calendar. Private events will appear to users with reader access, but event details will be hidden.
+          # - "writer" - Provides read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible.
+          # - "owner" - Provides ownership of the calendar. This role has all of the permissions of the writer role with the additional ability to see and manipulate ACLs.
+      "id": "A String", # Identifier of the calendar.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(syncToken=None, minAccessRole=None, maxResults=None, showDeleted=None, showHidden=None, pageToken=None)</code>
+  <pre>Returns entries on the user's calendar list.
+
+Args:
+  syncToken: string, Token obtained from the 'nextSyncToken' field returned on the last result page of the previous method's call. It makes the result of this call contain only entries that have changed since the last call. Optional. The default is to return all entries.
+  minAccessRole: string, The minimum access role for the user in the returned entires. Optional. The default is no restriction.
+    Allowed values
+      freeBusyReader - The user can read free/busy information.
+      owner - The user can read and modify events and access control lists.
+      reader - The user can read events that are not private.
+      writer - The user can read and modify events.
+  maxResults: integer, Maximum number of entries returned on one result page. Optional.
+  showDeleted: boolean, Whether to include deleted calendar list entries in the result. Optional. The default is False.
+  showHidden: boolean, Whether to show hidden entries. Optional. The default is False.
+  pageToken: string, Token specifying which result page to return. Optional.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Token used to access the next page of this result.
+    "items": [ # Calendars that are present on the user's calendar list.
+      {
+          "kind": "calendar#calendarListEntry", # Type of the resource ("calendar#calendarListEntry").
+          "foregroundColor": "A String", # The foreground color of the calendar in the format '#ffffff'. This property supersedes the index-based colorId property. Optional.
+          "defaultReminders": [ # The default reminders that the authenticated user has for this calendar.
+            {
+              "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger.
+              "method": "A String", # The method used by this reminder. Possible values are:
+                  # - "email" - Reminders are sent via email.
+                  # - "sms" - Reminders are sent via SMS.
+                  # - "popup" - Reminders are sent via a UI popup.
+            },
+          ],
+          "description": "A String", # Description of the calendar. Optional. Read-only.
+          "deleted": false, # Whether this calendar list entry has been deleted from the calendar list. Read-only. Optional. The default is False.
+          "colorId": "A String", # The color of the calendar. This is an ID referring to an entry in the "calendar" section of the colors definition (see the "colors" endpoint). Optional.
+          "selected": false, # Whether the calendar content shows up in the calendar UI. Optional. The default is False.
+          "notificationSettings": { # The notifications that the authenticated user is receiving for this calendar.
+            "notifications": [ # The list of notifications set for this calendar.
+              {
+                "type": "A String", # The type of notification. Possible values are:
+                    # - "eventCreation" - Notification sent when a new event is put on the calendar.
+                    # - "eventChange" - Notification sent when an event is changed.
+                    # - "eventCancellation" - Notification sent when an event is cancelled.
+                    # - "eventResponse" - Notification sent when an event is changed.
+                    # - "agenda" - An agenda with the events of the day (sent out in the morning).
+                "method": "A String", # The method used to deliver the notification. Possible values are:
+                    # - "email" - Reminders are sent via email.
+                    # - "sms" - Reminders are sent via SMS. This value is read-only and is ignored on inserts and updates.
+              },
+            ],
+          },
+          "primary": false, # Whether the calendar is the primary calendar of the authenticated user. Read-only. Optional. The default is False.
+          "etag": "A String", # ETag of the resource.
+          "location": "A String", # Geographic location of the calendar as free-form text. Optional. Read-only.
+          "backgroundColor": "A String", # The main color of the calendar in the format '#0088aa'. This property supersedes the index-based colorId property. Optional.
+          "summaryOverride": "A String", # The summary that the authenticated user has set for this calendar. Optional.
+          "timeZone": "A String", # The time zone of the calendar. Optional. Read-only.
+          "hidden": false, # Whether the calendar has been hidden from the list. Optional. The default is False.
+          "summary": "A String", # Title of the calendar. Read-only.
+          "accessRole": "A String", # The effective access role that the authenticated user has on the calendar. Read-only. Possible values are:
+              # - "freeBusyReader" - Provides read access to free/busy information.
+              # - "reader" - Provides read access to the calendar. Private events will appear to users with reader access, but event details will be hidden.
+              # - "writer" - Provides read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible.
+              # - "owner" - Provides ownership of the calendar. This role has all of the permissions of the writer role with the additional ability to see and manipulate ACLs.
+          "id": "A String", # Identifier of the calendar.
+        },
+    ],
+    "kind": "calendar#calendarList", # Type of the collection ("calendar#calendarList").
+    "etag": "A String", # ETag of the collection.
+    "nextSyncToken": "A String", # Token used at a later point in time to retrieve only the entries that have changed since this result was returned. Omitted if further results are available, in which case nextPageToken is provided.
+  }</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(calendarId, body, colorRgbFormat=None)</code>
+  <pre>Updates an entry on the user's calendar list. This method supports patch semantics.
+
+Args:
+  calendarId: string, Calendar identifier. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "kind": "calendar#calendarListEntry", # Type of the resource ("calendar#calendarListEntry").
+    "foregroundColor": "A String", # The foreground color of the calendar in the format '#ffffff'. This property supersedes the index-based colorId property. Optional.
+    "defaultReminders": [ # The default reminders that the authenticated user has for this calendar.
+      {
+        "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger.
+        "method": "A String", # The method used by this reminder. Possible values are:
+            # - "email" - Reminders are sent via email.
+            # - "sms" - Reminders are sent via SMS.
+            # - "popup" - Reminders are sent via a UI popup.
+      },
+    ],
+    "description": "A String", # Description of the calendar. Optional. Read-only.
+    "deleted": false, # Whether this calendar list entry has been deleted from the calendar list. Read-only. Optional. The default is False.
+    "colorId": "A String", # The color of the calendar. This is an ID referring to an entry in the "calendar" section of the colors definition (see the "colors" endpoint). Optional.
+    "selected": false, # Whether the calendar content shows up in the calendar UI. Optional. The default is False.
+    "notificationSettings": { # The notifications that the authenticated user is receiving for this calendar.
+      "notifications": [ # The list of notifications set for this calendar.
+        {
+          "type": "A String", # The type of notification. Possible values are:
+              # - "eventCreation" - Notification sent when a new event is put on the calendar.
+              # - "eventChange" - Notification sent when an event is changed.
+              # - "eventCancellation" - Notification sent when an event is cancelled.
+              # - "eventResponse" - Notification sent when an event is changed.
+              # - "agenda" - An agenda with the events of the day (sent out in the morning).
+          "method": "A String", # The method used to deliver the notification. Possible values are:
+              # - "email" - Reminders are sent via email.
+              # - "sms" - Reminders are sent via SMS. This value is read-only and is ignored on inserts and updates.
+        },
+      ],
+    },
+    "primary": false, # Whether the calendar is the primary calendar of the authenticated user. Read-only. Optional. The default is False.
+    "etag": "A String", # ETag of the resource.
+    "location": "A String", # Geographic location of the calendar as free-form text. Optional. Read-only.
+    "backgroundColor": "A String", # The main color of the calendar in the format '#0088aa'. This property supersedes the index-based colorId property. Optional.
+    "summaryOverride": "A String", # The summary that the authenticated user has set for this calendar. Optional.
+    "timeZone": "A String", # The time zone of the calendar. Optional. Read-only.
+    "hidden": false, # Whether the calendar has been hidden from the list. Optional. The default is False.
+    "summary": "A String", # Title of the calendar. Read-only.
+    "accessRole": "A String", # The effective access role that the authenticated user has on the calendar. Read-only. Possible values are:
+        # - "freeBusyReader" - Provides read access to free/busy information.
+        # - "reader" - Provides read access to the calendar. Private events will appear to users with reader access, but event details will be hidden.
+        # - "writer" - Provides read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible.
+        # - "owner" - Provides ownership of the calendar. This role has all of the permissions of the writer role with the additional ability to see and manipulate ACLs.
+    "id": "A String", # Identifier of the calendar.
+  }
+
+  colorRgbFormat: boolean, Whether to use the 'foregroundColor' and 'backgroundColor' fields to write the calendar colors (RGB). If this feature is used, the index-based 'colorId' field will be set to the best matching option automatically. Optional. The default is False.
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "calendar#calendarListEntry", # Type of the resource ("calendar#calendarListEntry").
+      "foregroundColor": "A String", # The foreground color of the calendar in the format '#ffffff'. This property supersedes the index-based colorId property. Optional.
+      "defaultReminders": [ # The default reminders that the authenticated user has for this calendar.
+        {
+          "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger.
+          "method": "A String", # The method used by this reminder. Possible values are:
+              # - "email" - Reminders are sent via email.
+              # - "sms" - Reminders are sent via SMS.
+              # - "popup" - Reminders are sent via a UI popup.
+        },
+      ],
+      "description": "A String", # Description of the calendar. Optional. Read-only.
+      "deleted": false, # Whether this calendar list entry has been deleted from the calendar list. Read-only. Optional. The default is False.
+      "colorId": "A String", # The color of the calendar. This is an ID referring to an entry in the "calendar" section of the colors definition (see the "colors" endpoint). Optional.
+      "selected": false, # Whether the calendar content shows up in the calendar UI. Optional. The default is False.
+      "notificationSettings": { # The notifications that the authenticated user is receiving for this calendar.
+        "notifications": [ # The list of notifications set for this calendar.
+          {
+            "type": "A String", # The type of notification. Possible values are:
+                # - "eventCreation" - Notification sent when a new event is put on the calendar.
+                # - "eventChange" - Notification sent when an event is changed.
+                # - "eventCancellation" - Notification sent when an event is cancelled.
+                # - "eventResponse" - Notification sent when an event is changed.
+                # - "agenda" - An agenda with the events of the day (sent out in the morning).
+            "method": "A String", # The method used to deliver the notification. Possible values are:
+                # - "email" - Reminders are sent via email.
+                # - "sms" - Reminders are sent via SMS. This value is read-only and is ignored on inserts and updates.
+          },
+        ],
+      },
+      "primary": false, # Whether the calendar is the primary calendar of the authenticated user. Read-only. Optional. The default is False.
+      "etag": "A String", # ETag of the resource.
+      "location": "A String", # Geographic location of the calendar as free-form text. Optional. Read-only.
+      "backgroundColor": "A String", # The main color of the calendar in the format '#0088aa'. This property supersedes the index-based colorId property. Optional.
+      "summaryOverride": "A String", # The summary that the authenticated user has set for this calendar. Optional.
+      "timeZone": "A String", # The time zone of the calendar. Optional. Read-only.
+      "hidden": false, # Whether the calendar has been hidden from the list. Optional. The default is False.
+      "summary": "A String", # Title of the calendar. Read-only.
+      "accessRole": "A String", # The effective access role that the authenticated user has on the calendar. Read-only. Possible values are:
+          # - "freeBusyReader" - Provides read access to free/busy information.
+          # - "reader" - Provides read access to the calendar. Private events will appear to users with reader access, but event details will be hidden.
+          # - "writer" - Provides read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible.
+          # - "owner" - Provides ownership of the calendar. This role has all of the permissions of the writer role with the additional ability to see and manipulate ACLs.
+      "id": "A String", # Identifier of the calendar.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(calendarId, body, colorRgbFormat=None)</code>
+  <pre>Updates an entry on the user's calendar list.
+
+Args:
+  calendarId: string, Calendar identifier. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "kind": "calendar#calendarListEntry", # Type of the resource ("calendar#calendarListEntry").
+    "foregroundColor": "A String", # The foreground color of the calendar in the format '#ffffff'. This property supersedes the index-based colorId property. Optional.
+    "defaultReminders": [ # The default reminders that the authenticated user has for this calendar.
+      {
+        "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger.
+        "method": "A String", # The method used by this reminder. Possible values are:
+            # - "email" - Reminders are sent via email.
+            # - "sms" - Reminders are sent via SMS.
+            # - "popup" - Reminders are sent via a UI popup.
+      },
+    ],
+    "description": "A String", # Description of the calendar. Optional. Read-only.
+    "deleted": false, # Whether this calendar list entry has been deleted from the calendar list. Read-only. Optional. The default is False.
+    "colorId": "A String", # The color of the calendar. This is an ID referring to an entry in the "calendar" section of the colors definition (see the "colors" endpoint). Optional.
+    "selected": false, # Whether the calendar content shows up in the calendar UI. Optional. The default is False.
+    "notificationSettings": { # The notifications that the authenticated user is receiving for this calendar.
+      "notifications": [ # The list of notifications set for this calendar.
+        {
+          "type": "A String", # The type of notification. Possible values are:
+              # - "eventCreation" - Notification sent when a new event is put on the calendar.
+              # - "eventChange" - Notification sent when an event is changed.
+              # - "eventCancellation" - Notification sent when an event is cancelled.
+              # - "eventResponse" - Notification sent when an event is changed.
+              # - "agenda" - An agenda with the events of the day (sent out in the morning).
+          "method": "A String", # The method used to deliver the notification. Possible values are:
+              # - "email" - Reminders are sent via email.
+              # - "sms" - Reminders are sent via SMS. This value is read-only and is ignored on inserts and updates.
+        },
+      ],
+    },
+    "primary": false, # Whether the calendar is the primary calendar of the authenticated user. Read-only. Optional. The default is False.
+    "etag": "A String", # ETag of the resource.
+    "location": "A String", # Geographic location of the calendar as free-form text. Optional. Read-only.
+    "backgroundColor": "A String", # The main color of the calendar in the format '#0088aa'. This property supersedes the index-based colorId property. Optional.
+    "summaryOverride": "A String", # The summary that the authenticated user has set for this calendar. Optional.
+    "timeZone": "A String", # The time zone of the calendar. Optional. Read-only.
+    "hidden": false, # Whether the calendar has been hidden from the list. Optional. The default is False.
+    "summary": "A String", # Title of the calendar. Read-only.
+    "accessRole": "A String", # The effective access role that the authenticated user has on the calendar. Read-only. Possible values are:
+        # - "freeBusyReader" - Provides read access to free/busy information.
+        # - "reader" - Provides read access to the calendar. Private events will appear to users with reader access, but event details will be hidden.
+        # - "writer" - Provides read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible.
+        # - "owner" - Provides ownership of the calendar. This role has all of the permissions of the writer role with the additional ability to see and manipulate ACLs.
+    "id": "A String", # Identifier of the calendar.
+  }
+
+  colorRgbFormat: boolean, Whether to use the 'foregroundColor' and 'backgroundColor' fields to write the calendar colors (RGB). If this feature is used, the index-based 'colorId' field will be set to the best matching option automatically. Optional. The default is False.
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "calendar#calendarListEntry", # Type of the resource ("calendar#calendarListEntry").
+      "foregroundColor": "A String", # The foreground color of the calendar in the format '#ffffff'. This property supersedes the index-based colorId property. Optional.
+      "defaultReminders": [ # The default reminders that the authenticated user has for this calendar.
+        {
+          "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger.
+          "method": "A String", # The method used by this reminder. Possible values are:
+              # - "email" - Reminders are sent via email.
+              # - "sms" - Reminders are sent via SMS.
+              # - "popup" - Reminders are sent via a UI popup.
+        },
+      ],
+      "description": "A String", # Description of the calendar. Optional. Read-only.
+      "deleted": false, # Whether this calendar list entry has been deleted from the calendar list. Read-only. Optional. The default is False.
+      "colorId": "A String", # The color of the calendar. This is an ID referring to an entry in the "calendar" section of the colors definition (see the "colors" endpoint). Optional.
+      "selected": false, # Whether the calendar content shows up in the calendar UI. Optional. The default is False.
+      "notificationSettings": { # The notifications that the authenticated user is receiving for this calendar.
+        "notifications": [ # The list of notifications set for this calendar.
+          {
+            "type": "A String", # The type of notification. Possible values are:
+                # - "eventCreation" - Notification sent when a new event is put on the calendar.
+                # - "eventChange" - Notification sent when an event is changed.
+                # - "eventCancellation" - Notification sent when an event is cancelled.
+                # - "eventResponse" - Notification sent when an event is changed.
+                # - "agenda" - An agenda with the events of the day (sent out in the morning).
+            "method": "A String", # The method used to deliver the notification. Possible values are:
+                # - "email" - Reminders are sent via email.
+                # - "sms" - Reminders are sent via SMS. This value is read-only and is ignored on inserts and updates.
+          },
+        ],
+      },
+      "primary": false, # Whether the calendar is the primary calendar of the authenticated user. Read-only. Optional. The default is False.
+      "etag": "A String", # ETag of the resource.
+      "location": "A String", # Geographic location of the calendar as free-form text. Optional. Read-only.
+      "backgroundColor": "A String", # The main color of the calendar in the format '#0088aa'. This property supersedes the index-based colorId property. Optional.
+      "summaryOverride": "A String", # The summary that the authenticated user has set for this calendar. Optional.
+      "timeZone": "A String", # The time zone of the calendar. Optional. Read-only.
+      "hidden": false, # Whether the calendar has been hidden from the list. Optional. The default is False.
+      "summary": "A String", # Title of the calendar. Read-only.
+      "accessRole": "A String", # The effective access role that the authenticated user has on the calendar. Read-only. Possible values are:
+          # - "freeBusyReader" - Provides read access to free/busy information.
+          # - "reader" - Provides read access to the calendar. Private events will appear to users with reader access, but event details will be hidden.
+          # - "writer" - Provides read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible.
+          # - "owner" - Provides ownership of the calendar. This role has all of the permissions of the writer role with the additional ability to see and manipulate ACLs.
+      "id": "A String", # Identifier of the calendar.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="watch">watch(body, syncToken=None, minAccessRole=None, maxResults=None, showDeleted=None, showHidden=None, pageToken=None)</code>
+  <pre>Watch for changes to CalendarList resources.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "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.
+  }
+
+  syncToken: string, Token obtained from the 'nextSyncToken' field returned on the last result page of the previous method's call. It makes the result of this call contain only entries that have changed since the last call. Optional. The default is to return all entries.
+  minAccessRole: string, The minimum access role for the user in the returned entires. Optional. The default is no restriction.
+    Allowed values
+      freeBusyReader - The user can read free/busy information.
+      owner - The user can read and modify events and access control lists.
+      reader - The user can read events that are not private.
+      writer - The user can read and modify events.
+  maxResults: integer, Maximum number of entries returned on one result page. Optional.
+  showDeleted: boolean, Whether to include deleted calendar list entries in the result. Optional. The default is False.
+  showHidden: boolean, Whether to show hidden entries. Optional. The default is False.
+  pageToken: string, Token specifying which result page to return. Optional.
+
+Returns:
+  An object of the form:
+
+    {
+      "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.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/calendar_v3.calendars.html b/docs/dyn/calendar_v3.calendars.html
new file mode 100644
index 0000000..d6d1524
--- /dev/null
+++ b/docs/dyn/calendar_v3.calendars.html
@@ -0,0 +1,236 @@
+<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="calendar_v3.html">Calendar API</a> . <a href="calendar_v3.calendars.html">calendars</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#clear">clear(calendarId)</a></code></p>
+<p class="firstline">Clears a primary calendar. This operation deletes all data associated with the primary calendar of an account and cannot be undone.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(calendarId)</a></code></p>
+<p class="firstline">Deletes a secondary calendar.</p>
+<p class="toc_element">
+  <code><a href="#get">get(calendarId)</a></code></p>
+<p class="firstline">Returns metadata for a calendar.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(body)</a></code></p>
+<p class="firstline">Creates a secondary calendar.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(calendarId, body)</a></code></p>
+<p class="firstline">Updates metadata for a calendar. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(calendarId, body)</a></code></p>
+<p class="firstline">Updates metadata for a calendar.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="clear">clear(calendarId)</code>
+  <pre>Clears a primary calendar. This operation deletes all data associated with the primary calendar of an account and cannot be undone.
+
+Args:
+  calendarId: string, Calendar identifier. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(calendarId)</code>
+  <pre>Deletes a secondary calendar.
+
+Args:
+  calendarId: string, Calendar identifier. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(calendarId)</code>
+  <pre>Returns metadata for a calendar.
+
+Args:
+  calendarId: string, Calendar identifier. (required)
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "calendar#calendar", # Type of the resource ("calendar#calendar").
+      "description": "A String", # Description of the calendar. Optional.
+      "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.
+      "id": "A String", # Identifier of the calendar.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(body)</code>
+  <pre>Creates a secondary calendar.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "kind": "calendar#calendar", # Type of the resource ("calendar#calendar").
+    "description": "A String", # Description of the calendar. Optional.
+    "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.
+    "id": "A String", # Identifier of the calendar.
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "calendar#calendar", # Type of the resource ("calendar#calendar").
+      "description": "A String", # Description of the calendar. Optional.
+      "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.
+      "id": "A String", # Identifier of the calendar.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(calendarId, body)</code>
+  <pre>Updates metadata for a calendar. This method supports patch semantics.
+
+Args:
+  calendarId: string, Calendar identifier. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "kind": "calendar#calendar", # Type of the resource ("calendar#calendar").
+    "description": "A String", # Description of the calendar. Optional.
+    "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.
+    "id": "A String", # Identifier of the calendar.
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "calendar#calendar", # Type of the resource ("calendar#calendar").
+      "description": "A String", # Description of the calendar. Optional.
+      "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.
+      "id": "A String", # Identifier of the calendar.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(calendarId, body)</code>
+  <pre>Updates metadata for a calendar.
+
+Args:
+  calendarId: string, Calendar identifier. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "kind": "calendar#calendar", # Type of the resource ("calendar#calendar").
+    "description": "A String", # Description of the calendar. Optional.
+    "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.
+    "id": "A String", # Identifier of the calendar.
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "calendar#calendar", # Type of the resource ("calendar#calendar").
+      "description": "A String", # Description of the calendar. Optional.
+      "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.
+      "id": "A String", # Identifier of the calendar.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/calendar_v3.channels.html b/docs/dyn/calendar_v3.channels.html
new file mode 100644
index 0000000..c53382c
--- /dev/null
+++ b/docs/dyn/calendar_v3.channels.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="calendar_v3.html">Calendar API</a> . <a href="calendar_v3.channels.html">channels</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#stop">stop(body)</a></code></p>
+<p class="firstline">Stop watching resources through this channel</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="stop">stop(body)</code>
+  <pre>Stop watching resources through this channel
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "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.
+  }
+
+</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/calendar_v3.colors.html b/docs/dyn/calendar_v3.colors.html
new file mode 100644
index 0000000..ecbf926
--- /dev/null
+++ b/docs/dyn/calendar_v3.colors.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="calendar_v3.html">Calendar API</a> . <a href="calendar_v3.colors.html">colors</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get()</a></code></p>
+<p class="firstline">Returns the color definitions for calendars and events.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get()</code>
+  <pre>Returns the color definitions for calendars and events.
+
+Args:
+
+Returns:
+  An object of the form:
+
+    {
+    "calendar": { # Palette of calendar colors, mapping from the color ID to its definition. An 'calendarListEntry' resource refers to one of these color IDs in its 'color' field. Read-only.
+      "a_key": { # A calendar color defintion.
+        "foreground": "A String", # The foreground color that can be used to write on top of a background with 'background' color.
+        "background": "A String", # The background color associated with this color definition.
+      },
+    },
+    "updated": "A String", # Last modification time of the color palette (as a RFC 3339 timestamp). Read-only.
+    "event": { # Palette of event colors, mapping from the color ID to its definition. An 'event' resource may refer to one of these color IDs in its 'color' field. Read-only.
+      "a_key": { # An event color definition.
+        "foreground": "A String", # The foreground color that can be used to write on top of a background with 'background' color.
+        "background": "A String", # The background color associated with this color definition.
+      },
+    },
+    "kind": "calendar#colors", # Type of the resource ("calendar#colors").
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/calendar_v3.events.html b/docs/dyn/calendar_v3.events.html
new file mode 100644
index 0000000..0b35ed9
--- /dev/null
+++ b/docs/dyn/calendar_v3.events.html
@@ -0,0 +1,2072 @@
+<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="calendar_v3.html">Calendar API</a> . <a href="calendar_v3.events.html">events</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(calendarId, eventId, sendNotifications=None)</a></code></p>
+<p class="firstline">Deletes an event.</p>
+<p class="toc_element">
+  <code><a href="#get">get(calendarId, eventId, alwaysIncludeEmail=None, timeZone=None, maxAttendees=None)</a></code></p>
+<p class="firstline">Returns an event.</p>
+<p class="toc_element">
+  <code><a href="#import_">import_(calendarId, body)</a></code></p>
+<p class="firstline">Imports an event. This operation is used to add a private copy of an existing event to a calendar.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(calendarId, body, sendNotifications=None, maxAttendees=None)</a></code></p>
+<p class="firstline">Creates an event.</p>
+<p class="toc_element">
+  <code><a href="#instances">instances(calendarId, eventId, timeMin=None, showDeleted=None, alwaysIncludeEmail=None, pageToken=None, maxAttendees=None, maxResults=None, timeMax=None, timeZone=None, originalStart=None)</a></code></p>
+<p class="firstline">Returns instances of the specified recurring event.</p>
+<p class="toc_element">
+  <code><a href="#instances_next">instances_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">list(calendarId, orderBy=None, showHiddenInvitations=None, timeMin=None, privateExtendedProperty=None, pageToken=None, updatedMin=None, singleEvents=None, alwaysIncludeEmail=None, showDeleted=None, sharedExtendedProperty=None, maxAttendees=None, syncToken=None, iCalUID=None, maxResults=None, timeMax=None, q=None, timeZone=None)</a></code></p>
+<p class="firstline">Returns events on the specified calendar.</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="#move">move(calendarId, eventId, destination, sendNotifications=None)</a></code></p>
+<p class="firstline">Moves an event to another calendar, i.e. changes an event's organizer.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(calendarId, eventId, body, sendNotifications=None, alwaysIncludeEmail=None, maxAttendees=None)</a></code></p>
+<p class="firstline">Updates an event. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#quickAdd">quickAdd(calendarId, text, sendNotifications=None)</a></code></p>
+<p class="firstline">Creates an event based on a simple text string.</p>
+<p class="toc_element">
+  <code><a href="#update">update(calendarId, eventId, body, sendNotifications=None, alwaysIncludeEmail=None, maxAttendees=None)</a></code></p>
+<p class="firstline">Updates an event.</p>
+<p class="toc_element">
+  <code><a href="#watch">watch(calendarId, body, orderBy=None, showHiddenInvitations=None, timeMin=None, privateExtendedProperty=None, pageToken=None, updatedMin=None, singleEvents=None, alwaysIncludeEmail=None, showDeleted=None, sharedExtendedProperty=None, maxAttendees=None, syncToken=None, iCalUID=None, maxResults=None, timeMax=None, q=None, timeZone=None)</a></code></p>
+<p class="firstline">Watch for changes to Events resources.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(calendarId, eventId, sendNotifications=None)</code>
+  <pre>Deletes an event.
+
+Args:
+  calendarId: string, Calendar identifier. (required)
+  eventId: string, Event identifier. (required)
+  sendNotifications: boolean, Whether to send notifications about the deletion of the event. Optional. The default is False.
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(calendarId, eventId, alwaysIncludeEmail=None, timeZone=None, maxAttendees=None)</code>
+  <pre>Returns an event.
+
+Args:
+  calendarId: string, Calendar identifier. (required)
+  eventId: string, Event identifier. (required)
+  alwaysIncludeEmail: boolean, Whether to always include a value in the "email" field for the organizer, creator and attendees, even if no real email is available (i.e. a generated, non-working value will be provided). The use of this option is discouraged and should only be used by clients which cannot handle the absence of an email address value in the mentioned places. Optional. The default is False.
+  timeZone: string, Time zone used in the response. Optional. The default is the time zone of the calendar.
+  maxAttendees: integer, The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.
+
+Returns:
+  An object of the form:
+
+    {
+      "creator": { # The creator of the event. Read-only.
+        "self": false, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
+        "displayName": "A String", # The creator's name, if available.
+        "email": "A String", # The creator's email address, if available.
+        "id": "A String", # The creator's Profile ID, if available.
+      },
+      "organizer": { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in 'attendees' with the 'organizer' field set to True. To change the organizer, use the "move" operation. Read-only, except when importing an event.
+        "self": false, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
+        "displayName": "A String", # The organizer's name, if available.
+        "email": "A String", # The organizer's email address, if available.
+        "id": "A String", # The organizer's Profile ID, if available.
+      },
+      "summary": "A String", # Title of the event.
+      "id": "A String", # Identifier of the event. When creating new single or recurring events, you can specify their IDs. Provided IDs must follow these rules:
+          # - characters allowed in the ID are those used in base32hex encoding, i.e. lowercase letters a-v and digits 0-9, see section 3.1.2 in RFC2938
+          # - the length of the ID must be between 5 and 1024 characters
+          # - the ID must be unique per calendar  Due to the globally distributed nature of the system, we cannot guarantee that ID collisions will be detected at event creation time. To minimize the risk of collisions we recommend using an established UUID algorithm such as one described in RFC4122.
+      "hangoutLink": "A String", # An absolute link to the Google+ hangout associated with this event. Read-only.
+      "attendees": [ # The attendees of the event.
+        {
+          "comment": "A String", # The attendee's response comment. Optional.
+          "displayName": "A String", # The attendee's name, if available. Optional.
+          "responseStatus": "A String", # The attendee's response status. Possible values are:
+              # - "needsAction" - The attendee has not responded to the invitation.
+              # - "declined" - The attendee has declined the invitation.
+              # - "tentative" - The attendee has tentatively accepted the invitation.
+              # - "accepted" - The attendee has accepted the invitation.
+          "self": True or False, # Whether this entry represents the calendar on which this copy of the event appears. Read-only. The default is False.
+          "id": "A String", # The attendee's Profile ID, if available.
+          "additionalGuests": 42, # Number of additional guests. Optional. The default is 0.
+          "resource": True or False, # Whether the attendee is a resource. Read-only. The default is False.
+          "organizer": True or False, # Whether the attendee is the organizer of the event. Read-only. The default is False.
+          "optional": True or False, # Whether this is an optional attendee. Optional. The default is False.
+          "email": "A String", # The attendee's email address, if available. This field must be present when adding an attendee.
+        },
+      ],
+      "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"). Optional. The default is the time zone of the calendar.
+        "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.
+      "recurrence": [ # List of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event. This field is omitted for single events or instances of recurring events.
+        "A String",
+      ],
+      "source": { # Source of an event from which it was created; for example a web page, an email message or any document identifiable by an URL using HTTP/HTTPS protocol. Accessible only by the creator of the event.
+        "url": "A String", # URL of the source pointing to a resource. URL's protocol must be HTTP or HTTPS.
+        "title": "A String", # Title of the source; for example a title of a web page or an email subject.
+      },
+      "etag": "A String", # ETag of the resource.
+      "location": "A String", # Geographic location of the event as free-form text. Optional.
+      "recurringEventId": "A String", # For an instance of a recurring event, this is the event ID of the recurring event itself. Immutable.
+      "gadget": { # A gadget that extends this event.
+        "preferences": { # Preferences.
+          "a_key": "A String", # The preference name and corresponding value.
+        },
+        "title": "A String", # The gadget's title.
+        "height": 42, # The gadget's height in pixels. Optional.
+        "width": 42, # The gadget's width in pixels. Optional.
+        "link": "A String", # The gadget's URL.
+        "type": "A String", # The gadget's type.
+        "display": "A String", # The gadget's display mode. Optional. Possible values are:
+            # - "icon" - The gadget displays next to the event's title in the calendar view.
+            # - "chip" - The gadget displays when the event is clicked.
+        "iconLink": "A String", # The gadget's icon URL.
+      },
+      "status": "A String", # Status of the event. Optional. Possible values are:
+          # - "confirmed" - The event is confirmed. This is the default status.
+          # - "tentative" - The event is tentatively confirmed.
+          # - "cancelled" - The event is cancelled.
+      "updated": "A String", # Last modification time of the event (as a RFC 3339 timestamp). Read-only.
+      "description": "A String", # Description of the event. Optional.
+      "iCalUID": "A String", # Event ID in the iCalendar format.
+      "extendedProperties": { # Extended properties of the event.
+        "shared": { # Properties that are shared between copies of the event on other attendees' calendars.
+          "a_key": "A String", # The name of the shared property and the corresponding value.
+        },
+        "private": { # Properties that are private to the copy of the event that appears on this calendar.
+          "a_key": "A String", # The name of the private property and the corresponding value.
+        },
+      },
+      "endTimeUnspecified": false, # Whether the end time is actually unspecified. An end time is still provided for compatibility reasons, even if this attribute is set to True. The default is False.
+      "sequence": 42, # Sequence number as per iCalendar.
+      "visibility": "default", # Visibility of the event. Optional. Possible values are:
+          # - "default" - Uses the default visibility for events on the calendar. This is the default value.
+          # - "public" - The event is public and event details are visible to all readers of the calendar.
+          # - "private" - The event is private and only event attendees may view event details.
+          # - "confidential" - The event is private. This value is provided for compatibility reasons.
+      "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"). Optional. The default is the time zone of the calendar.
+        "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.
+      "kind": "calendar#event", # Type of the resource ("calendar#event").
+      "locked": false, # Whether this is a locked event copy where no changes can be made to the main event fields "summary", "description", "location", "start", "end" or "recurrence". The default is False. Read-Only.
+      "created": "A String", # Creation time of the event (as a RFC 3339 timestamp). Read-only.
+      "colorId": "A String", # The color of the event. This is an ID referring to an entry in the "event" section of the colors definition (see the "colors" endpoint). Optional.
+      "anyoneCanAddSelf": false, # Whether anyone can invite themselves to the event. Optional. The default is False.
+      "reminders": { # Information about the event's reminders for the authenticated user.
+        "overrides": [ # If the event doesn't use the default reminders, this lists the reminders specific to the event, or, if not set, indicates that no reminders are set for this event.
+          {
+            "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger.
+            "method": "A String", # The method used by this reminder. Possible values are:
+                # - "email" - Reminders are sent via email.
+                # - "sms" - Reminders are sent via SMS.
+                # - "popup" - Reminders are sent via a UI popup.
+          },
+        ],
+        "useDefault": True or False, # Whether the default reminders of the calendar apply to the event.
+      },
+      "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"). Optional. The default is the time zone of the calendar.
+        "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.
+      "transparency": "opaque", # Whether the event blocks time on the calendar. Optional. Possible values are:
+          # - "opaque" - The event blocks time on the calendar. This is the default value.
+          # - "transparent" - The event does not block time on the calendar.
+      "privateCopy": false, # Whether this is a private event copy where changes are not shared with other copies on other calendars. Optional. Immutable. The default is False.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="import_">import_(calendarId, body)</code>
+  <pre>Imports an event. This operation is used to add a private copy of an existing event to a calendar.
+
+Args:
+  calendarId: string, Calendar identifier. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "creator": { # The creator of the event. Read-only.
+      "self": false, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
+      "displayName": "A String", # The creator's name, if available.
+      "email": "A String", # The creator's email address, if available.
+      "id": "A String", # The creator's Profile ID, if available.
+    },
+    "organizer": { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in 'attendees' with the 'organizer' field set to True. To change the organizer, use the "move" operation. Read-only, except when importing an event.
+      "self": false, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
+      "displayName": "A String", # The organizer's name, if available.
+      "email": "A String", # The organizer's email address, if available.
+      "id": "A String", # The organizer's Profile ID, if available.
+    },
+    "summary": "A String", # Title of the event.
+    "id": "A String", # Identifier of the event. When creating new single or recurring events, you can specify their IDs. Provided IDs must follow these rules:
+        # - characters allowed in the ID are those used in base32hex encoding, i.e. lowercase letters a-v and digits 0-9, see section 3.1.2 in RFC2938
+        # - the length of the ID must be between 5 and 1024 characters
+        # - the ID must be unique per calendar  Due to the globally distributed nature of the system, we cannot guarantee that ID collisions will be detected at event creation time. To minimize the risk of collisions we recommend using an established UUID algorithm such as one described in RFC4122.
+    "hangoutLink": "A String", # An absolute link to the Google+ hangout associated with this event. Read-only.
+    "attendees": [ # The attendees of the event.
+      {
+        "comment": "A String", # The attendee's response comment. Optional.
+        "displayName": "A String", # The attendee's name, if available. Optional.
+        "responseStatus": "A String", # The attendee's response status. Possible values are:
+            # - "needsAction" - The attendee has not responded to the invitation.
+            # - "declined" - The attendee has declined the invitation.
+            # - "tentative" - The attendee has tentatively accepted the invitation.
+            # - "accepted" - The attendee has accepted the invitation.
+        "self": True or False, # Whether this entry represents the calendar on which this copy of the event appears. Read-only. The default is False.
+        "id": "A String", # The attendee's Profile ID, if available.
+        "additionalGuests": 42, # Number of additional guests. Optional. The default is 0.
+        "resource": True or False, # Whether the attendee is a resource. Read-only. The default is False.
+        "organizer": True or False, # Whether the attendee is the organizer of the event. Read-only. The default is False.
+        "optional": True or False, # Whether this is an optional attendee. Optional. The default is False.
+        "email": "A String", # The attendee's email address, if available. This field must be present when adding an attendee.
+      },
+    ],
+    "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"). Optional. The default is the time zone of the calendar.
+      "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.
+    "recurrence": [ # List of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event. This field is omitted for single events or instances of recurring events.
+      "A String",
+    ],
+    "source": { # Source of an event from which it was created; for example a web page, an email message or any document identifiable by an URL using HTTP/HTTPS protocol. Accessible only by the creator of the event.
+      "url": "A String", # URL of the source pointing to a resource. URL's protocol must be HTTP or HTTPS.
+      "title": "A String", # Title of the source; for example a title of a web page or an email subject.
+    },
+    "etag": "A String", # ETag of the resource.
+    "location": "A String", # Geographic location of the event as free-form text. Optional.
+    "recurringEventId": "A String", # For an instance of a recurring event, this is the event ID of the recurring event itself. Immutable.
+    "gadget": { # A gadget that extends this event.
+      "preferences": { # Preferences.
+        "a_key": "A String", # The preference name and corresponding value.
+      },
+      "title": "A String", # The gadget's title.
+      "height": 42, # The gadget's height in pixels. Optional.
+      "width": 42, # The gadget's width in pixels. Optional.
+      "link": "A String", # The gadget's URL.
+      "type": "A String", # The gadget's type.
+      "display": "A String", # The gadget's display mode. Optional. Possible values are:
+          # - "icon" - The gadget displays next to the event's title in the calendar view.
+          # - "chip" - The gadget displays when the event is clicked.
+      "iconLink": "A String", # The gadget's icon URL.
+    },
+    "status": "A String", # Status of the event. Optional. Possible values are:
+        # - "confirmed" - The event is confirmed. This is the default status.
+        # - "tentative" - The event is tentatively confirmed.
+        # - "cancelled" - The event is cancelled.
+    "updated": "A String", # Last modification time of the event (as a RFC 3339 timestamp). Read-only.
+    "description": "A String", # Description of the event. Optional.
+    "iCalUID": "A String", # Event ID in the iCalendar format.
+    "extendedProperties": { # Extended properties of the event.
+      "shared": { # Properties that are shared between copies of the event on other attendees' calendars.
+        "a_key": "A String", # The name of the shared property and the corresponding value.
+      },
+      "private": { # Properties that are private to the copy of the event that appears on this calendar.
+        "a_key": "A String", # The name of the private property and the corresponding value.
+      },
+    },
+    "endTimeUnspecified": false, # Whether the end time is actually unspecified. An end time is still provided for compatibility reasons, even if this attribute is set to True. The default is False.
+    "sequence": 42, # Sequence number as per iCalendar.
+    "visibility": "default", # Visibility of the event. Optional. Possible values are:
+        # - "default" - Uses the default visibility for events on the calendar. This is the default value.
+        # - "public" - The event is public and event details are visible to all readers of the calendar.
+        # - "private" - The event is private and only event attendees may view event details.
+        # - "confidential" - The event is private. This value is provided for compatibility reasons.
+    "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"). Optional. The default is the time zone of the calendar.
+      "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.
+    "kind": "calendar#event", # Type of the resource ("calendar#event").
+    "locked": false, # Whether this is a locked event copy where no changes can be made to the main event fields "summary", "description", "location", "start", "end" or "recurrence". The default is False. Read-Only.
+    "created": "A String", # Creation time of the event (as a RFC 3339 timestamp). Read-only.
+    "colorId": "A String", # The color of the event. This is an ID referring to an entry in the "event" section of the colors definition (see the "colors" endpoint). Optional.
+    "anyoneCanAddSelf": false, # Whether anyone can invite themselves to the event. Optional. The default is False.
+    "reminders": { # Information about the event's reminders for the authenticated user.
+      "overrides": [ # If the event doesn't use the default reminders, this lists the reminders specific to the event, or, if not set, indicates that no reminders are set for this event.
+        {
+          "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger.
+          "method": "A String", # The method used by this reminder. Possible values are:
+              # - "email" - Reminders are sent via email.
+              # - "sms" - Reminders are sent via SMS.
+              # - "popup" - Reminders are sent via a UI popup.
+        },
+      ],
+      "useDefault": True or False, # Whether the default reminders of the calendar apply to the event.
+    },
+    "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"). Optional. The default is the time zone of the calendar.
+      "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.
+    "transparency": "opaque", # Whether the event blocks time on the calendar. Optional. Possible values are:
+        # - "opaque" - The event blocks time on the calendar. This is the default value.
+        # - "transparent" - The event does not block time on the calendar.
+    "privateCopy": false, # Whether this is a private event copy where changes are not shared with other copies on other calendars. Optional. Immutable. The default is False.
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "creator": { # The creator of the event. Read-only.
+        "self": false, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
+        "displayName": "A String", # The creator's name, if available.
+        "email": "A String", # The creator's email address, if available.
+        "id": "A String", # The creator's Profile ID, if available.
+      },
+      "organizer": { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in 'attendees' with the 'organizer' field set to True. To change the organizer, use the "move" operation. Read-only, except when importing an event.
+        "self": false, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
+        "displayName": "A String", # The organizer's name, if available.
+        "email": "A String", # The organizer's email address, if available.
+        "id": "A String", # The organizer's Profile ID, if available.
+      },
+      "summary": "A String", # Title of the event.
+      "id": "A String", # Identifier of the event. When creating new single or recurring events, you can specify their IDs. Provided IDs must follow these rules:
+          # - characters allowed in the ID are those used in base32hex encoding, i.e. lowercase letters a-v and digits 0-9, see section 3.1.2 in RFC2938
+          # - the length of the ID must be between 5 and 1024 characters
+          # - the ID must be unique per calendar  Due to the globally distributed nature of the system, we cannot guarantee that ID collisions will be detected at event creation time. To minimize the risk of collisions we recommend using an established UUID algorithm such as one described in RFC4122.
+      "hangoutLink": "A String", # An absolute link to the Google+ hangout associated with this event. Read-only.
+      "attendees": [ # The attendees of the event.
+        {
+          "comment": "A String", # The attendee's response comment. Optional.
+          "displayName": "A String", # The attendee's name, if available. Optional.
+          "responseStatus": "A String", # The attendee's response status. Possible values are:
+              # - "needsAction" - The attendee has not responded to the invitation.
+              # - "declined" - The attendee has declined the invitation.
+              # - "tentative" - The attendee has tentatively accepted the invitation.
+              # - "accepted" - The attendee has accepted the invitation.
+          "self": True or False, # Whether this entry represents the calendar on which this copy of the event appears. Read-only. The default is False.
+          "id": "A String", # The attendee's Profile ID, if available.
+          "additionalGuests": 42, # Number of additional guests. Optional. The default is 0.
+          "resource": True or False, # Whether the attendee is a resource. Read-only. The default is False.
+          "organizer": True or False, # Whether the attendee is the organizer of the event. Read-only. The default is False.
+          "optional": True or False, # Whether this is an optional attendee. Optional. The default is False.
+          "email": "A String", # The attendee's email address, if available. This field must be present when adding an attendee.
+        },
+      ],
+      "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"). Optional. The default is the time zone of the calendar.
+        "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.
+      "recurrence": [ # List of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event. This field is omitted for single events or instances of recurring events.
+        "A String",
+      ],
+      "source": { # Source of an event from which it was created; for example a web page, an email message or any document identifiable by an URL using HTTP/HTTPS protocol. Accessible only by the creator of the event.
+        "url": "A String", # URL of the source pointing to a resource. URL's protocol must be HTTP or HTTPS.
+        "title": "A String", # Title of the source; for example a title of a web page or an email subject.
+      },
+      "etag": "A String", # ETag of the resource.
+      "location": "A String", # Geographic location of the event as free-form text. Optional.
+      "recurringEventId": "A String", # For an instance of a recurring event, this is the event ID of the recurring event itself. Immutable.
+      "gadget": { # A gadget that extends this event.
+        "preferences": { # Preferences.
+          "a_key": "A String", # The preference name and corresponding value.
+        },
+        "title": "A String", # The gadget's title.
+        "height": 42, # The gadget's height in pixels. Optional.
+        "width": 42, # The gadget's width in pixels. Optional.
+        "link": "A String", # The gadget's URL.
+        "type": "A String", # The gadget's type.
+        "display": "A String", # The gadget's display mode. Optional. Possible values are:
+            # - "icon" - The gadget displays next to the event's title in the calendar view.
+            # - "chip" - The gadget displays when the event is clicked.
+        "iconLink": "A String", # The gadget's icon URL.
+      },
+      "status": "A String", # Status of the event. Optional. Possible values are:
+          # - "confirmed" - The event is confirmed. This is the default status.
+          # - "tentative" - The event is tentatively confirmed.
+          # - "cancelled" - The event is cancelled.
+      "updated": "A String", # Last modification time of the event (as a RFC 3339 timestamp). Read-only.
+      "description": "A String", # Description of the event. Optional.
+      "iCalUID": "A String", # Event ID in the iCalendar format.
+      "extendedProperties": { # Extended properties of the event.
+        "shared": { # Properties that are shared between copies of the event on other attendees' calendars.
+          "a_key": "A String", # The name of the shared property and the corresponding value.
+        },
+        "private": { # Properties that are private to the copy of the event that appears on this calendar.
+          "a_key": "A String", # The name of the private property and the corresponding value.
+        },
+      },
+      "endTimeUnspecified": false, # Whether the end time is actually unspecified. An end time is still provided for compatibility reasons, even if this attribute is set to True. The default is False.
+      "sequence": 42, # Sequence number as per iCalendar.
+      "visibility": "default", # Visibility of the event. Optional. Possible values are:
+          # - "default" - Uses the default visibility for events on the calendar. This is the default value.
+          # - "public" - The event is public and event details are visible to all readers of the calendar.
+          # - "private" - The event is private and only event attendees may view event details.
+          # - "confidential" - The event is private. This value is provided for compatibility reasons.
+      "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"). Optional. The default is the time zone of the calendar.
+        "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.
+      "kind": "calendar#event", # Type of the resource ("calendar#event").
+      "locked": false, # Whether this is a locked event copy where no changes can be made to the main event fields "summary", "description", "location", "start", "end" or "recurrence". The default is False. Read-Only.
+      "created": "A String", # Creation time of the event (as a RFC 3339 timestamp). Read-only.
+      "colorId": "A String", # The color of the event. This is an ID referring to an entry in the "event" section of the colors definition (see the "colors" endpoint). Optional.
+      "anyoneCanAddSelf": false, # Whether anyone can invite themselves to the event. Optional. The default is False.
+      "reminders": { # Information about the event's reminders for the authenticated user.
+        "overrides": [ # If the event doesn't use the default reminders, this lists the reminders specific to the event, or, if not set, indicates that no reminders are set for this event.
+          {
+            "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger.
+            "method": "A String", # The method used by this reminder. Possible values are:
+                # - "email" - Reminders are sent via email.
+                # - "sms" - Reminders are sent via SMS.
+                # - "popup" - Reminders are sent via a UI popup.
+          },
+        ],
+        "useDefault": True or False, # Whether the default reminders of the calendar apply to the event.
+      },
+      "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"). Optional. The default is the time zone of the calendar.
+        "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.
+      "transparency": "opaque", # Whether the event blocks time on the calendar. Optional. Possible values are:
+          # - "opaque" - The event blocks time on the calendar. This is the default value.
+          # - "transparent" - The event does not block time on the calendar.
+      "privateCopy": false, # Whether this is a private event copy where changes are not shared with other copies on other calendars. Optional. Immutable. The default is False.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(calendarId, body, sendNotifications=None, maxAttendees=None)</code>
+  <pre>Creates an event.
+
+Args:
+  calendarId: string, Calendar identifier. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "creator": { # The creator of the event. Read-only.
+      "self": false, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
+      "displayName": "A String", # The creator's name, if available.
+      "email": "A String", # The creator's email address, if available.
+      "id": "A String", # The creator's Profile ID, if available.
+    },
+    "organizer": { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in 'attendees' with the 'organizer' field set to True. To change the organizer, use the "move" operation. Read-only, except when importing an event.
+      "self": false, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
+      "displayName": "A String", # The organizer's name, if available.
+      "email": "A String", # The organizer's email address, if available.
+      "id": "A String", # The organizer's Profile ID, if available.
+    },
+    "summary": "A String", # Title of the event.
+    "id": "A String", # Identifier of the event. When creating new single or recurring events, you can specify their IDs. Provided IDs must follow these rules:
+        # - characters allowed in the ID are those used in base32hex encoding, i.e. lowercase letters a-v and digits 0-9, see section 3.1.2 in RFC2938
+        # - the length of the ID must be between 5 and 1024 characters
+        # - the ID must be unique per calendar  Due to the globally distributed nature of the system, we cannot guarantee that ID collisions will be detected at event creation time. To minimize the risk of collisions we recommend using an established UUID algorithm such as one described in RFC4122.
+    "hangoutLink": "A String", # An absolute link to the Google+ hangout associated with this event. Read-only.
+    "attendees": [ # The attendees of the event.
+      {
+        "comment": "A String", # The attendee's response comment. Optional.
+        "displayName": "A String", # The attendee's name, if available. Optional.
+        "responseStatus": "A String", # The attendee's response status. Possible values are:
+            # - "needsAction" - The attendee has not responded to the invitation.
+            # - "declined" - The attendee has declined the invitation.
+            # - "tentative" - The attendee has tentatively accepted the invitation.
+            # - "accepted" - The attendee has accepted the invitation.
+        "self": True or False, # Whether this entry represents the calendar on which this copy of the event appears. Read-only. The default is False.
+        "id": "A String", # The attendee's Profile ID, if available.
+        "additionalGuests": 42, # Number of additional guests. Optional. The default is 0.
+        "resource": True or False, # Whether the attendee is a resource. Read-only. The default is False.
+        "organizer": True or False, # Whether the attendee is the organizer of the event. Read-only. The default is False.
+        "optional": True or False, # Whether this is an optional attendee. Optional. The default is False.
+        "email": "A String", # The attendee's email address, if available. This field must be present when adding an attendee.
+      },
+    ],
+    "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"). Optional. The default is the time zone of the calendar.
+      "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.
+    "recurrence": [ # List of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event. This field is omitted for single events or instances of recurring events.
+      "A String",
+    ],
+    "source": { # Source of an event from which it was created; for example a web page, an email message or any document identifiable by an URL using HTTP/HTTPS protocol. Accessible only by the creator of the event.
+      "url": "A String", # URL of the source pointing to a resource. URL's protocol must be HTTP or HTTPS.
+      "title": "A String", # Title of the source; for example a title of a web page or an email subject.
+    },
+    "etag": "A String", # ETag of the resource.
+    "location": "A String", # Geographic location of the event as free-form text. Optional.
+    "recurringEventId": "A String", # For an instance of a recurring event, this is the event ID of the recurring event itself. Immutable.
+    "gadget": { # A gadget that extends this event.
+      "preferences": { # Preferences.
+        "a_key": "A String", # The preference name and corresponding value.
+      },
+      "title": "A String", # The gadget's title.
+      "height": 42, # The gadget's height in pixels. Optional.
+      "width": 42, # The gadget's width in pixels. Optional.
+      "link": "A String", # The gadget's URL.
+      "type": "A String", # The gadget's type.
+      "display": "A String", # The gadget's display mode. Optional. Possible values are:
+          # - "icon" - The gadget displays next to the event's title in the calendar view.
+          # - "chip" - The gadget displays when the event is clicked.
+      "iconLink": "A String", # The gadget's icon URL.
+    },
+    "status": "A String", # Status of the event. Optional. Possible values are:
+        # - "confirmed" - The event is confirmed. This is the default status.
+        # - "tentative" - The event is tentatively confirmed.
+        # - "cancelled" - The event is cancelled.
+    "updated": "A String", # Last modification time of the event (as a RFC 3339 timestamp). Read-only.
+    "description": "A String", # Description of the event. Optional.
+    "iCalUID": "A String", # Event ID in the iCalendar format.
+    "extendedProperties": { # Extended properties of the event.
+      "shared": { # Properties that are shared between copies of the event on other attendees' calendars.
+        "a_key": "A String", # The name of the shared property and the corresponding value.
+      },
+      "private": { # Properties that are private to the copy of the event that appears on this calendar.
+        "a_key": "A String", # The name of the private property and the corresponding value.
+      },
+    },
+    "endTimeUnspecified": false, # Whether the end time is actually unspecified. An end time is still provided for compatibility reasons, even if this attribute is set to True. The default is False.
+    "sequence": 42, # Sequence number as per iCalendar.
+    "visibility": "default", # Visibility of the event. Optional. Possible values are:
+        # - "default" - Uses the default visibility for events on the calendar. This is the default value.
+        # - "public" - The event is public and event details are visible to all readers of the calendar.
+        # - "private" - The event is private and only event attendees may view event details.
+        # - "confidential" - The event is private. This value is provided for compatibility reasons.
+    "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"). Optional. The default is the time zone of the calendar.
+      "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.
+    "kind": "calendar#event", # Type of the resource ("calendar#event").
+    "locked": false, # Whether this is a locked event copy where no changes can be made to the main event fields "summary", "description", "location", "start", "end" or "recurrence". The default is False. Read-Only.
+    "created": "A String", # Creation time of the event (as a RFC 3339 timestamp). Read-only.
+    "colorId": "A String", # The color of the event. This is an ID referring to an entry in the "event" section of the colors definition (see the "colors" endpoint). Optional.
+    "anyoneCanAddSelf": false, # Whether anyone can invite themselves to the event. Optional. The default is False.
+    "reminders": { # Information about the event's reminders for the authenticated user.
+      "overrides": [ # If the event doesn't use the default reminders, this lists the reminders specific to the event, or, if not set, indicates that no reminders are set for this event.
+        {
+          "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger.
+          "method": "A String", # The method used by this reminder. Possible values are:
+              # - "email" - Reminders are sent via email.
+              # - "sms" - Reminders are sent via SMS.
+              # - "popup" - Reminders are sent via a UI popup.
+        },
+      ],
+      "useDefault": True or False, # Whether the default reminders of the calendar apply to the event.
+    },
+    "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"). Optional. The default is the time zone of the calendar.
+      "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.
+    "transparency": "opaque", # Whether the event blocks time on the calendar. Optional. Possible values are:
+        # - "opaque" - The event blocks time on the calendar. This is the default value.
+        # - "transparent" - The event does not block time on the calendar.
+    "privateCopy": false, # Whether this is a private event copy where changes are not shared with other copies on other calendars. Optional. Immutable. The default is False.
+  }
+
+  sendNotifications: boolean, Whether to send notifications about the creation of the new event. Optional. The default is False.
+  maxAttendees: integer, The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.
+
+Returns:
+  An object of the form:
+
+    {
+      "creator": { # The creator of the event. Read-only.
+        "self": false, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
+        "displayName": "A String", # The creator's name, if available.
+        "email": "A String", # The creator's email address, if available.
+        "id": "A String", # The creator's Profile ID, if available.
+      },
+      "organizer": { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in 'attendees' with the 'organizer' field set to True. To change the organizer, use the "move" operation. Read-only, except when importing an event.
+        "self": false, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
+        "displayName": "A String", # The organizer's name, if available.
+        "email": "A String", # The organizer's email address, if available.
+        "id": "A String", # The organizer's Profile ID, if available.
+      },
+      "summary": "A String", # Title of the event.
+      "id": "A String", # Identifier of the event. When creating new single or recurring events, you can specify their IDs. Provided IDs must follow these rules:
+          # - characters allowed in the ID are those used in base32hex encoding, i.e. lowercase letters a-v and digits 0-9, see section 3.1.2 in RFC2938
+          # - the length of the ID must be between 5 and 1024 characters
+          # - the ID must be unique per calendar  Due to the globally distributed nature of the system, we cannot guarantee that ID collisions will be detected at event creation time. To minimize the risk of collisions we recommend using an established UUID algorithm such as one described in RFC4122.
+      "hangoutLink": "A String", # An absolute link to the Google+ hangout associated with this event. Read-only.
+      "attendees": [ # The attendees of the event.
+        {
+          "comment": "A String", # The attendee's response comment. Optional.
+          "displayName": "A String", # The attendee's name, if available. Optional.
+          "responseStatus": "A String", # The attendee's response status. Possible values are:
+              # - "needsAction" - The attendee has not responded to the invitation.
+              # - "declined" - The attendee has declined the invitation.
+              # - "tentative" - The attendee has tentatively accepted the invitation.
+              # - "accepted" - The attendee has accepted the invitation.
+          "self": True or False, # Whether this entry represents the calendar on which this copy of the event appears. Read-only. The default is False.
+          "id": "A String", # The attendee's Profile ID, if available.
+          "additionalGuests": 42, # Number of additional guests. Optional. The default is 0.
+          "resource": True or False, # Whether the attendee is a resource. Read-only. The default is False.
+          "organizer": True or False, # Whether the attendee is the organizer of the event. Read-only. The default is False.
+          "optional": True or False, # Whether this is an optional attendee. Optional. The default is False.
+          "email": "A String", # The attendee's email address, if available. This field must be present when adding an attendee.
+        },
+      ],
+      "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"). Optional. The default is the time zone of the calendar.
+        "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.
+      "recurrence": [ # List of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event. This field is omitted for single events or instances of recurring events.
+        "A String",
+      ],
+      "source": { # Source of an event from which it was created; for example a web page, an email message or any document identifiable by an URL using HTTP/HTTPS protocol. Accessible only by the creator of the event.
+        "url": "A String", # URL of the source pointing to a resource. URL's protocol must be HTTP or HTTPS.
+        "title": "A String", # Title of the source; for example a title of a web page or an email subject.
+      },
+      "etag": "A String", # ETag of the resource.
+      "location": "A String", # Geographic location of the event as free-form text. Optional.
+      "recurringEventId": "A String", # For an instance of a recurring event, this is the event ID of the recurring event itself. Immutable.
+      "gadget": { # A gadget that extends this event.
+        "preferences": { # Preferences.
+          "a_key": "A String", # The preference name and corresponding value.
+        },
+        "title": "A String", # The gadget's title.
+        "height": 42, # The gadget's height in pixels. Optional.
+        "width": 42, # The gadget's width in pixels. Optional.
+        "link": "A String", # The gadget's URL.
+        "type": "A String", # The gadget's type.
+        "display": "A String", # The gadget's display mode. Optional. Possible values are:
+            # - "icon" - The gadget displays next to the event's title in the calendar view.
+            # - "chip" - The gadget displays when the event is clicked.
+        "iconLink": "A String", # The gadget's icon URL.
+      },
+      "status": "A String", # Status of the event. Optional. Possible values are:
+          # - "confirmed" - The event is confirmed. This is the default status.
+          # - "tentative" - The event is tentatively confirmed.
+          # - "cancelled" - The event is cancelled.
+      "updated": "A String", # Last modification time of the event (as a RFC 3339 timestamp). Read-only.
+      "description": "A String", # Description of the event. Optional.
+      "iCalUID": "A String", # Event ID in the iCalendar format.
+      "extendedProperties": { # Extended properties of the event.
+        "shared": { # Properties that are shared between copies of the event on other attendees' calendars.
+          "a_key": "A String", # The name of the shared property and the corresponding value.
+        },
+        "private": { # Properties that are private to the copy of the event that appears on this calendar.
+          "a_key": "A String", # The name of the private property and the corresponding value.
+        },
+      },
+      "endTimeUnspecified": false, # Whether the end time is actually unspecified. An end time is still provided for compatibility reasons, even if this attribute is set to True. The default is False.
+      "sequence": 42, # Sequence number as per iCalendar.
+      "visibility": "default", # Visibility of the event. Optional. Possible values are:
+          # - "default" - Uses the default visibility for events on the calendar. This is the default value.
+          # - "public" - The event is public and event details are visible to all readers of the calendar.
+          # - "private" - The event is private and only event attendees may view event details.
+          # - "confidential" - The event is private. This value is provided for compatibility reasons.
+      "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"). Optional. The default is the time zone of the calendar.
+        "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.
+      "kind": "calendar#event", # Type of the resource ("calendar#event").
+      "locked": false, # Whether this is a locked event copy where no changes can be made to the main event fields "summary", "description", "location", "start", "end" or "recurrence". The default is False. Read-Only.
+      "created": "A String", # Creation time of the event (as a RFC 3339 timestamp). Read-only.
+      "colorId": "A String", # The color of the event. This is an ID referring to an entry in the "event" section of the colors definition (see the "colors" endpoint). Optional.
+      "anyoneCanAddSelf": false, # Whether anyone can invite themselves to the event. Optional. The default is False.
+      "reminders": { # Information about the event's reminders for the authenticated user.
+        "overrides": [ # If the event doesn't use the default reminders, this lists the reminders specific to the event, or, if not set, indicates that no reminders are set for this event.
+          {
+            "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger.
+            "method": "A String", # The method used by this reminder. Possible values are:
+                # - "email" - Reminders are sent via email.
+                # - "sms" - Reminders are sent via SMS.
+                # - "popup" - Reminders are sent via a UI popup.
+          },
+        ],
+        "useDefault": True or False, # Whether the default reminders of the calendar apply to the event.
+      },
+      "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"). Optional. The default is the time zone of the calendar.
+        "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.
+      "transparency": "opaque", # Whether the event blocks time on the calendar. Optional. Possible values are:
+          # - "opaque" - The event blocks time on the calendar. This is the default value.
+          # - "transparent" - The event does not block time on the calendar.
+      "privateCopy": false, # Whether this is a private event copy where changes are not shared with other copies on other calendars. Optional. Immutable. The default is False.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="instances">instances(calendarId, eventId, timeMin=None, showDeleted=None, alwaysIncludeEmail=None, pageToken=None, maxAttendees=None, maxResults=None, timeMax=None, timeZone=None, originalStart=None)</code>
+  <pre>Returns instances of the specified recurring event.
+
+Args:
+  calendarId: string, Calendar identifier. (required)
+  eventId: string, Recurring event identifier. (required)
+  timeMin: string, Lower bound (inclusive) for an event's end time to filter by. Optional. The default is not to filter by end time.
+  showDeleted: boolean, Whether to include deleted events (with 'status' equals 'cancelled') in the result. Cancelled instances of recurring events will still be included if 'singleEvents' is False. Optional. The default is False.
+  alwaysIncludeEmail: boolean, Whether to always include a value in the "email" field for the organizer, creator and attendees, even if no real email is available (i.e. a generated, non-working value will be provided). The use of this option is discouraged and should only be used by clients which cannot handle the absence of an email address value in the mentioned places. Optional. The default is False.
+  pageToken: string, Token specifying which result page to return. Optional.
+  maxAttendees: integer, The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.
+  maxResults: integer, Maximum number of events returned on one result page. Optional.
+  timeMax: string, Upper bound (exclusive) for an event's start time to filter by. Optional. The default is not to filter by start time.
+  timeZone: string, Time zone used in the response. Optional. The default is the time zone of the calendar.
+  originalStart: string, The original start time of the instance in the result. Optional.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Token used to access the next page of this result. Omitted if no further results are available.
+    "kind": "calendar#events", # Type of the collection ("calendar#events").
+    "defaultReminders": [ # The default reminders on the calendar for the authenticated user. These reminders apply to all events on this calendar that do not explicitly override them (i.e. do not have 'reminders.useDefault' set to 'true').
+      {
+        "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger.
+        "method": "A String", # The method used by this reminder. Possible values are:
+            # - "email" - Reminders are sent via email.
+            # - "sms" - Reminders are sent via SMS.
+            # - "popup" - Reminders are sent via a UI popup.
+      },
+    ],
+    "description": "A String", # Description of the calendar. Read-only.
+    "items": [ # List of events on the calendar.
+      {
+          "creator": { # The creator of the event. Read-only.
+            "self": false, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
+            "displayName": "A String", # The creator's name, if available.
+            "email": "A String", # The creator's email address, if available.
+            "id": "A String", # The creator's Profile ID, if available.
+          },
+          "organizer": { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in 'attendees' with the 'organizer' field set to True. To change the organizer, use the "move" operation. Read-only, except when importing an event.
+            "self": false, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
+            "displayName": "A String", # The organizer's name, if available.
+            "email": "A String", # The organizer's email address, if available.
+            "id": "A String", # The organizer's Profile ID, if available.
+          },
+          "summary": "A String", # Title of the event.
+          "id": "A String", # Identifier of the event. When creating new single or recurring events, you can specify their IDs. Provided IDs must follow these rules:
+              # - characters allowed in the ID are those used in base32hex encoding, i.e. lowercase letters a-v and digits 0-9, see section 3.1.2 in RFC2938
+              # - the length of the ID must be between 5 and 1024 characters
+              # - the ID must be unique per calendar  Due to the globally distributed nature of the system, we cannot guarantee that ID collisions will be detected at event creation time. To minimize the risk of collisions we recommend using an established UUID algorithm such as one described in RFC4122.
+          "hangoutLink": "A String", # An absolute link to the Google+ hangout associated with this event. Read-only.
+          "attendees": [ # The attendees of the event.
+            {
+              "comment": "A String", # The attendee's response comment. Optional.
+              "displayName": "A String", # The attendee's name, if available. Optional.
+              "responseStatus": "A String", # The attendee's response status. Possible values are:
+                  # - "needsAction" - The attendee has not responded to the invitation.
+                  # - "declined" - The attendee has declined the invitation.
+                  # - "tentative" - The attendee has tentatively accepted the invitation.
+                  # - "accepted" - The attendee has accepted the invitation.
+              "self": True or False, # Whether this entry represents the calendar on which this copy of the event appears. Read-only. The default is False.
+              "id": "A String", # The attendee's Profile ID, if available.
+              "additionalGuests": 42, # Number of additional guests. Optional. The default is 0.
+              "resource": True or False, # Whether the attendee is a resource. Read-only. The default is False.
+              "organizer": True or False, # Whether the attendee is the organizer of the event. Read-only. The default is False.
+              "optional": True or False, # Whether this is an optional attendee. Optional. The default is False.
+              "email": "A String", # The attendee's email address, if available. This field must be present when adding an attendee.
+            },
+          ],
+          "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"). Optional. The default is the time zone of the calendar.
+            "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.
+          "recurrence": [ # List of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event. This field is omitted for single events or instances of recurring events.
+            "A String",
+          ],
+          "source": { # Source of an event from which it was created; for example a web page, an email message or any document identifiable by an URL using HTTP/HTTPS protocol. Accessible only by the creator of the event.
+            "url": "A String", # URL of the source pointing to a resource. URL's protocol must be HTTP or HTTPS.
+            "title": "A String", # Title of the source; for example a title of a web page or an email subject.
+          },
+          "etag": "A String", # ETag of the resource.
+          "location": "A String", # Geographic location of the event as free-form text. Optional.
+          "recurringEventId": "A String", # For an instance of a recurring event, this is the event ID of the recurring event itself. Immutable.
+          "gadget": { # A gadget that extends this event.
+            "preferences": { # Preferences.
+              "a_key": "A String", # The preference name and corresponding value.
+            },
+            "title": "A String", # The gadget's title.
+            "height": 42, # The gadget's height in pixels. Optional.
+            "width": 42, # The gadget's width in pixels. Optional.
+            "link": "A String", # The gadget's URL.
+            "type": "A String", # The gadget's type.
+            "display": "A String", # The gadget's display mode. Optional. Possible values are:
+                # - "icon" - The gadget displays next to the event's title in the calendar view.
+                # - "chip" - The gadget displays when the event is clicked.
+            "iconLink": "A String", # The gadget's icon URL.
+          },
+          "status": "A String", # Status of the event. Optional. Possible values are:
+              # - "confirmed" - The event is confirmed. This is the default status.
+              # - "tentative" - The event is tentatively confirmed.
+              # - "cancelled" - The event is cancelled.
+          "updated": "A String", # Last modification time of the event (as a RFC 3339 timestamp). Read-only.
+          "description": "A String", # Description of the event. Optional.
+          "iCalUID": "A String", # Event ID in the iCalendar format.
+          "extendedProperties": { # Extended properties of the event.
+            "shared": { # Properties that are shared between copies of the event on other attendees' calendars.
+              "a_key": "A String", # The name of the shared property and the corresponding value.
+            },
+            "private": { # Properties that are private to the copy of the event that appears on this calendar.
+              "a_key": "A String", # The name of the private property and the corresponding value.
+            },
+          },
+          "endTimeUnspecified": false, # Whether the end time is actually unspecified. An end time is still provided for compatibility reasons, even if this attribute is set to True. The default is False.
+          "sequence": 42, # Sequence number as per iCalendar.
+          "visibility": "default", # Visibility of the event. Optional. Possible values are:
+              # - "default" - Uses the default visibility for events on the calendar. This is the default value.
+              # - "public" - The event is public and event details are visible to all readers of the calendar.
+              # - "private" - The event is private and only event attendees may view event details.
+              # - "confidential" - The event is private. This value is provided for compatibility reasons.
+          "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"). Optional. The default is the time zone of the calendar.
+            "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.
+          "kind": "calendar#event", # Type of the resource ("calendar#event").
+          "locked": false, # Whether this is a locked event copy where no changes can be made to the main event fields "summary", "description", "location", "start", "end" or "recurrence". The default is False. Read-Only.
+          "created": "A String", # Creation time of the event (as a RFC 3339 timestamp). Read-only.
+          "colorId": "A String", # The color of the event. This is an ID referring to an entry in the "event" section of the colors definition (see the "colors" endpoint). Optional.
+          "anyoneCanAddSelf": false, # Whether anyone can invite themselves to the event. Optional. The default is False.
+          "reminders": { # Information about the event's reminders for the authenticated user.
+            "overrides": [ # If the event doesn't use the default reminders, this lists the reminders specific to the event, or, if not set, indicates that no reminders are set for this event.
+              {
+                "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger.
+                "method": "A String", # The method used by this reminder. Possible values are:
+                    # - "email" - Reminders are sent via email.
+                    # - "sms" - Reminders are sent via SMS.
+                    # - "popup" - Reminders are sent via a UI popup.
+              },
+            ],
+            "useDefault": True or False, # Whether the default reminders of the calendar apply to the event.
+          },
+          "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"). Optional. The default is the time zone of the calendar.
+            "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.
+          "transparency": "opaque", # Whether the event blocks time on the calendar. Optional. Possible values are:
+              # - "opaque" - The event blocks time on the calendar. This is the default value.
+              # - "transparent" - The event does not block time on the calendar.
+          "privateCopy": false, # Whether this is a private event copy where changes are not shared with other copies on other calendars. Optional. Immutable. The default is False.
+        },
+    ],
+    "updated": "A String", # Last modification time of the calendar (as a RFC 3339 timestamp). Read-only.
+    "summary": "A String", # Title of the calendar. Read-only.
+    "etag": "A String", # ETag of the collection.
+    "timeZone": "A String", # The time zone of the calendar. Read-only.
+    "nextSyncToken": "A String", # Token used at a later point in time to retrieve only the entries that have changed since this result was returned. Omitted if further results are available, in which case nextPageToken is provided.
+    "accessRole": "A String", # The user's access role for this calendar. Read-only. Possible values are:
+        # - "none" - The user has no access.
+        # - "freeBusyReader" - The user has read access to free/busy information.
+        # - "reader" - The user has read access to the calendar. Private events will appear to users with reader access, but event details will be hidden.
+        # - "writer" - The user has read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible.
+        # - "owner" - The user has ownership of the calendar. This role has all of the permissions of the writer role with the additional ability to see and manipulate ACLs.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="instances_next">instances_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">list(calendarId, orderBy=None, showHiddenInvitations=None, timeMin=None, privateExtendedProperty=None, pageToken=None, updatedMin=None, singleEvents=None, alwaysIncludeEmail=None, showDeleted=None, sharedExtendedProperty=None, maxAttendees=None, syncToken=None, iCalUID=None, maxResults=None, timeMax=None, q=None, timeZone=None)</code>
+  <pre>Returns events on the specified calendar.
+
+Args:
+  calendarId: string, Calendar identifier. (required)
+  orderBy: string, The order of the events returned in the result. Optional. The default is an unspecified, stable order.
+    Allowed values
+      startTime - Order by the start date/time (ascending). This is only available when querying single events (i.e. the parameter "singleEvents" is True)
+      updated - Order by last modification time (ascending).
+  showHiddenInvitations: boolean, Whether to include hidden invitations in the result. Optional. The default is False.
+  timeMin: string, Lower bound (inclusive) for an event's end time to filter by. Optional. The default is not to filter by end time.
+  privateExtendedProperty: string, Extended properties constraint specified as propertyName=value. Matches only private properties. This parameter might be repeated multiple times to return events that match all given constraints. (repeated)
+  pageToken: string, Token specifying which result page to return. Optional.
+  updatedMin: string, Lower bound for an event's last modification time (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by last modification time.
+  singleEvents: boolean, Whether to expand recurring events into instances and only return single one-off events and instances of recurring events, but not the underlying recurring events themselves. Optional. The default is False.
+  alwaysIncludeEmail: boolean, Whether to always include a value in the "email" field for the organizer, creator and attendees, even if no real email is available (i.e. a generated, non-working value will be provided). The use of this option is discouraged and should only be used by clients which cannot handle the absence of an email address value in the mentioned places. Optional. The default is False.
+  showDeleted: boolean, Whether to include deleted events (with 'status' equals 'cancelled') in the result. Cancelled instances of recurring events (but not the underlying recurring event) will still be included if 'showDeleted' and 'singleEvents' are both False. If 'showDeleted' and 'singleEvents' are both True, only single instances of deleted events (but not the underlying recurring events) are returned. Optional. The default is False.
+  sharedExtendedProperty: string, Extended properties constraint specified as propertyName=value. Matches only shared properties. This parameter might be repeated multiple times to return events that match all given constraints. (repeated)
+  maxAttendees: integer, The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.
+  syncToken: string, Token obtained from the 'nextSyncToken' field returned on the last result page of the previous method's call. It makes the result of this call contain only entries that have changed since the last call. Optional. The default is to return all entries.
+  iCalUID: string, Specifies iCalendar UID (iCalUID) of events to be included in the response. Optional.
+  maxResults: integer, Maximum number of events returned on one result page. Optional.
+  timeMax: string, Upper bound (exclusive) for an event's start time to filter by. Optional. The default is not to filter by start time.
+  q: string, Free text search terms to find events that match these terms in any field, except for extended properties. Optional.
+  timeZone: string, Time zone used in the response. Optional. The default is the time zone of the calendar.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Token used to access the next page of this result. Omitted if no further results are available.
+    "kind": "calendar#events", # Type of the collection ("calendar#events").
+    "defaultReminders": [ # The default reminders on the calendar for the authenticated user. These reminders apply to all events on this calendar that do not explicitly override them (i.e. do not have 'reminders.useDefault' set to 'true').
+      {
+        "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger.
+        "method": "A String", # The method used by this reminder. Possible values are:
+            # - "email" - Reminders are sent via email.
+            # - "sms" - Reminders are sent via SMS.
+            # - "popup" - Reminders are sent via a UI popup.
+      },
+    ],
+    "description": "A String", # Description of the calendar. Read-only.
+    "items": [ # List of events on the calendar.
+      {
+          "creator": { # The creator of the event. Read-only.
+            "self": false, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
+            "displayName": "A String", # The creator's name, if available.
+            "email": "A String", # The creator's email address, if available.
+            "id": "A String", # The creator's Profile ID, if available.
+          },
+          "organizer": { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in 'attendees' with the 'organizer' field set to True. To change the organizer, use the "move" operation. Read-only, except when importing an event.
+            "self": false, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
+            "displayName": "A String", # The organizer's name, if available.
+            "email": "A String", # The organizer's email address, if available.
+            "id": "A String", # The organizer's Profile ID, if available.
+          },
+          "summary": "A String", # Title of the event.
+          "id": "A String", # Identifier of the event. When creating new single or recurring events, you can specify their IDs. Provided IDs must follow these rules:
+              # - characters allowed in the ID are those used in base32hex encoding, i.e. lowercase letters a-v and digits 0-9, see section 3.1.2 in RFC2938
+              # - the length of the ID must be between 5 and 1024 characters
+              # - the ID must be unique per calendar  Due to the globally distributed nature of the system, we cannot guarantee that ID collisions will be detected at event creation time. To minimize the risk of collisions we recommend using an established UUID algorithm such as one described in RFC4122.
+          "hangoutLink": "A String", # An absolute link to the Google+ hangout associated with this event. Read-only.
+          "attendees": [ # The attendees of the event.
+            {
+              "comment": "A String", # The attendee's response comment. Optional.
+              "displayName": "A String", # The attendee's name, if available. Optional.
+              "responseStatus": "A String", # The attendee's response status. Possible values are:
+                  # - "needsAction" - The attendee has not responded to the invitation.
+                  # - "declined" - The attendee has declined the invitation.
+                  # - "tentative" - The attendee has tentatively accepted the invitation.
+                  # - "accepted" - The attendee has accepted the invitation.
+              "self": True or False, # Whether this entry represents the calendar on which this copy of the event appears. Read-only. The default is False.
+              "id": "A String", # The attendee's Profile ID, if available.
+              "additionalGuests": 42, # Number of additional guests. Optional. The default is 0.
+              "resource": True or False, # Whether the attendee is a resource. Read-only. The default is False.
+              "organizer": True or False, # Whether the attendee is the organizer of the event. Read-only. The default is False.
+              "optional": True or False, # Whether this is an optional attendee. Optional. The default is False.
+              "email": "A String", # The attendee's email address, if available. This field must be present when adding an attendee.
+            },
+          ],
+          "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"). Optional. The default is the time zone of the calendar.
+            "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.
+          "recurrence": [ # List of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event. This field is omitted for single events or instances of recurring events.
+            "A String",
+          ],
+          "source": { # Source of an event from which it was created; for example a web page, an email message or any document identifiable by an URL using HTTP/HTTPS protocol. Accessible only by the creator of the event.
+            "url": "A String", # URL of the source pointing to a resource. URL's protocol must be HTTP or HTTPS.
+            "title": "A String", # Title of the source; for example a title of a web page or an email subject.
+          },
+          "etag": "A String", # ETag of the resource.
+          "location": "A String", # Geographic location of the event as free-form text. Optional.
+          "recurringEventId": "A String", # For an instance of a recurring event, this is the event ID of the recurring event itself. Immutable.
+          "gadget": { # A gadget that extends this event.
+            "preferences": { # Preferences.
+              "a_key": "A String", # The preference name and corresponding value.
+            },
+            "title": "A String", # The gadget's title.
+            "height": 42, # The gadget's height in pixels. Optional.
+            "width": 42, # The gadget's width in pixels. Optional.
+            "link": "A String", # The gadget's URL.
+            "type": "A String", # The gadget's type.
+            "display": "A String", # The gadget's display mode. Optional. Possible values are:
+                # - "icon" - The gadget displays next to the event's title in the calendar view.
+                # - "chip" - The gadget displays when the event is clicked.
+            "iconLink": "A String", # The gadget's icon URL.
+          },
+          "status": "A String", # Status of the event. Optional. Possible values are:
+              # - "confirmed" - The event is confirmed. This is the default status.
+              # - "tentative" - The event is tentatively confirmed.
+              # - "cancelled" - The event is cancelled.
+          "updated": "A String", # Last modification time of the event (as a RFC 3339 timestamp). Read-only.
+          "description": "A String", # Description of the event. Optional.
+          "iCalUID": "A String", # Event ID in the iCalendar format.
+          "extendedProperties": { # Extended properties of the event.
+            "shared": { # Properties that are shared between copies of the event on other attendees' calendars.
+              "a_key": "A String", # The name of the shared property and the corresponding value.
+            },
+            "private": { # Properties that are private to the copy of the event that appears on this calendar.
+              "a_key": "A String", # The name of the private property and the corresponding value.
+            },
+          },
+          "endTimeUnspecified": false, # Whether the end time is actually unspecified. An end time is still provided for compatibility reasons, even if this attribute is set to True. The default is False.
+          "sequence": 42, # Sequence number as per iCalendar.
+          "visibility": "default", # Visibility of the event. Optional. Possible values are:
+              # - "default" - Uses the default visibility for events on the calendar. This is the default value.
+              # - "public" - The event is public and event details are visible to all readers of the calendar.
+              # - "private" - The event is private and only event attendees may view event details.
+              # - "confidential" - The event is private. This value is provided for compatibility reasons.
+          "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"). Optional. The default is the time zone of the calendar.
+            "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.
+          "kind": "calendar#event", # Type of the resource ("calendar#event").
+          "locked": false, # Whether this is a locked event copy where no changes can be made to the main event fields "summary", "description", "location", "start", "end" or "recurrence". The default is False. Read-Only.
+          "created": "A String", # Creation time of the event (as a RFC 3339 timestamp). Read-only.
+          "colorId": "A String", # The color of the event. This is an ID referring to an entry in the "event" section of the colors definition (see the "colors" endpoint). Optional.
+          "anyoneCanAddSelf": false, # Whether anyone can invite themselves to the event. Optional. The default is False.
+          "reminders": { # Information about the event's reminders for the authenticated user.
+            "overrides": [ # If the event doesn't use the default reminders, this lists the reminders specific to the event, or, if not set, indicates that no reminders are set for this event.
+              {
+                "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger.
+                "method": "A String", # The method used by this reminder. Possible values are:
+                    # - "email" - Reminders are sent via email.
+                    # - "sms" - Reminders are sent via SMS.
+                    # - "popup" - Reminders are sent via a UI popup.
+              },
+            ],
+            "useDefault": True or False, # Whether the default reminders of the calendar apply to the event.
+          },
+          "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"). Optional. The default is the time zone of the calendar.
+            "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.
+          "transparency": "opaque", # Whether the event blocks time on the calendar. Optional. Possible values are:
+              # - "opaque" - The event blocks time on the calendar. This is the default value.
+              # - "transparent" - The event does not block time on the calendar.
+          "privateCopy": false, # Whether this is a private event copy where changes are not shared with other copies on other calendars. Optional. Immutable. The default is False.
+        },
+    ],
+    "updated": "A String", # Last modification time of the calendar (as a RFC 3339 timestamp). Read-only.
+    "summary": "A String", # Title of the calendar. Read-only.
+    "etag": "A String", # ETag of the collection.
+    "timeZone": "A String", # The time zone of the calendar. Read-only.
+    "nextSyncToken": "A String", # Token used at a later point in time to retrieve only the entries that have changed since this result was returned. Omitted if further results are available, in which case nextPageToken is provided.
+    "accessRole": "A String", # The user's access role for this calendar. Read-only. Possible values are:
+        # - "none" - The user has no access.
+        # - "freeBusyReader" - The user has read access to free/busy information.
+        # - "reader" - The user has read access to the calendar. Private events will appear to users with reader access, but event details will be hidden.
+        # - "writer" - The user has read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible.
+        # - "owner" - The user has ownership of the calendar. This role has all of the permissions of the writer role with the additional ability to see and manipulate ACLs.
+  }</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="move">move(calendarId, eventId, destination, sendNotifications=None)</code>
+  <pre>Moves an event to another calendar, i.e. changes an event's organizer.
+
+Args:
+  calendarId: string, Calendar identifier of the source calendar where the event currently is on. (required)
+  eventId: string, Event identifier. (required)
+  destination: string, Calendar identifier of the target calendar where the event is to be moved to. (required)
+  sendNotifications: boolean, Whether to send notifications about the change of the event's organizer. Optional. The default is False.
+
+Returns:
+  An object of the form:
+
+    {
+      "creator": { # The creator of the event. Read-only.
+        "self": false, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
+        "displayName": "A String", # The creator's name, if available.
+        "email": "A String", # The creator's email address, if available.
+        "id": "A String", # The creator's Profile ID, if available.
+      },
+      "organizer": { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in 'attendees' with the 'organizer' field set to True. To change the organizer, use the "move" operation. Read-only, except when importing an event.
+        "self": false, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
+        "displayName": "A String", # The organizer's name, if available.
+        "email": "A String", # The organizer's email address, if available.
+        "id": "A String", # The organizer's Profile ID, if available.
+      },
+      "summary": "A String", # Title of the event.
+      "id": "A String", # Identifier of the event. When creating new single or recurring events, you can specify their IDs. Provided IDs must follow these rules:
+          # - characters allowed in the ID are those used in base32hex encoding, i.e. lowercase letters a-v and digits 0-9, see section 3.1.2 in RFC2938
+          # - the length of the ID must be between 5 and 1024 characters
+          # - the ID must be unique per calendar  Due to the globally distributed nature of the system, we cannot guarantee that ID collisions will be detected at event creation time. To minimize the risk of collisions we recommend using an established UUID algorithm such as one described in RFC4122.
+      "hangoutLink": "A String", # An absolute link to the Google+ hangout associated with this event. Read-only.
+      "attendees": [ # The attendees of the event.
+        {
+          "comment": "A String", # The attendee's response comment. Optional.
+          "displayName": "A String", # The attendee's name, if available. Optional.
+          "responseStatus": "A String", # The attendee's response status. Possible values are:
+              # - "needsAction" - The attendee has not responded to the invitation.
+              # - "declined" - The attendee has declined the invitation.
+              # - "tentative" - The attendee has tentatively accepted the invitation.
+              # - "accepted" - The attendee has accepted the invitation.
+          "self": True or False, # Whether this entry represents the calendar on which this copy of the event appears. Read-only. The default is False.
+          "id": "A String", # The attendee's Profile ID, if available.
+          "additionalGuests": 42, # Number of additional guests. Optional. The default is 0.
+          "resource": True or False, # Whether the attendee is a resource. Read-only. The default is False.
+          "organizer": True or False, # Whether the attendee is the organizer of the event. Read-only. The default is False.
+          "optional": True or False, # Whether this is an optional attendee. Optional. The default is False.
+          "email": "A String", # The attendee's email address, if available. This field must be present when adding an attendee.
+        },
+      ],
+      "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"). Optional. The default is the time zone of the calendar.
+        "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.
+      "recurrence": [ # List of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event. This field is omitted for single events or instances of recurring events.
+        "A String",
+      ],
+      "source": { # Source of an event from which it was created; for example a web page, an email message or any document identifiable by an URL using HTTP/HTTPS protocol. Accessible only by the creator of the event.
+        "url": "A String", # URL of the source pointing to a resource. URL's protocol must be HTTP or HTTPS.
+        "title": "A String", # Title of the source; for example a title of a web page or an email subject.
+      },
+      "etag": "A String", # ETag of the resource.
+      "location": "A String", # Geographic location of the event as free-form text. Optional.
+      "recurringEventId": "A String", # For an instance of a recurring event, this is the event ID of the recurring event itself. Immutable.
+      "gadget": { # A gadget that extends this event.
+        "preferences": { # Preferences.
+          "a_key": "A String", # The preference name and corresponding value.
+        },
+        "title": "A String", # The gadget's title.
+        "height": 42, # The gadget's height in pixels. Optional.
+        "width": 42, # The gadget's width in pixels. Optional.
+        "link": "A String", # The gadget's URL.
+        "type": "A String", # The gadget's type.
+        "display": "A String", # The gadget's display mode. Optional. Possible values are:
+            # - "icon" - The gadget displays next to the event's title in the calendar view.
+            # - "chip" - The gadget displays when the event is clicked.
+        "iconLink": "A String", # The gadget's icon URL.
+      },
+      "status": "A String", # Status of the event. Optional. Possible values are:
+          # - "confirmed" - The event is confirmed. This is the default status.
+          # - "tentative" - The event is tentatively confirmed.
+          # - "cancelled" - The event is cancelled.
+      "updated": "A String", # Last modification time of the event (as a RFC 3339 timestamp). Read-only.
+      "description": "A String", # Description of the event. Optional.
+      "iCalUID": "A String", # Event ID in the iCalendar format.
+      "extendedProperties": { # Extended properties of the event.
+        "shared": { # Properties that are shared between copies of the event on other attendees' calendars.
+          "a_key": "A String", # The name of the shared property and the corresponding value.
+        },
+        "private": { # Properties that are private to the copy of the event that appears on this calendar.
+          "a_key": "A String", # The name of the private property and the corresponding value.
+        },
+      },
+      "endTimeUnspecified": false, # Whether the end time is actually unspecified. An end time is still provided for compatibility reasons, even if this attribute is set to True. The default is False.
+      "sequence": 42, # Sequence number as per iCalendar.
+      "visibility": "default", # Visibility of the event. Optional. Possible values are:
+          # - "default" - Uses the default visibility for events on the calendar. This is the default value.
+          # - "public" - The event is public and event details are visible to all readers of the calendar.
+          # - "private" - The event is private and only event attendees may view event details.
+          # - "confidential" - The event is private. This value is provided for compatibility reasons.
+      "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"). Optional. The default is the time zone of the calendar.
+        "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.
+      "kind": "calendar#event", # Type of the resource ("calendar#event").
+      "locked": false, # Whether this is a locked event copy where no changes can be made to the main event fields "summary", "description", "location", "start", "end" or "recurrence". The default is False. Read-Only.
+      "created": "A String", # Creation time of the event (as a RFC 3339 timestamp). Read-only.
+      "colorId": "A String", # The color of the event. This is an ID referring to an entry in the "event" section of the colors definition (see the "colors" endpoint). Optional.
+      "anyoneCanAddSelf": false, # Whether anyone can invite themselves to the event. Optional. The default is False.
+      "reminders": { # Information about the event's reminders for the authenticated user.
+        "overrides": [ # If the event doesn't use the default reminders, this lists the reminders specific to the event, or, if not set, indicates that no reminders are set for this event.
+          {
+            "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger.
+            "method": "A String", # The method used by this reminder. Possible values are:
+                # - "email" - Reminders are sent via email.
+                # - "sms" - Reminders are sent via SMS.
+                # - "popup" - Reminders are sent via a UI popup.
+          },
+        ],
+        "useDefault": True or False, # Whether the default reminders of the calendar apply to the event.
+      },
+      "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"). Optional. The default is the time zone of the calendar.
+        "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.
+      "transparency": "opaque", # Whether the event blocks time on the calendar. Optional. Possible values are:
+          # - "opaque" - The event blocks time on the calendar. This is the default value.
+          # - "transparent" - The event does not block time on the calendar.
+      "privateCopy": false, # Whether this is a private event copy where changes are not shared with other copies on other calendars. Optional. Immutable. The default is False.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(calendarId, eventId, body, sendNotifications=None, alwaysIncludeEmail=None, maxAttendees=None)</code>
+  <pre>Updates an event. This method supports patch semantics.
+
+Args:
+  calendarId: string, Calendar identifier. (required)
+  eventId: string, Event identifier. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "creator": { # The creator of the event. Read-only.
+      "self": false, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
+      "displayName": "A String", # The creator's name, if available.
+      "email": "A String", # The creator's email address, if available.
+      "id": "A String", # The creator's Profile ID, if available.
+    },
+    "organizer": { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in 'attendees' with the 'organizer' field set to True. To change the organizer, use the "move" operation. Read-only, except when importing an event.
+      "self": false, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
+      "displayName": "A String", # The organizer's name, if available.
+      "email": "A String", # The organizer's email address, if available.
+      "id": "A String", # The organizer's Profile ID, if available.
+    },
+    "summary": "A String", # Title of the event.
+    "id": "A String", # Identifier of the event. When creating new single or recurring events, you can specify their IDs. Provided IDs must follow these rules:
+        # - characters allowed in the ID are those used in base32hex encoding, i.e. lowercase letters a-v and digits 0-9, see section 3.1.2 in RFC2938
+        # - the length of the ID must be between 5 and 1024 characters
+        # - the ID must be unique per calendar  Due to the globally distributed nature of the system, we cannot guarantee that ID collisions will be detected at event creation time. To minimize the risk of collisions we recommend using an established UUID algorithm such as one described in RFC4122.
+    "hangoutLink": "A String", # An absolute link to the Google+ hangout associated with this event. Read-only.
+    "attendees": [ # The attendees of the event.
+      {
+        "comment": "A String", # The attendee's response comment. Optional.
+        "displayName": "A String", # The attendee's name, if available. Optional.
+        "responseStatus": "A String", # The attendee's response status. Possible values are:
+            # - "needsAction" - The attendee has not responded to the invitation.
+            # - "declined" - The attendee has declined the invitation.
+            # - "tentative" - The attendee has tentatively accepted the invitation.
+            # - "accepted" - The attendee has accepted the invitation.
+        "self": True or False, # Whether this entry represents the calendar on which this copy of the event appears. Read-only. The default is False.
+        "id": "A String", # The attendee's Profile ID, if available.
+        "additionalGuests": 42, # Number of additional guests. Optional. The default is 0.
+        "resource": True or False, # Whether the attendee is a resource. Read-only. The default is False.
+        "organizer": True or False, # Whether the attendee is the organizer of the event. Read-only. The default is False.
+        "optional": True or False, # Whether this is an optional attendee. Optional. The default is False.
+        "email": "A String", # The attendee's email address, if available. This field must be present when adding an attendee.
+      },
+    ],
+    "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"). Optional. The default is the time zone of the calendar.
+      "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.
+    "recurrence": [ # List of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event. This field is omitted for single events or instances of recurring events.
+      "A String",
+    ],
+    "source": { # Source of an event from which it was created; for example a web page, an email message or any document identifiable by an URL using HTTP/HTTPS protocol. Accessible only by the creator of the event.
+      "url": "A String", # URL of the source pointing to a resource. URL's protocol must be HTTP or HTTPS.
+      "title": "A String", # Title of the source; for example a title of a web page or an email subject.
+    },
+    "etag": "A String", # ETag of the resource.
+    "location": "A String", # Geographic location of the event as free-form text. Optional.
+    "recurringEventId": "A String", # For an instance of a recurring event, this is the event ID of the recurring event itself. Immutable.
+    "gadget": { # A gadget that extends this event.
+      "preferences": { # Preferences.
+        "a_key": "A String", # The preference name and corresponding value.
+      },
+      "title": "A String", # The gadget's title.
+      "height": 42, # The gadget's height in pixels. Optional.
+      "width": 42, # The gadget's width in pixels. Optional.
+      "link": "A String", # The gadget's URL.
+      "type": "A String", # The gadget's type.
+      "display": "A String", # The gadget's display mode. Optional. Possible values are:
+          # - "icon" - The gadget displays next to the event's title in the calendar view.
+          # - "chip" - The gadget displays when the event is clicked.
+      "iconLink": "A String", # The gadget's icon URL.
+    },
+    "status": "A String", # Status of the event. Optional. Possible values are:
+        # - "confirmed" - The event is confirmed. This is the default status.
+        # - "tentative" - The event is tentatively confirmed.
+        # - "cancelled" - The event is cancelled.
+    "updated": "A String", # Last modification time of the event (as a RFC 3339 timestamp). Read-only.
+    "description": "A String", # Description of the event. Optional.
+    "iCalUID": "A String", # Event ID in the iCalendar format.
+    "extendedProperties": { # Extended properties of the event.
+      "shared": { # Properties that are shared between copies of the event on other attendees' calendars.
+        "a_key": "A String", # The name of the shared property and the corresponding value.
+      },
+      "private": { # Properties that are private to the copy of the event that appears on this calendar.
+        "a_key": "A String", # The name of the private property and the corresponding value.
+      },
+    },
+    "endTimeUnspecified": false, # Whether the end time is actually unspecified. An end time is still provided for compatibility reasons, even if this attribute is set to True. The default is False.
+    "sequence": 42, # Sequence number as per iCalendar.
+    "visibility": "default", # Visibility of the event. Optional. Possible values are:
+        # - "default" - Uses the default visibility for events on the calendar. This is the default value.
+        # - "public" - The event is public and event details are visible to all readers of the calendar.
+        # - "private" - The event is private and only event attendees may view event details.
+        # - "confidential" - The event is private. This value is provided for compatibility reasons.
+    "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"). Optional. The default is the time zone of the calendar.
+      "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.
+    "kind": "calendar#event", # Type of the resource ("calendar#event").
+    "locked": false, # Whether this is a locked event copy where no changes can be made to the main event fields "summary", "description", "location", "start", "end" or "recurrence". The default is False. Read-Only.
+    "created": "A String", # Creation time of the event (as a RFC 3339 timestamp). Read-only.
+    "colorId": "A String", # The color of the event. This is an ID referring to an entry in the "event" section of the colors definition (see the "colors" endpoint). Optional.
+    "anyoneCanAddSelf": false, # Whether anyone can invite themselves to the event. Optional. The default is False.
+    "reminders": { # Information about the event's reminders for the authenticated user.
+      "overrides": [ # If the event doesn't use the default reminders, this lists the reminders specific to the event, or, if not set, indicates that no reminders are set for this event.
+        {
+          "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger.
+          "method": "A String", # The method used by this reminder. Possible values are:
+              # - "email" - Reminders are sent via email.
+              # - "sms" - Reminders are sent via SMS.
+              # - "popup" - Reminders are sent via a UI popup.
+        },
+      ],
+      "useDefault": True or False, # Whether the default reminders of the calendar apply to the event.
+    },
+    "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"). Optional. The default is the time zone of the calendar.
+      "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.
+    "transparency": "opaque", # Whether the event blocks time on the calendar. Optional. Possible values are:
+        # - "opaque" - The event blocks time on the calendar. This is the default value.
+        # - "transparent" - The event does not block time on the calendar.
+    "privateCopy": false, # Whether this is a private event copy where changes are not shared with other copies on other calendars. Optional. Immutable. The default is False.
+  }
+
+  sendNotifications: boolean, Whether to send notifications about the event update (e.g. attendee's responses, title changes, etc.). Optional. The default is False.
+  alwaysIncludeEmail: boolean, Whether to always include a value in the "email" field for the organizer, creator and attendees, even if no real email is available (i.e. a generated, non-working value will be provided). The use of this option is discouraged and should only be used by clients which cannot handle the absence of an email address value in the mentioned places. Optional. The default is False.
+  maxAttendees: integer, The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.
+
+Returns:
+  An object of the form:
+
+    {
+      "creator": { # The creator of the event. Read-only.
+        "self": false, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
+        "displayName": "A String", # The creator's name, if available.
+        "email": "A String", # The creator's email address, if available.
+        "id": "A String", # The creator's Profile ID, if available.
+      },
+      "organizer": { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in 'attendees' with the 'organizer' field set to True. To change the organizer, use the "move" operation. Read-only, except when importing an event.
+        "self": false, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
+        "displayName": "A String", # The organizer's name, if available.
+        "email": "A String", # The organizer's email address, if available.
+        "id": "A String", # The organizer's Profile ID, if available.
+      },
+      "summary": "A String", # Title of the event.
+      "id": "A String", # Identifier of the event. When creating new single or recurring events, you can specify their IDs. Provided IDs must follow these rules:
+          # - characters allowed in the ID are those used in base32hex encoding, i.e. lowercase letters a-v and digits 0-9, see section 3.1.2 in RFC2938
+          # - the length of the ID must be between 5 and 1024 characters
+          # - the ID must be unique per calendar  Due to the globally distributed nature of the system, we cannot guarantee that ID collisions will be detected at event creation time. To minimize the risk of collisions we recommend using an established UUID algorithm such as one described in RFC4122.
+      "hangoutLink": "A String", # An absolute link to the Google+ hangout associated with this event. Read-only.
+      "attendees": [ # The attendees of the event.
+        {
+          "comment": "A String", # The attendee's response comment. Optional.
+          "displayName": "A String", # The attendee's name, if available. Optional.
+          "responseStatus": "A String", # The attendee's response status. Possible values are:
+              # - "needsAction" - The attendee has not responded to the invitation.
+              # - "declined" - The attendee has declined the invitation.
+              # - "tentative" - The attendee has tentatively accepted the invitation.
+              # - "accepted" - The attendee has accepted the invitation.
+          "self": True or False, # Whether this entry represents the calendar on which this copy of the event appears. Read-only. The default is False.
+          "id": "A String", # The attendee's Profile ID, if available.
+          "additionalGuests": 42, # Number of additional guests. Optional. The default is 0.
+          "resource": True or False, # Whether the attendee is a resource. Read-only. The default is False.
+          "organizer": True or False, # Whether the attendee is the organizer of the event. Read-only. The default is False.
+          "optional": True or False, # Whether this is an optional attendee. Optional. The default is False.
+          "email": "A String", # The attendee's email address, if available. This field must be present when adding an attendee.
+        },
+      ],
+      "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"). Optional. The default is the time zone of the calendar.
+        "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.
+      "recurrence": [ # List of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event. This field is omitted for single events or instances of recurring events.
+        "A String",
+      ],
+      "source": { # Source of an event from which it was created; for example a web page, an email message or any document identifiable by an URL using HTTP/HTTPS protocol. Accessible only by the creator of the event.
+        "url": "A String", # URL of the source pointing to a resource. URL's protocol must be HTTP or HTTPS.
+        "title": "A String", # Title of the source; for example a title of a web page or an email subject.
+      },
+      "etag": "A String", # ETag of the resource.
+      "location": "A String", # Geographic location of the event as free-form text. Optional.
+      "recurringEventId": "A String", # For an instance of a recurring event, this is the event ID of the recurring event itself. Immutable.
+      "gadget": { # A gadget that extends this event.
+        "preferences": { # Preferences.
+          "a_key": "A String", # The preference name and corresponding value.
+        },
+        "title": "A String", # The gadget's title.
+        "height": 42, # The gadget's height in pixels. Optional.
+        "width": 42, # The gadget's width in pixels. Optional.
+        "link": "A String", # The gadget's URL.
+        "type": "A String", # The gadget's type.
+        "display": "A String", # The gadget's display mode. Optional. Possible values are:
+            # - "icon" - The gadget displays next to the event's title in the calendar view.
+            # - "chip" - The gadget displays when the event is clicked.
+        "iconLink": "A String", # The gadget's icon URL.
+      },
+      "status": "A String", # Status of the event. Optional. Possible values are:
+          # - "confirmed" - The event is confirmed. This is the default status.
+          # - "tentative" - The event is tentatively confirmed.
+          # - "cancelled" - The event is cancelled.
+      "updated": "A String", # Last modification time of the event (as a RFC 3339 timestamp). Read-only.
+      "description": "A String", # Description of the event. Optional.
+      "iCalUID": "A String", # Event ID in the iCalendar format.
+      "extendedProperties": { # Extended properties of the event.
+        "shared": { # Properties that are shared between copies of the event on other attendees' calendars.
+          "a_key": "A String", # The name of the shared property and the corresponding value.
+        },
+        "private": { # Properties that are private to the copy of the event that appears on this calendar.
+          "a_key": "A String", # The name of the private property and the corresponding value.
+        },
+      },
+      "endTimeUnspecified": false, # Whether the end time is actually unspecified. An end time is still provided for compatibility reasons, even if this attribute is set to True. The default is False.
+      "sequence": 42, # Sequence number as per iCalendar.
+      "visibility": "default", # Visibility of the event. Optional. Possible values are:
+          # - "default" - Uses the default visibility for events on the calendar. This is the default value.
+          # - "public" - The event is public and event details are visible to all readers of the calendar.
+          # - "private" - The event is private and only event attendees may view event details.
+          # - "confidential" - The event is private. This value is provided for compatibility reasons.
+      "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"). Optional. The default is the time zone of the calendar.
+        "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.
+      "kind": "calendar#event", # Type of the resource ("calendar#event").
+      "locked": false, # Whether this is a locked event copy where no changes can be made to the main event fields "summary", "description", "location", "start", "end" or "recurrence". The default is False. Read-Only.
+      "created": "A String", # Creation time of the event (as a RFC 3339 timestamp). Read-only.
+      "colorId": "A String", # The color of the event. This is an ID referring to an entry in the "event" section of the colors definition (see the "colors" endpoint). Optional.
+      "anyoneCanAddSelf": false, # Whether anyone can invite themselves to the event. Optional. The default is False.
+      "reminders": { # Information about the event's reminders for the authenticated user.
+        "overrides": [ # If the event doesn't use the default reminders, this lists the reminders specific to the event, or, if not set, indicates that no reminders are set for this event.
+          {
+            "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger.
+            "method": "A String", # The method used by this reminder. Possible values are:
+                # - "email" - Reminders are sent via email.
+                # - "sms" - Reminders are sent via SMS.
+                # - "popup" - Reminders are sent via a UI popup.
+          },
+        ],
+        "useDefault": True or False, # Whether the default reminders of the calendar apply to the event.
+      },
+      "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"). Optional. The default is the time zone of the calendar.
+        "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.
+      "transparency": "opaque", # Whether the event blocks time on the calendar. Optional. Possible values are:
+          # - "opaque" - The event blocks time on the calendar. This is the default value.
+          # - "transparent" - The event does not block time on the calendar.
+      "privateCopy": false, # Whether this is a private event copy where changes are not shared with other copies on other calendars. Optional. Immutable. The default is False.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="quickAdd">quickAdd(calendarId, text, sendNotifications=None)</code>
+  <pre>Creates an event based on a simple text string.
+
+Args:
+  calendarId: string, Calendar identifier. (required)
+  text: string, The text describing the event to be created. (required)
+  sendNotifications: boolean, Whether to send notifications about the creation of the event. Optional. The default is False.
+
+Returns:
+  An object of the form:
+
+    {
+      "creator": { # The creator of the event. Read-only.
+        "self": false, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
+        "displayName": "A String", # The creator's name, if available.
+        "email": "A String", # The creator's email address, if available.
+        "id": "A String", # The creator's Profile ID, if available.
+      },
+      "organizer": { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in 'attendees' with the 'organizer' field set to True. To change the organizer, use the "move" operation. Read-only, except when importing an event.
+        "self": false, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
+        "displayName": "A String", # The organizer's name, if available.
+        "email": "A String", # The organizer's email address, if available.
+        "id": "A String", # The organizer's Profile ID, if available.
+      },
+      "summary": "A String", # Title of the event.
+      "id": "A String", # Identifier of the event. When creating new single or recurring events, you can specify their IDs. Provided IDs must follow these rules:
+          # - characters allowed in the ID are those used in base32hex encoding, i.e. lowercase letters a-v and digits 0-9, see section 3.1.2 in RFC2938
+          # - the length of the ID must be between 5 and 1024 characters
+          # - the ID must be unique per calendar  Due to the globally distributed nature of the system, we cannot guarantee that ID collisions will be detected at event creation time. To minimize the risk of collisions we recommend using an established UUID algorithm such as one described in RFC4122.
+      "hangoutLink": "A String", # An absolute link to the Google+ hangout associated with this event. Read-only.
+      "attendees": [ # The attendees of the event.
+        {
+          "comment": "A String", # The attendee's response comment. Optional.
+          "displayName": "A String", # The attendee's name, if available. Optional.
+          "responseStatus": "A String", # The attendee's response status. Possible values are:
+              # - "needsAction" - The attendee has not responded to the invitation.
+              # - "declined" - The attendee has declined the invitation.
+              # - "tentative" - The attendee has tentatively accepted the invitation.
+              # - "accepted" - The attendee has accepted the invitation.
+          "self": True or False, # Whether this entry represents the calendar on which this copy of the event appears. Read-only. The default is False.
+          "id": "A String", # The attendee's Profile ID, if available.
+          "additionalGuests": 42, # Number of additional guests. Optional. The default is 0.
+          "resource": True or False, # Whether the attendee is a resource. Read-only. The default is False.
+          "organizer": True or False, # Whether the attendee is the organizer of the event. Read-only. The default is False.
+          "optional": True or False, # Whether this is an optional attendee. Optional. The default is False.
+          "email": "A String", # The attendee's email address, if available. This field must be present when adding an attendee.
+        },
+      ],
+      "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"). Optional. The default is the time zone of the calendar.
+        "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.
+      "recurrence": [ # List of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event. This field is omitted for single events or instances of recurring events.
+        "A String",
+      ],
+      "source": { # Source of an event from which it was created; for example a web page, an email message or any document identifiable by an URL using HTTP/HTTPS protocol. Accessible only by the creator of the event.
+        "url": "A String", # URL of the source pointing to a resource. URL's protocol must be HTTP or HTTPS.
+        "title": "A String", # Title of the source; for example a title of a web page or an email subject.
+      },
+      "etag": "A String", # ETag of the resource.
+      "location": "A String", # Geographic location of the event as free-form text. Optional.
+      "recurringEventId": "A String", # For an instance of a recurring event, this is the event ID of the recurring event itself. Immutable.
+      "gadget": { # A gadget that extends this event.
+        "preferences": { # Preferences.
+          "a_key": "A String", # The preference name and corresponding value.
+        },
+        "title": "A String", # The gadget's title.
+        "height": 42, # The gadget's height in pixels. Optional.
+        "width": 42, # The gadget's width in pixels. Optional.
+        "link": "A String", # The gadget's URL.
+        "type": "A String", # The gadget's type.
+        "display": "A String", # The gadget's display mode. Optional. Possible values are:
+            # - "icon" - The gadget displays next to the event's title in the calendar view.
+            # - "chip" - The gadget displays when the event is clicked.
+        "iconLink": "A String", # The gadget's icon URL.
+      },
+      "status": "A String", # Status of the event. Optional. Possible values are:
+          # - "confirmed" - The event is confirmed. This is the default status.
+          # - "tentative" - The event is tentatively confirmed.
+          # - "cancelled" - The event is cancelled.
+      "updated": "A String", # Last modification time of the event (as a RFC 3339 timestamp). Read-only.
+      "description": "A String", # Description of the event. Optional.
+      "iCalUID": "A String", # Event ID in the iCalendar format.
+      "extendedProperties": { # Extended properties of the event.
+        "shared": { # Properties that are shared between copies of the event on other attendees' calendars.
+          "a_key": "A String", # The name of the shared property and the corresponding value.
+        },
+        "private": { # Properties that are private to the copy of the event that appears on this calendar.
+          "a_key": "A String", # The name of the private property and the corresponding value.
+        },
+      },
+      "endTimeUnspecified": false, # Whether the end time is actually unspecified. An end time is still provided for compatibility reasons, even if this attribute is set to True. The default is False.
+      "sequence": 42, # Sequence number as per iCalendar.
+      "visibility": "default", # Visibility of the event. Optional. Possible values are:
+          # - "default" - Uses the default visibility for events on the calendar. This is the default value.
+          # - "public" - The event is public and event details are visible to all readers of the calendar.
+          # - "private" - The event is private and only event attendees may view event details.
+          # - "confidential" - The event is private. This value is provided for compatibility reasons.
+      "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"). Optional. The default is the time zone of the calendar.
+        "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.
+      "kind": "calendar#event", # Type of the resource ("calendar#event").
+      "locked": false, # Whether this is a locked event copy where no changes can be made to the main event fields "summary", "description", "location", "start", "end" or "recurrence". The default is False. Read-Only.
+      "created": "A String", # Creation time of the event (as a RFC 3339 timestamp). Read-only.
+      "colorId": "A String", # The color of the event. This is an ID referring to an entry in the "event" section of the colors definition (see the "colors" endpoint). Optional.
+      "anyoneCanAddSelf": false, # Whether anyone can invite themselves to the event. Optional. The default is False.
+      "reminders": { # Information about the event's reminders for the authenticated user.
+        "overrides": [ # If the event doesn't use the default reminders, this lists the reminders specific to the event, or, if not set, indicates that no reminders are set for this event.
+          {
+            "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger.
+            "method": "A String", # The method used by this reminder. Possible values are:
+                # - "email" - Reminders are sent via email.
+                # - "sms" - Reminders are sent via SMS.
+                # - "popup" - Reminders are sent via a UI popup.
+          },
+        ],
+        "useDefault": True or False, # Whether the default reminders of the calendar apply to the event.
+      },
+      "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"). Optional. The default is the time zone of the calendar.
+        "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.
+      "transparency": "opaque", # Whether the event blocks time on the calendar. Optional. Possible values are:
+          # - "opaque" - The event blocks time on the calendar. This is the default value.
+          # - "transparent" - The event does not block time on the calendar.
+      "privateCopy": false, # Whether this is a private event copy where changes are not shared with other copies on other calendars. Optional. Immutable. The default is False.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(calendarId, eventId, body, sendNotifications=None, alwaysIncludeEmail=None, maxAttendees=None)</code>
+  <pre>Updates an event.
+
+Args:
+  calendarId: string, Calendar identifier. (required)
+  eventId: string, Event identifier. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "creator": { # The creator of the event. Read-only.
+      "self": false, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
+      "displayName": "A String", # The creator's name, if available.
+      "email": "A String", # The creator's email address, if available.
+      "id": "A String", # The creator's Profile ID, if available.
+    },
+    "organizer": { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in 'attendees' with the 'organizer' field set to True. To change the organizer, use the "move" operation. Read-only, except when importing an event.
+      "self": false, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
+      "displayName": "A String", # The organizer's name, if available.
+      "email": "A String", # The organizer's email address, if available.
+      "id": "A String", # The organizer's Profile ID, if available.
+    },
+    "summary": "A String", # Title of the event.
+    "id": "A String", # Identifier of the event. When creating new single or recurring events, you can specify their IDs. Provided IDs must follow these rules:
+        # - characters allowed in the ID are those used in base32hex encoding, i.e. lowercase letters a-v and digits 0-9, see section 3.1.2 in RFC2938
+        # - the length of the ID must be between 5 and 1024 characters
+        # - the ID must be unique per calendar  Due to the globally distributed nature of the system, we cannot guarantee that ID collisions will be detected at event creation time. To minimize the risk of collisions we recommend using an established UUID algorithm such as one described in RFC4122.
+    "hangoutLink": "A String", # An absolute link to the Google+ hangout associated with this event. Read-only.
+    "attendees": [ # The attendees of the event.
+      {
+        "comment": "A String", # The attendee's response comment. Optional.
+        "displayName": "A String", # The attendee's name, if available. Optional.
+        "responseStatus": "A String", # The attendee's response status. Possible values are:
+            # - "needsAction" - The attendee has not responded to the invitation.
+            # - "declined" - The attendee has declined the invitation.
+            # - "tentative" - The attendee has tentatively accepted the invitation.
+            # - "accepted" - The attendee has accepted the invitation.
+        "self": True or False, # Whether this entry represents the calendar on which this copy of the event appears. Read-only. The default is False.
+        "id": "A String", # The attendee's Profile ID, if available.
+        "additionalGuests": 42, # Number of additional guests. Optional. The default is 0.
+        "resource": True or False, # Whether the attendee is a resource. Read-only. The default is False.
+        "organizer": True or False, # Whether the attendee is the organizer of the event. Read-only. The default is False.
+        "optional": True or False, # Whether this is an optional attendee. Optional. The default is False.
+        "email": "A String", # The attendee's email address, if available. This field must be present when adding an attendee.
+      },
+    ],
+    "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"). Optional. The default is the time zone of the calendar.
+      "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.
+    "recurrence": [ # List of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event. This field is omitted for single events or instances of recurring events.
+      "A String",
+    ],
+    "source": { # Source of an event from which it was created; for example a web page, an email message or any document identifiable by an URL using HTTP/HTTPS protocol. Accessible only by the creator of the event.
+      "url": "A String", # URL of the source pointing to a resource. URL's protocol must be HTTP or HTTPS.
+      "title": "A String", # Title of the source; for example a title of a web page or an email subject.
+    },
+    "etag": "A String", # ETag of the resource.
+    "location": "A String", # Geographic location of the event as free-form text. Optional.
+    "recurringEventId": "A String", # For an instance of a recurring event, this is the event ID of the recurring event itself. Immutable.
+    "gadget": { # A gadget that extends this event.
+      "preferences": { # Preferences.
+        "a_key": "A String", # The preference name and corresponding value.
+      },
+      "title": "A String", # The gadget's title.
+      "height": 42, # The gadget's height in pixels. Optional.
+      "width": 42, # The gadget's width in pixels. Optional.
+      "link": "A String", # The gadget's URL.
+      "type": "A String", # The gadget's type.
+      "display": "A String", # The gadget's display mode. Optional. Possible values are:
+          # - "icon" - The gadget displays next to the event's title in the calendar view.
+          # - "chip" - The gadget displays when the event is clicked.
+      "iconLink": "A String", # The gadget's icon URL.
+    },
+    "status": "A String", # Status of the event. Optional. Possible values are:
+        # - "confirmed" - The event is confirmed. This is the default status.
+        # - "tentative" - The event is tentatively confirmed.
+        # - "cancelled" - The event is cancelled.
+    "updated": "A String", # Last modification time of the event (as a RFC 3339 timestamp). Read-only.
+    "description": "A String", # Description of the event. Optional.
+    "iCalUID": "A String", # Event ID in the iCalendar format.
+    "extendedProperties": { # Extended properties of the event.
+      "shared": { # Properties that are shared between copies of the event on other attendees' calendars.
+        "a_key": "A String", # The name of the shared property and the corresponding value.
+      },
+      "private": { # Properties that are private to the copy of the event that appears on this calendar.
+        "a_key": "A String", # The name of the private property and the corresponding value.
+      },
+    },
+    "endTimeUnspecified": false, # Whether the end time is actually unspecified. An end time is still provided for compatibility reasons, even if this attribute is set to True. The default is False.
+    "sequence": 42, # Sequence number as per iCalendar.
+    "visibility": "default", # Visibility of the event. Optional. Possible values are:
+        # - "default" - Uses the default visibility for events on the calendar. This is the default value.
+        # - "public" - The event is public and event details are visible to all readers of the calendar.
+        # - "private" - The event is private and only event attendees may view event details.
+        # - "confidential" - The event is private. This value is provided for compatibility reasons.
+    "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"). Optional. The default is the time zone of the calendar.
+      "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.
+    "kind": "calendar#event", # Type of the resource ("calendar#event").
+    "locked": false, # Whether this is a locked event copy where no changes can be made to the main event fields "summary", "description", "location", "start", "end" or "recurrence". The default is False. Read-Only.
+    "created": "A String", # Creation time of the event (as a RFC 3339 timestamp). Read-only.
+    "colorId": "A String", # The color of the event. This is an ID referring to an entry in the "event" section of the colors definition (see the "colors" endpoint). Optional.
+    "anyoneCanAddSelf": false, # Whether anyone can invite themselves to the event. Optional. The default is False.
+    "reminders": { # Information about the event's reminders for the authenticated user.
+      "overrides": [ # If the event doesn't use the default reminders, this lists the reminders specific to the event, or, if not set, indicates that no reminders are set for this event.
+        {
+          "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger.
+          "method": "A String", # The method used by this reminder. Possible values are:
+              # - "email" - Reminders are sent via email.
+              # - "sms" - Reminders are sent via SMS.
+              # - "popup" - Reminders are sent via a UI popup.
+        },
+      ],
+      "useDefault": True or False, # Whether the default reminders of the calendar apply to the event.
+    },
+    "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"). Optional. The default is the time zone of the calendar.
+      "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.
+    "transparency": "opaque", # Whether the event blocks time on the calendar. Optional. Possible values are:
+        # - "opaque" - The event blocks time on the calendar. This is the default value.
+        # - "transparent" - The event does not block time on the calendar.
+    "privateCopy": false, # Whether this is a private event copy where changes are not shared with other copies on other calendars. Optional. Immutable. The default is False.
+  }
+
+  sendNotifications: boolean, Whether to send notifications about the event update (e.g. attendee's responses, title changes, etc.). Optional. The default is False.
+  alwaysIncludeEmail: boolean, Whether to always include a value in the "email" field for the organizer, creator and attendees, even if no real email is available (i.e. a generated, non-working value will be provided). The use of this option is discouraged and should only be used by clients which cannot handle the absence of an email address value in the mentioned places. Optional. The default is False.
+  maxAttendees: integer, The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.
+
+Returns:
+  An object of the form:
+
+    {
+      "creator": { # The creator of the event. Read-only.
+        "self": false, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
+        "displayName": "A String", # The creator's name, if available.
+        "email": "A String", # The creator's email address, if available.
+        "id": "A String", # The creator's Profile ID, if available.
+      },
+      "organizer": { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in 'attendees' with the 'organizer' field set to True. To change the organizer, use the "move" operation. Read-only, except when importing an event.
+        "self": false, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
+        "displayName": "A String", # The organizer's name, if available.
+        "email": "A String", # The organizer's email address, if available.
+        "id": "A String", # The organizer's Profile ID, if available.
+      },
+      "summary": "A String", # Title of the event.
+      "id": "A String", # Identifier of the event. When creating new single or recurring events, you can specify their IDs. Provided IDs must follow these rules:
+          # - characters allowed in the ID are those used in base32hex encoding, i.e. lowercase letters a-v and digits 0-9, see section 3.1.2 in RFC2938
+          # - the length of the ID must be between 5 and 1024 characters
+          # - the ID must be unique per calendar  Due to the globally distributed nature of the system, we cannot guarantee that ID collisions will be detected at event creation time. To minimize the risk of collisions we recommend using an established UUID algorithm such as one described in RFC4122.
+      "hangoutLink": "A String", # An absolute link to the Google+ hangout associated with this event. Read-only.
+      "attendees": [ # The attendees of the event.
+        {
+          "comment": "A String", # The attendee's response comment. Optional.
+          "displayName": "A String", # The attendee's name, if available. Optional.
+          "responseStatus": "A String", # The attendee's response status. Possible values are:
+              # - "needsAction" - The attendee has not responded to the invitation.
+              # - "declined" - The attendee has declined the invitation.
+              # - "tentative" - The attendee has tentatively accepted the invitation.
+              # - "accepted" - The attendee has accepted the invitation.
+          "self": True or False, # Whether this entry represents the calendar on which this copy of the event appears. Read-only. The default is False.
+          "id": "A String", # The attendee's Profile ID, if available.
+          "additionalGuests": 42, # Number of additional guests. Optional. The default is 0.
+          "resource": True or False, # Whether the attendee is a resource. Read-only. The default is False.
+          "organizer": True or False, # Whether the attendee is the organizer of the event. Read-only. The default is False.
+          "optional": True or False, # Whether this is an optional attendee. Optional. The default is False.
+          "email": "A String", # The attendee's email address, if available. This field must be present when adding an attendee.
+        },
+      ],
+      "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"). Optional. The default is the time zone of the calendar.
+        "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.
+      "recurrence": [ # List of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event. This field is omitted for single events or instances of recurring events.
+        "A String",
+      ],
+      "source": { # Source of an event from which it was created; for example a web page, an email message or any document identifiable by an URL using HTTP/HTTPS protocol. Accessible only by the creator of the event.
+        "url": "A String", # URL of the source pointing to a resource. URL's protocol must be HTTP or HTTPS.
+        "title": "A String", # Title of the source; for example a title of a web page or an email subject.
+      },
+      "etag": "A String", # ETag of the resource.
+      "location": "A String", # Geographic location of the event as free-form text. Optional.
+      "recurringEventId": "A String", # For an instance of a recurring event, this is the event ID of the recurring event itself. Immutable.
+      "gadget": { # A gadget that extends this event.
+        "preferences": { # Preferences.
+          "a_key": "A String", # The preference name and corresponding value.
+        },
+        "title": "A String", # The gadget's title.
+        "height": 42, # The gadget's height in pixels. Optional.
+        "width": 42, # The gadget's width in pixels. Optional.
+        "link": "A String", # The gadget's URL.
+        "type": "A String", # The gadget's type.
+        "display": "A String", # The gadget's display mode. Optional. Possible values are:
+            # - "icon" - The gadget displays next to the event's title in the calendar view.
+            # - "chip" - The gadget displays when the event is clicked.
+        "iconLink": "A String", # The gadget's icon URL.
+      },
+      "status": "A String", # Status of the event. Optional. Possible values are:
+          # - "confirmed" - The event is confirmed. This is the default status.
+          # - "tentative" - The event is tentatively confirmed.
+          # - "cancelled" - The event is cancelled.
+      "updated": "A String", # Last modification time of the event (as a RFC 3339 timestamp). Read-only.
+      "description": "A String", # Description of the event. Optional.
+      "iCalUID": "A String", # Event ID in the iCalendar format.
+      "extendedProperties": { # Extended properties of the event.
+        "shared": { # Properties that are shared between copies of the event on other attendees' calendars.
+          "a_key": "A String", # The name of the shared property and the corresponding value.
+        },
+        "private": { # Properties that are private to the copy of the event that appears on this calendar.
+          "a_key": "A String", # The name of the private property and the corresponding value.
+        },
+      },
+      "endTimeUnspecified": false, # Whether the end time is actually unspecified. An end time is still provided for compatibility reasons, even if this attribute is set to True. The default is False.
+      "sequence": 42, # Sequence number as per iCalendar.
+      "visibility": "default", # Visibility of the event. Optional. Possible values are:
+          # - "default" - Uses the default visibility for events on the calendar. This is the default value.
+          # - "public" - The event is public and event details are visible to all readers of the calendar.
+          # - "private" - The event is private and only event attendees may view event details.
+          # - "confidential" - The event is private. This value is provided for compatibility reasons.
+      "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"). Optional. The default is the time zone of the calendar.
+        "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.
+      "kind": "calendar#event", # Type of the resource ("calendar#event").
+      "locked": false, # Whether this is a locked event copy where no changes can be made to the main event fields "summary", "description", "location", "start", "end" or "recurrence". The default is False. Read-Only.
+      "created": "A String", # Creation time of the event (as a RFC 3339 timestamp). Read-only.
+      "colorId": "A String", # The color of the event. This is an ID referring to an entry in the "event" section of the colors definition (see the "colors" endpoint). Optional.
+      "anyoneCanAddSelf": false, # Whether anyone can invite themselves to the event. Optional. The default is False.
+      "reminders": { # Information about the event's reminders for the authenticated user.
+        "overrides": [ # If the event doesn't use the default reminders, this lists the reminders specific to the event, or, if not set, indicates that no reminders are set for this event.
+          {
+            "minutes": 42, # Number of minutes before the start of the event when the reminder should trigger.
+            "method": "A String", # The method used by this reminder. Possible values are:
+                # - "email" - Reminders are sent via email.
+                # - "sms" - Reminders are sent via SMS.
+                # - "popup" - Reminders are sent via a UI popup.
+          },
+        ],
+        "useDefault": True or False, # Whether the default reminders of the calendar apply to the event.
+      },
+      "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"). Optional. The default is the time zone of the calendar.
+        "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.
+      "transparency": "opaque", # Whether the event blocks time on the calendar. Optional. Possible values are:
+          # - "opaque" - The event blocks time on the calendar. This is the default value.
+          # - "transparent" - The event does not block time on the calendar.
+      "privateCopy": false, # Whether this is a private event copy where changes are not shared with other copies on other calendars. Optional. Immutable. The default is False.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="watch">watch(calendarId, body, orderBy=None, showHiddenInvitations=None, timeMin=None, privateExtendedProperty=None, pageToken=None, updatedMin=None, singleEvents=None, alwaysIncludeEmail=None, showDeleted=None, sharedExtendedProperty=None, maxAttendees=None, syncToken=None, iCalUID=None, maxResults=None, timeMax=None, q=None, timeZone=None)</code>
+  <pre>Watch for changes to Events resources.
+
+Args:
+  calendarId: string, Calendar identifier. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "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.
+  }
+
+  orderBy: string, The order of the events returned in the result. Optional. The default is an unspecified, stable order.
+    Allowed values
+      startTime - Order by the start date/time (ascending). This is only available when querying single events (i.e. the parameter "singleEvents" is True)
+      updated - Order by last modification time (ascending).
+  showHiddenInvitations: boolean, Whether to include hidden invitations in the result. Optional. The default is False.
+  timeMin: string, Lower bound (inclusive) for an event's end time to filter by. Optional. The default is not to filter by end time.
+  privateExtendedProperty: string, Extended properties constraint specified as propertyName=value. Matches only private properties. This parameter might be repeated multiple times to return events that match all given constraints. (repeated)
+  pageToken: string, Token specifying which result page to return. Optional.
+  updatedMin: string, Lower bound for an event's last modification time (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by last modification time.
+  singleEvents: boolean, Whether to expand recurring events into instances and only return single one-off events and instances of recurring events, but not the underlying recurring events themselves. Optional. The default is False.
+  alwaysIncludeEmail: boolean, Whether to always include a value in the "email" field for the organizer, creator and attendees, even if no real email is available (i.e. a generated, non-working value will be provided). The use of this option is discouraged and should only be used by clients which cannot handle the absence of an email address value in the mentioned places. Optional. The default is False.
+  showDeleted: boolean, Whether to include deleted events (with 'status' equals 'cancelled') in the result. Cancelled instances of recurring events (but not the underlying recurring event) will still be included if 'showDeleted' and 'singleEvents' are both False. If 'showDeleted' and 'singleEvents' are both True, only single instances of deleted events (but not the underlying recurring events) are returned. Optional. The default is False.
+  sharedExtendedProperty: string, Extended properties constraint specified as propertyName=value. Matches only shared properties. This parameter might be repeated multiple times to return events that match all given constraints. (repeated)
+  maxAttendees: integer, The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.
+  syncToken: string, Token obtained from the 'nextSyncToken' field returned on the last result page of the previous method's call. It makes the result of this call contain only entries that have changed since the last call. Optional. The default is to return all entries.
+  iCalUID: string, Specifies iCalendar UID (iCalUID) of events to be included in the response. Optional.
+  maxResults: integer, Maximum number of events returned on one result page. Optional.
+  timeMax: string, Upper bound (exclusive) for an event's start time to filter by. Optional. The default is not to filter by start time.
+  q: string, Free text search terms to find events that match these terms in any field, except for extended properties. Optional.
+  timeZone: string, Time zone used in the response. Optional. The default is the time zone of the calendar.
+
+Returns:
+  An object of the form:
+
+    {
+      "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.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/calendar_v3.freebusy.html b/docs/dyn/calendar_v3.freebusy.html
new file mode 100644
index 0000000..1d390f3
--- /dev/null
+++ b/docs/dyn/calendar_v3.freebusy.html
@@ -0,0 +1,150 @@
+<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="calendar_v3.html">Calendar API</a> . <a href="calendar_v3.freebusy.html">freebusy</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#query">query(body)</a></code></p>
+<p class="firstline">Returns free/busy information for a set of calendars.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="query">query(body)</code>
+  <pre>Returns free/busy information for a set of calendars.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "calendarExpansionMax": 42, # Maximal number of calendars for which FreeBusy information is to be provided. Optional.
+    "groupExpansionMax": 42, # Maximal number of calendar identifiers to be provided for a single group. Optional. An error will be returned for a group with more members than this value.
+    "timeMax": "A String", # The end of the interval for the query.
+    "items": [ # List of calendars and/or groups to query.
+      {
+        "id": "A String", # The identifier of a calendar or a group.
+      },
+    ],
+    "timeMin": "A String", # The start of the interval for the query.
+    "timeZone": "UTC", # Time zone used in the response. Optional. The default is UTC.
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "timeMax": "A String", # The end of the interval.
+    "kind": "calendar#freeBusy", # Type of the resource ("calendar#freeBusy").
+    "calendars": { # List of free/busy information for calendars.
+      "a_key": { # Free/busy expansions for a single calendar.
+        "busy": [ # List of time ranges during which this calendar should be regarded as busy.
+          {
+            "start": "A String", # The (inclusive) start of the time period.
+            "end": "A String", # The (exclusive) end of the time period.
+          },
+        ],
+        "errors": [ # Optional error(s) (if computation for the calendar failed).
+          {
+            "domain": "A String", # Domain, or broad category, of the error.
+            "reason": "A String", # Specific reason for the error. Some of the possible values are:
+                # - "groupTooBig" - The group of users requested is too large for a single query.
+                # - "tooManyCalendarsRequested" - The number of calendars requested is too large for a single query.
+                # - "notFound" - The requested resource was not found.
+                # - "internalError" - The API service has encountered an internal error.  Additional error types may be added in the future, so clients should gracefully handle additional error statuses not included in this list.
+          },
+        ],
+      },
+    },
+    "timeMin": "A String", # The start of the interval.
+    "groups": { # Expansion of groups.
+      "a_key": { # List of calendars that are members of this group.
+        "errors": [ # Optional error(s) (if computation for the group failed).
+          {
+            "domain": "A String", # Domain, or broad category, of the error.
+            "reason": "A String", # Specific reason for the error. Some of the possible values are:
+                # - "groupTooBig" - The group of users requested is too large for a single query.
+                # - "tooManyCalendarsRequested" - The number of calendars requested is too large for a single query.
+                # - "notFound" - The requested resource was not found.
+                # - "internalError" - The API service has encountered an internal error.  Additional error types may be added in the future, so clients should gracefully handle additional error statuses not included in this list.
+          },
+        ],
+        "calendars": [ # List of calendars' identifiers within a group.
+          "A String",
+        ],
+      },
+    },
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/calendar_v3.html b/docs/dyn/calendar_v3.html
new file mode 100644
index 0000000..1681f9d
--- /dev/null
+++ b/docs/dyn/calendar_v3.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="calendar_v3.html">Calendar API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="calendar_v3.acl.html">acl()</a></code>
+</p>
+<p class="firstline">Returns the acl Resource.</p>
+
+<p class="toc_element">
+  <code><a href="calendar_v3.calendarList.html">calendarList()</a></code>
+</p>
+<p class="firstline">Returns the calendarList Resource.</p>
+
+<p class="toc_element">
+  <code><a href="calendar_v3.calendars.html">calendars()</a></code>
+</p>
+<p class="firstline">Returns the calendars Resource.</p>
+
+<p class="toc_element">
+  <code><a href="calendar_v3.channels.html">channels()</a></code>
+</p>
+<p class="firstline">Returns the channels Resource.</p>
+
+<p class="toc_element">
+  <code><a href="calendar_v3.colors.html">colors()</a></code>
+</p>
+<p class="firstline">Returns the colors Resource.</p>
+
+<p class="toc_element">
+  <code><a href="calendar_v3.events.html">events()</a></code>
+</p>
+<p class="firstline">Returns the events Resource.</p>
+
+<p class="toc_element">
+  <code><a href="calendar_v3.freebusy.html">freebusy()</a></code>
+</p>
+<p class="firstline">Returns the freebusy Resource.</p>
+
+<p class="toc_element">
+  <code><a href="calendar_v3.settings.html">settings()</a></code>
+</p>
+<p class="firstline">Returns the settings Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/calendar_v3.settings.html b/docs/dyn/calendar_v3.settings.html
new file mode 100644
index 0000000..aa92bb8
--- /dev/null
+++ b/docs/dyn/calendar_v3.settings.html
@@ -0,0 +1,196 @@
+<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="calendar_v3.html">Calendar API</a> . <a href="calendar_v3.settings.html">settings</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(setting)</a></code></p>
+<p class="firstline">Returns a single user setting.</p>
+<p class="toc_element">
+  <code><a href="#list">list(syncToken=None, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Returns all user settings for the authenticated user.</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="#watch">watch(body, syncToken=None, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Watch for changes to Settings resources.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(setting)</code>
+  <pre>Returns a single user setting.
+
+Args:
+  setting: string, The id of the user setting. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "calendar#setting", # Type of the resource ("calendar#setting").
+    "etag": "A String", # ETag of the resource.
+    "id": "A String", # The id of the user setting.
+    "value": "A String", # Value of the user setting. The format of the value depends on the ID of the setting. It must always be a UTF-8 string of length up to 1024 characters.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(syncToken=None, pageToken=None, maxResults=None)</code>
+  <pre>Returns all user settings for the authenticated user.
+
+Args:
+  syncToken: string, Token obtained from the 'nextSyncToken' field returned on the last result page of the previous method's call. It makes the result of this call contain only entries that have changed since the last call. Optional. The default is to return all entries.
+  pageToken: string, Token specifying which result page to return. Optional.
+  maxResults: integer, Maximum number of entries returned on one result page. Optional.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Token used to access the next page of this result.
+    "items": [ # List of user settings.
+      {
+        "kind": "calendar#setting", # Type of the resource ("calendar#setting").
+        "etag": "A String", # ETag of the resource.
+        "id": "A String", # The id of the user setting.
+        "value": "A String", # Value of the user setting. The format of the value depends on the ID of the setting. It must always be a UTF-8 string of length up to 1024 characters.
+      },
+    ],
+    "kind": "calendar#settings", # Type of the collection ("calendar#settings").
+    "etag": "A String", # Etag of the collection.
+    "nextSyncToken": "A String", # Token used at a later point in time to retrieve only the entries that have changed since this result was returned. Omitted if further results are available, in which case nextPageToken is provided.
+  }</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="watch">watch(body, syncToken=None, pageToken=None, maxResults=None)</code>
+  <pre>Watch for changes to Settings resources.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "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.
+  }
+
+  syncToken: string, Token obtained from the 'nextSyncToken' field returned on the last result page of the previous method's call. It makes the result of this call contain only entries that have changed since the last call. Optional. The default is to return all entries.
+  pageToken: string, Token specifying which result page to return. Optional.
+  maxResults: integer, Maximum number of entries returned on one result page. Optional.
+
+Returns:
+  An object of the form:
+
+    {
+      "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.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/civicinfo_us_v1.divisions.html b/docs/dyn/civicinfo_us_v1.divisions.html
new file mode 100644
index 0000000..0b43812
--- /dev/null
+++ b/docs/dyn/civicinfo_us_v1.divisions.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="civicinfo_us_v1.html">Google Civic Information API</a> . <a href="civicinfo_us_v1.divisions.html">divisions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#search">search(query=None)</a></code></p>
+<p class="firstline">Searches for political divisions by their natural name or OCD ID.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="search">search(query=None)</code>
+  <pre>Searches for political divisions by their natural name or OCD ID.
+
+Args:
+  query: string, The search query. Queries can cover any parts of a OCD ID or a human readable division name. All words given in the query are treated as required patterns. In addition to that, most query operators of the Apache Lucene library are supported. See http://lucene.apache.org/core/2_9_4/queryparsersyntax.html
+
+Returns:
+  An object of the form:
+
+    { # The result of a division search query.
+    "status": "A String", # The result of the request. One of: success, addressUnparseable, noAddressParameter, internalLookupFailure
+    "kind": "civicinfo#divisionSearchResponse", # Identifies what kind of resource this is. Value: the fixed string "civicinfo#divisionSearchResponse".
+    "results": [
+      { # Represents a political geographic division that matches the requested query.
+        "ocdId": "A String", # The unique Open Civic Data identifier for this division.
+        "name": "A String", # The name of the division.
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/civicinfo_us_v1.elections.html b/docs/dyn/civicinfo_us_v1.elections.html
new file mode 100644
index 0000000..35744e3
--- /dev/null
+++ b/docs/dyn/civicinfo_us_v1.elections.html
@@ -0,0 +1,294 @@
+<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="civicinfo_us_v1.html">Google Civic Information API</a> . <a href="civicinfo_us_v1.elections.html">elections</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#electionQuery">electionQuery()</a></code></p>
+<p class="firstline">List of available elections to query.</p>
+<p class="toc_element">
+  <code><a href="#voterInfoQuery">voterInfoQuery(electionId, body, officialOnly=None)</a></code></p>
+<p class="firstline">Looks up information relevant to a voter based on the voter's registered address.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="electionQuery">electionQuery()</code>
+  <pre>List of available elections to query.
+
+Args:
+
+Returns:
+  An object of the form:
+
+    { # The list of elections available for this version of the API.
+    "kind": "civicinfo#electionsQueryResponse", # Identifies what kind of resource this is. Value: the fixed string "civicinfo#electionsQueryResponse".
+    "elections": [ # A list of available elections
+      { # Information about the election that was queried.
+        "electionDay": "A String", # Day of the election in YYYY-MM-DD format.
+        "id": "A String", # The unique ID of this election.
+        "name": "A String", # A displayable name for the election.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="voterInfoQuery">voterInfoQuery(electionId, body, officialOnly=None)</code>
+  <pre>Looks up information relevant to a voter based on the voter's registered address.
+
+Args:
+  electionId: string, The unique ID of the election to look up. A list of election IDs can be obtained at https://www.googleapis.com/civicinfo/{version}/elections (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A request for information about a voter.
+    "address": "A String", # The registered address of the voter to look up.
+  }
+
+  officialOnly: boolean, If set to true, only data from official state sources will be returned.
+
+Returns:
+  An object of the form:
+
+    { # The result of a voter info lookup query.
+    "status": "A String", # The result of the request. One of: success, noStreetSegmentFound, addressUnparseable, noAddressParameter, multipleStreetSegmentsFound, electionOver, electionUnknown, internalLookupFailure
+    "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.
+        "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.
+        "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.
+      },
+    ],
+    "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.
+      "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.
+    },
+    "state": [ # Local Election Information for the state that the voter votes in. For the US, there will only be one element in this array.
+      { # Describes information about a regional election administrative area.
+        "local_jurisdiction": # Object with schema name: AdministrationRegion # The city or county that provides election information for this voter. This object can have the same elements as state.
+        "sources": [ # A list of sources for this area. 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.
+          },
+        ],
+        "electionAdministrationBody": { # Information about an election administrative body (e.g. County Board of Elections). # The election administration body for this area.
+          "absenteeVotingInfoUrl": "A String", # A URL provided by this administrative body for information on absentee voting.
+          "votingLocationFinderUrl": "A String", # A URL provided by this administrative body for looking up where to vote.
+          "name": "A String", # The name of this election administrative body.
+          "electionRegistrationConfirmationUrl": "A String", # A URL provided by this administrative body for confirming that the voter is registered to vote.
+          "correspondenceAddress": { # A simple representation of an address. # The mailing address of this administrative body.
+            "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.
+          },
+          "electionRegistrationUrl": "A String", # A URL provided by this administrative body for looking up how to register to vote.
+          "electionOfficials": [ # The election officials for this election administrative body.
+            { # Information about individual election officials.
+              "title": "A String", # The title of the election official.
+              "emailAddress": "A String", # The email address of the election official.
+              "name": "A String", # The full name of the election official.
+              "officePhoneNumber": "A String", # The office phone number of the election official.
+              "faxNumber": "A String", # The fax number of the election official.
+            },
+          ],
+          "electionInfoUrl": "A String", # A URL provided by this administrative body for looking up general election information.
+          "electionRulesUrl": "A String", # A URL provided by this administrative body describing election rules to the voter.
+          "voter_services": [ # A description of the services this administrative body may provide.
+            "A String",
+          ],
+          "ballotInfoUrl": "A String", # A URL provided by this administrative body to give contest information to the voter.
+          "hoursOfOperation": "A String", # A description of the hours of operation for this administrative body.
+          "physicalAddress": { # A simple representation of an address. # The physical address of this administrative body.
+            "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.
+          },
+        },
+        "name": "A String", # The name of the jurisdiction.
+        "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.
+      },
+    ],
+    "election": { # Information about the election that was queried. # The election that was queried.
+      "electionDay": "A String", # Day of the election in YYYY-MM-DD format.
+      "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.
+        "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.
+        "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.
+      },
+    ],
+    "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.
+        "district": { # Describes the geographic scope of a contest. # Information about the electoral district that this contest is in.
+          "scope": "A String", # The geographic scope of this district. If unspecified the district's geography is not known. One of: national, statewide, congressional, stateUpper, stateLower, countywide, judicial, schoolBoard, cityWide, township, countyCouncil, cityCouncil, ward, special
+          "id": "A String", # An identifier for this district, relative to its scope. For example, the 34th State Senate district would have id "34" and a scope of stateUpper.
+          "name": "A String", # The name of the district.
+        },
+        "level": "A String", # The level of office for this contest. One of: federal, state, county, city, other
+        "type": "A String", # The type of contest. Usually this will be 'General', 'Primary', or 'Run-off' for contests with candidates. For referenda this will be 'Referendum'.
+        "ballotPlacement": "A String", # A number specifying the position of this contest on the voter's ballot.
+        "sources": [ # A list of sources for this contest. 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.
+          },
+        ],
+        "referendumSubtitle": "A String", # A brief description of the referendum. This field is only populated for contests of type 'Referendum'.
+        "primaryParty": "A String", # If this is a partisan election, the name of the party it is for.
+        "candidates": [ # The candidate choices for this contest.
+          { # Information about a candidate running for elected office.
+            "name": "A String", # The candidate's name.
+            "photoUrl": "A String", # A URL for a photo of the candidate.
+            "candidateUrl": "A String", # The URL for the candidate's campaign web site.
+            "channels": [ # A list of known (social) media channels for this candidate.
+              { # A social media or web channel for a candidate.
+                "type": "A String", # The type of channel. The following is a list of types of channels, but is not exhaustive. More channel types may be added at a later time. One of: GooglePlus, YouTube, Facebook, Twitter
+                "id": "A String", # The unique public identifier for the candidate's channel.
+              },
+            ],
+            "phone": "A String", # The voice phone number for the candidate's campaign office.
+            "orderOnBallot": "A String", # The order the candidate appears on the ballot for this contest.
+            "party": "A String", # The full name of the party the candidate is a member of.
+            "email": "A String", # The email address for the candidate's campaign.
+          },
+        ],
+        "numberElected": "A String", # The number of candidates that will be elected to office in this contest.
+        "referendumUrl": "A String", # A link to the referendum. This field is only populated for contests of type 'Referendum'.
+        "electorateSpecifications": "A String", # A description of any additional eligibility requirements for voting in this contest.
+        "referendumTitle": "A String", # The title of the referendum (e.g. 'Proposition 42'). This field is only populated for contests of type 'Referendum'.
+        "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.
+        "special": "A String", # "Yes" or "No" depending on whether this a contest being held outside the normal election cycle.
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/civicinfo_us_v1.html b/docs/dyn/civicinfo_us_v1.html
new file mode 100644
index 0000000..35b6bfd
--- /dev/null
+++ b/docs/dyn/civicinfo_us_v1.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="civicinfo_us_v1.html">Google Civic Information API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="civicinfo_us_v1.divisions.html">divisions()</a></code>
+</p>
+<p class="firstline">Returns the divisions Resource.</p>
+
+<p class="toc_element">
+  <code><a href="civicinfo_us_v1.elections.html">elections()</a></code>
+</p>
+<p class="firstline">Returns the elections Resource.</p>
+
+<p class="toc_element">
+  <code><a href="civicinfo_us_v1.representatives.html">representatives()</a></code>
+</p>
+<p class="firstline">Returns the representatives Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/civicinfo_us_v1.representatives.html b/docs/dyn/civicinfo_us_v1.representatives.html
new file mode 100644
index 0000000..5f38796
--- /dev/null
+++ b/docs/dyn/civicinfo_us_v1.representatives.html
@@ -0,0 +1,171 @@
+<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="civicinfo_us_v1.html">Google Civic Information API</a> . <a href="civicinfo_us_v1.representatives.html">representatives</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#representativeInfoQuery">representativeInfoQuery(body, ocdId=None, includeOffices=None)</a></code></p>
+<p class="firstline">Looks up political geography and (optionally) representative information based on an address.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="representativeInfoQuery">representativeInfoQuery(body, ocdId=None, includeOffices=None)</code>
+  <pre>Looks up political geography and (optionally) representative information based on an address.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A request for political geography and representative information for an address.
+    "address": "A String", # The address to look up. May only be specified if the field ocdId is not given in the URL.
+  }
+
+  ocdId: string, The division to look up. May only be specified if the address field is not given in the request body.
+  includeOffices: boolean, Whether to return information about offices and officials. If false, only the top-level district information will be returned.
+
+Returns:
+  An object of the form:
+
+    { # The result of a representative info lookup query.
+    "status": "A String", # The result of the request. One of: success, noStreetSegmentFound, addressUnparseable, noAddressParameter, multipleStreetSegmentsFound, electionOver, electionUnknown, internalLookupFailure, RequestedBothAddressAndOcdId
+    "divisions": { # Political geographic divisions that contain the requested address.
+      "a_key": { # Describes a political geography. # The unique Open Civic Data identifier for this division.
+        "scope": "A String", # The geographic scope of the division. If unspecified, the division's geography is not known. One of: national, statewide, congressional, stateUpper, stateLower, countywide, judicial, schoolBoard, cityWide, township, countyCouncil, cityCouncil, ward, special
+        "name": "A String", # The name of the division.
+        "officeIds": [ # List of keys in the offices object, one for each office elected from this division. Will only be present if includeOffices was true (or absent) in the request.
+          "A String",
+        ],
+      },
+    },
+    "kind": "civicinfo#representativeInfoResponse", # Identifies what kind of resource this is. Value: the fixed string "civicinfo#representativeInfoResponse".
+    "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.
+      "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.
+    },
+    "officials": { # Officials holding the offices listed above. Will only be present if includeOffices was true in the request.
+      "a_key": { # Information about a official holding an elected office. # A unique identifier for this official, within the context of this request. Identifiers are *not* long-lived: the same official may get different IDs on different requests.
+        "name": "A String", # The official's name.
+        "photoUrl": "A String", # A URL for a photo of the official.
+        "phones": [ # The official's public contact phone numbers.
+          "A String",
+        ],
+        "channels": [ # A list of known (social) media channels for this official.
+          { # A social media or web channel for a candidate.
+            "type": "A String", # The type of channel. The following is a list of types of channels, but is not exhaustive. More channel types may be added at a later time. One of: GooglePlus, YouTube, Facebook, Twitter
+            "id": "A String", # The unique public identifier for the candidate's channel.
+          },
+        ],
+        "urls": [ # The official's public website URLs.
+          "A String",
+        ],
+        "address": [ # Addresses at which to contact the official.
+          { # A simple representation of an address.
+            "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.
+          },
+        ],
+        "party": "A String", # The full name of the party the official belongs to.
+        "emails": [ # The direct email addresses for the official.
+          "A String",
+        ],
+      },
+    },
+    "offices": { # Elected offices referenced by the divisions listed above. Will only be present if includeOffices was true in the request.
+      "a_key": { # Information about an Office held by one or more Officials. # A unique identifier for this office, within the context of this request. Identifiers are *not* long-lived: the same office may get different IDs on different requests.
+        "sources": [ # A list of sources for this office. 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.
+          },
+        ],
+        "officialIds": [ # List of people who presently hold the office.
+          "A String",
+        ],
+        "name": "A String", # The human-readable name of the office.
+        "level": "A String", # The level of this elected office. One of: federal, state, county, city, other
+      },
+    },
+  }</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
new file mode 100644
index 0000000..4064fcc
--- /dev/null
+++ b/docs/dyn/compute_v1.addresses.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="compute_v1.html">Compute Engine API</a> . <a href="compute_v1.addresses.html">addresses</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#aggregatedList">aggregatedList(project, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves the list of addresses grouped by scope.</p>
+<p class="toc_element">
+  <code><a href="#aggregatedList_next">aggregatedList_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="#delete">delete(project, region, address)</a></code></p>
+<p class="firstline">Deletes the specified address resource.</p>
+<p class="toc_element">
+  <code><a href="#get">get(project, region, address)</a></code></p>
+<p class="firstline">Returns the specified address resource.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(project, region, body)</a></code></p>
+<p class="firstline">Creates an address resource in the specified project using the data included in the request.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, region, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves the list of address resources contained within the specified region.</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="aggregatedList">aggregatedList(project, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves the list of addresses grouped by scope.
+
+Args:
+  project: string, Name of the project 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": { # 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.
+            {
+              "value": "A String", # A warning data value corresponding to the key.
+              "key": "A String", # A key for the warning data.
+            },
+          ],
+        },
+        "addresses": [ # 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.
+              "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 address resides (output only).
+              "address": "A String", # The IP address represented by this resource.
+              "users": [ # The resources that are using this address resource.
+                "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.
+            },
+        ],
+      },
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="aggregatedList_next">aggregatedList_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="delete">delete(project, region, address)</code>
+  <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)
+  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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, region, address)</code>
+  <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)
+  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.
+      "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 address resides (output only).
+      "address": "A String", # The IP address represented by this resource.
+      "users": [ # The resources that are using this address resource.
+        "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.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(project, region, body)</code>
+  <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)
+  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.
+    "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 address resides (output only).
+    "address": "A String", # The IP address represented by this resource.
+    "users": [ # The resources that are using this address resource.
+      "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.
+  }
+
+
+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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, region, maxResults=None, pageToken=None, filter=None)</code>
+  <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)
+  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:
+
+    { # Contains a list of address resources.
+    "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
+    "items": [ # The address resources.
+      { # A reserved address resource.
+          "status": "A String", # The status of the address (output only).
+          "kind": "compute#address", # Type of the resource.
+          "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 address resides (output only).
+          "address": "A String", # The IP address represented by this resource.
+          "users": [ # The resources that are using this address resource.
+            "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.
+        },
+    ],
+    "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).
+  }</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.disks.html b/docs/dyn/compute_v1.disks.html
new file mode 100644
index 0000000..0e477f8
--- /dev/null
+++ b/docs/dyn/compute_v1.disks.html
@@ -0,0 +1,462 @@
+<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="compute_v1.html">Compute Engine API</a> . <a href="compute_v1.disks.html">disks</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#aggregatedList">aggregatedList(project, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves the list of disks grouped by scope.</p>
+<p class="toc_element">
+  <code><a href="#aggregatedList_next">aggregatedList_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="#createSnapshot">createSnapshot(project, zone, disk, body)</a></code></p>
+<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="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="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="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="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="aggregatedList">aggregatedList(project, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves the list of disks grouped by scope.
+
+Args:
+  project: string, Name of the project 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": { # 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. Once the source snapshot has been deleted from the system, this field will be cleared, and will not be set even if a snapshot with the same name has been re-created.
+              "kind": "compute#disk", # Type of the resource.
+              "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.
+              "id": "A String", # Unique identifier for the resource; defined by the server (output 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.
+              "sourceImage": "A String", # The source image used to create this disk. Once the source image has been deleted from the system, this field will not be set, even if an image with the same name has been re-created.
+              "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.
+              "zone": "A String", # URL of the zone where the disk resides (output only).
+              "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
+              "options": "A String", # Internal use 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.
+            },
+        ],
+        "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.
+            {
+              "value": "A String", # A warning data value corresponding to the key.
+              "key": "A String", # 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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="aggregatedList_next">aggregatedList_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="createSnapshot">createSnapshot(project, zone, disk, body)</code>
+  <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)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A persistent disk snapshot resource.
+    "status": "A String", # The status of the persistent disk snapshot (output only).
+    "kind": "compute#snapshot", # Type of the resource.
+    "storageBytes": "A String", # A size of the the storage used by the snapshot. As snapshots share storage this number is expected to change with snapshot creation/deletion.
+    "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
+    "sourceDisk": "A String", # The source disk used to create this snapshot. Once the source disk has been deleted from the system, this field will be cleared, and will not be set even if a disk with the same name has been re-created (output only).
+    "storageBytesStatus": "A String", # An indicator whether storageBytes is in a stable state, or it is being adjusted as a result of shared storage reallocation.
+    "sourceDiskId": "A String", # The 'id' value of the disk used to create this snapshot. This value may be used to determine whether the snapshot was taken from the current or a previous instance of a given disk name.
+    "diskSizeGb": "A String", # Size of the persistent disk snapshot, specified 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; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
+  }
+
+
+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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(project, zone, disk)</code>
+  <pre>Deletes the specified persistent disk resource.
+
+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)
+
+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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, zone, disk)</code>
+  <pre>Returns the specified persistent disk resource.
+
+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)
+
+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. Once the source snapshot has been deleted from the system, this field will be cleared, and will not be set even if a snapshot with the same name has been re-created.
+      "kind": "compute#disk", # Type of the resource.
+      "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.
+      "id": "A String", # Unique identifier for the resource; defined by the server (output 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.
+      "sourceImage": "A String", # The source image used to create this disk. Once the source image has been deleted from the system, this field will not be set, even if an image with the same name has been re-created.
+      "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.
+      "zone": "A String", # URL of the zone where the disk resides (output only).
+      "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
+      "options": "A String", # Internal use 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.
+    }</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.
+
+Args:
+  project: string, Name of the project scoping this request. (required)
+  zone: string, Name of the zone scoping 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. Once the source snapshot has been deleted from the system, this field will be cleared, and will not be set even if a snapshot with the same name has been re-created.
+    "kind": "compute#disk", # Type of the resource.
+    "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.
+    "id": "A String", # Unique identifier for the resource; defined by the server (output 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.
+    "sourceImage": "A String", # The source image used to create this disk. Once the source image has been deleted from the system, this field will not be set, even if an image with the same name has been re-created.
+    "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.
+    "zone": "A String", # URL of the zone where the disk resides (output only).
+    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
+    "options": "A String", # Internal use 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.
+  }
+
+  sourceImage: string, Optional. Source image to restore onto a disk.
+
+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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</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.
+
+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:
+
+    { # 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. Once the source snapshot has been deleted from the system, this field will be cleared, and will not be set even if a snapshot with the same name has been re-created.
+          "kind": "compute#disk", # Type of the resource.
+          "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.
+          "id": "A String", # Unique identifier for the resource; defined by the server (output 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.
+          "sourceImage": "A String", # The source image used to create this disk. Once the source image has been deleted from the system, this field will not be set, even if an image with the same name has been re-created.
+          "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.
+          "zone": "A String", # URL of the zone where the disk resides (output only).
+          "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
+          "options": "A String", # Internal use 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.
+        },
+    ],
+    "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).
+  }</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.firewalls.html b/docs/dyn/compute_v1.firewalls.html
new file mode 100644
index 0000000..2b94ea8
--- /dev/null
+++ b/docs/dyn/compute_v1.firewalls.html
@@ -0,0 +1,524 @@
+<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="compute_v1.html">Compute Engine API</a> . <a href="compute_v1.firewalls.html">firewalls</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(project, firewall)</a></code></p>
+<p class="firstline">Deletes the specified firewall resource.</p>
+<p class="toc_element">
+  <code><a href="#get">get(project, firewall)</a></code></p>
+<p class="firstline">Returns the specified firewall resource.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(project, body)</a></code></p>
+<p class="firstline">Creates a firewall resource in the specified project using the data included in the request.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves the list of firewall resources available to the specified 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(project, firewall, body)</a></code></p>
+<p class="firstline">Updates the specified firewall resource with the data included in the request. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(project, firewall, body)</a></code></p>
+<p class="firstline">Updates the specified firewall resource with the data included in the request.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(project, firewall)</code>
+  <pre>Deletes the specified firewall resource.
+
+Args:
+  project: string, Name of the project scoping 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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, firewall)</code>
+  <pre>Returns the specified firewall resource.
+
+Args:
+  project: string, Name of the project scoping 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.
+      "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.
+        "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.
+        "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.
+        "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.
+              #
+              # 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.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(project, body)</code>
+  <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)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A firewall resource.
+    "kind": "compute#firewall", # Type of the resource.
+    "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.
+      "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.
+      "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.
+      "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.
+            # 
+            # 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.
+  }
+
+
+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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves the list of firewall resources available to the specified project.
+
+Args:
+  project: string, Name of the project 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:
+
+    { # 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.
+          "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.
+            "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.
+            "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.
+            "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.
+                  #
+                  # 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.
+        },
+    ],
+    "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).
+  }</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, firewall, body)</code>
+  <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)
+  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.
+    "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.
+      "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.
+      "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.
+      "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.
+            # 
+            # 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.
+  }
+
+
+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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(project, firewall, body)</code>
+  <pre>Updates the specified firewall resource with the data included in the request.
+
+Args:
+  project: string, Name of the project scoping 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.
+    "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.
+      "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.
+      "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.
+      "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.
+            # 
+            # 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.
+  }
+
+
+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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/compute_v1.forwardingRules.html b/docs/dyn/compute_v1.forwardingRules.html
new file mode 100644
index 0000000..5068664
--- /dev/null
+++ b/docs/dyn/compute_v1.forwardingRules.html
@@ -0,0 +1,438 @@
+<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="compute_v1.html">Compute Engine API</a> . <a href="compute_v1.forwardingRules.html">forwardingRules</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#aggregatedList">aggregatedList(project, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves the list of forwarding rules grouped by scope.</p>
+<p class="toc_element">
+  <code><a href="#aggregatedList_next">aggregatedList_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="#delete">delete(project, region, forwardingRule)</a></code></p>
+<p class="firstline">Deletes the specified ForwardingRule resource.</p>
+<p class="toc_element">
+  <code><a href="#get">get(project, region, forwardingRule)</a></code></p>
+<p class="firstline">Returns the specified ForwardingRule resource.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(project, region, body)</a></code></p>
+<p class="firstline">Creates a ForwardingRule resource in the specified project and region using the data included in the request.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, region, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves the list of ForwardingRule resources available to the specified project and region.</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="#setTarget">setTarget(project, region, forwardingRule, body)</a></code></p>
+<p class="firstline">Changes target url for forwarding rule.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="aggregatedList">aggregatedList(project, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves the list of forwarding rules grouped by scope.
+
+Args:
+  project: string, Name of the project 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": { # A map of scoped forwarding rule lists.
+      "a_key": { # Name of the scope containing this set of addresses.
+        "forwardingRules": [ # List of forwarding rules contained in this scope.
+          { # 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.
+              "IPAddress": "A String", # Value of the reserved IP address that this forwarding rule is serving on behalf of. The address resource must live in the same region as the forwarding rule. If left empty (default value), an ephemeral IP will be assigned.
+              "region": "A String", # URL of the region where the forwarding rule resides (output only).
+              "target": "A String", # The URL of the target resource to receive the matched traffic. It must live in the same region as this forwarding rule.
+              "portRange": "A String", # Applicable only when 'IPProtocol' is 'TCP', 'UDP' or 'SCTP', only packets addressed to ports in the specified range will be forwarded to 'target'. If 'portRange' is left empty (default value), all ports are forwarded. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges. @pattern: \d+(?:-\d+)?
+              "IPProtocol": "A String", # The IP protocol to which this rule applies, valid options are 'TCP', 'UDP', 'ESP', 'AH' or 'SCTP'
+              "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.
+            },
+        ],
+        "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.
+            {
+              "value": "A String", # A warning data value corresponding to the key.
+              "key": "A String", # A key for the warning data.
+            },
+          ],
+        },
+      },
+    },
+    "kind": "compute#forwardingRuleAggregatedList", # 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="aggregatedList_next">aggregatedList_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="delete">delete(project, region, forwardingRule)</code>
+  <pre>Deletes the specified ForwardingRule resource.
+
+Args:
+  project: string, Name of the project scoping this request. (required)
+  region: string, Name of the region scoping this request. (required)
+  forwardingRule: string, Name of the ForwardingRule 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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, region, forwardingRule)</code>
+  <pre>Returns the specified ForwardingRule resource.
+
+Args:
+  project: string, Name of the project scoping this request. (required)
+  region: string, Name of the region scoping this request. (required)
+  forwardingRule: string, Name of the ForwardingRule resource to return. (required)
+
+Returns:
+  An object of the form:
+
+    { # 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.
+      "IPAddress": "A String", # Value of the reserved IP address that this forwarding rule is serving on behalf of. The address resource must live in the same region as the forwarding rule. If left empty (default value), an ephemeral IP will be assigned.
+      "region": "A String", # URL of the region where the forwarding rule resides (output only).
+      "target": "A String", # The URL of the target resource to receive the matched traffic. It must live in the same region as this forwarding rule.
+      "portRange": "A String", # Applicable only when 'IPProtocol' is 'TCP', 'UDP' or 'SCTP', only packets addressed to ports in the specified range will be forwarded to 'target'. If 'portRange' is left empty (default value), all ports are forwarded. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges. @pattern: \d+(?:-\d+)?
+      "IPProtocol": "A String", # The IP protocol to which this rule applies, valid options are 'TCP', 'UDP', 'ESP', 'AH' or 'SCTP'
+      "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.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(project, region, body)</code>
+  <pre>Creates a ForwardingRule resource in the specified project and region 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)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # 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.
+    "IPAddress": "A String", # Value of the reserved IP address that this forwarding rule is serving on behalf of. The address resource must live in the same region as the forwarding rule. If left empty (default value), an ephemeral IP will be assigned.
+    "region": "A String", # URL of the region where the forwarding rule resides (output only).
+    "target": "A String", # The URL of the target resource to receive the matched traffic. It must live in the same region as this forwarding rule.
+    "portRange": "A String", # Applicable only when 'IPProtocol' is 'TCP', 'UDP' or 'SCTP', only packets addressed to ports in the specified range will be forwarded to 'target'. If 'portRange' is left empty (default value), all ports are forwarded. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges. @pattern: \d+(?:-\d+)?
+    "IPProtocol": "A String", # The IP protocol to which this rule applies, valid options are 'TCP', 'UDP', 'ESP', 'AH' or 'SCTP'
+    "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.
+  }
+
+
+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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, region, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves the list of ForwardingRule resources available to the specified project and region.
+
+Args:
+  project: string, Name of the project scoping 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.
+  filter: string, Optional. Filter expression for filtering listed resources.
+
+Returns:
+  An object of the form:
+
+    { # Contains a list of ForwardingRule resources.
+    "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
+    "items": [ # The 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.
+          "IPAddress": "A String", # Value of the reserved IP address that this forwarding rule is serving on behalf of. The address resource must live in the same region as the forwarding rule. If left empty (default value), an ephemeral IP will be assigned.
+          "region": "A String", # URL of the region where the forwarding rule resides (output only).
+          "target": "A String", # The URL of the target resource to receive the matched traffic. It must live in the same region as this forwarding rule.
+          "portRange": "A String", # Applicable only when 'IPProtocol' is 'TCP', 'UDP' or 'SCTP', only packets addressed to ports in the specified range will be forwarded to 'target'. If 'portRange' is left empty (default value), all ports are forwarded. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges. @pattern: \d+(?:-\d+)?
+          "IPProtocol": "A String", # The IP protocol to which this rule applies, valid options are 'TCP', 'UDP', 'ESP', 'AH' or 'SCTP'
+          "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.
+        },
+    ],
+    "kind": "compute#forwardingRuleList", # 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="setTarget">setTarget(project, region, forwardingRule, body)</code>
+  <pre>Changes target url for forwarding rule.
+
+Args:
+  project: string, Name of the project scoping this request. (required)
+  region: string, Name of the region scoping this request. (required)
+  forwardingRule: string, Name of the ForwardingRule resource in which target is to be set. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "target": "A String",
+  }
+
+
+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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/compute_v1.globalOperations.html b/docs/dyn/compute_v1.globalOperations.html
new file mode 100644
index 0000000..d5a9f4e
--- /dev/null
+++ b/docs/dyn/compute_v1.globalOperations.html
@@ -0,0 +1,336 @@
+<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="compute_v1.html">Compute Engine API</a> . <a href="compute_v1.globalOperations.html">globalOperations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#aggregatedList">aggregatedList(project, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves the list of all operations grouped by scope.</p>
+<p class="toc_element">
+  <code><a href="#aggregatedList_next">aggregatedList_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="#delete">delete(project, operation)</a></code></p>
+<p class="firstline">Deletes the specified operation resource.</p>
+<p class="toc_element">
+  <code><a href="#get">get(project, operation)</a></code></p>
+<p class="firstline">Retrieves the specified operation resource.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves the list of operation resources contained within the specified 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="aggregatedList">aggregatedList(project, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves the list of all operations grouped by scope.
+
+Args:
+  project: string, Name of the project 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": { # 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.
+          { # 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).
+              {
+                "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.
+                  {
+                    "value": "A String", # A warning data value corresponding to the key.
+                    "key": "A String", # 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.
+                {
+                  "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.
+                },
+              ],
+            },
+            "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).
+          },
+        ],
+        "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.
+            {
+              "value": "A String", # A warning data value corresponding to the key.
+              "key": "A String", # 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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="aggregatedList_next">aggregatedList_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="delete">delete(project, operation)</code>
+  <pre>Deletes the specified operation resource.
+
+Args:
+  project: string, Name of the project scoping this request. (required)
+  operation: string, Name of the operation resource to delete. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, operation)</code>
+  <pre>Retrieves the specified operation resource.
+
+Args:
+  project: string, Name of the project 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", # 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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves the list of operation resources contained within the specified project.
+
+Args:
+  project: string, Name of the project 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:
+
+    { # Contains a list of operation resources.
+    "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", # 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).
+          {
+            "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.
+              {
+                "value": "A String", # A warning data value corresponding to the key.
+                "key": "A String", # 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.
+            {
+              "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.
+            },
+          ],
+        },
+        "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).
+      },
+    ],
+    "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).
+  }</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.html b/docs/dyn/compute_v1.html
new file mode 100644
index 0000000..6f9386f
--- /dev/null
+++ b/docs/dyn/compute_v1.html
@@ -0,0 +1,172 @@
+<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="compute_v1.html">Compute Engine API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="compute_v1.addresses.html">addresses()</a></code>
+</p>
+<p class="firstline">Returns the addresses Resource.</p>
+
+<p class="toc_element">
+  <code><a href="compute_v1.disks.html">disks()</a></code>
+</p>
+<p class="firstline">Returns the disks Resource.</p>
+
+<p class="toc_element">
+  <code><a href="compute_v1.firewalls.html">firewalls()</a></code>
+</p>
+<p class="firstline">Returns the firewalls Resource.</p>
+
+<p class="toc_element">
+  <code><a href="compute_v1.forwardingRules.html">forwardingRules()</a></code>
+</p>
+<p class="firstline">Returns the forwardingRules Resource.</p>
+
+<p class="toc_element">
+  <code><a href="compute_v1.globalOperations.html">globalOperations()</a></code>
+</p>
+<p class="firstline">Returns the globalOperations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="compute_v1.httpHealthChecks.html">httpHealthChecks()</a></code>
+</p>
+<p class="firstline">Returns the httpHealthChecks Resource.</p>
+
+<p class="toc_element">
+  <code><a href="compute_v1.images.html">images()</a></code>
+</p>
+<p class="firstline">Returns the images Resource.</p>
+
+<p class="toc_element">
+  <code><a href="compute_v1.instances.html">instances()</a></code>
+</p>
+<p class="firstline">Returns the instances Resource.</p>
+
+<p class="toc_element">
+  <code><a href="compute_v1.machineTypes.html">machineTypes()</a></code>
+</p>
+<p class="firstline">Returns the machineTypes Resource.</p>
+
+<p class="toc_element">
+  <code><a href="compute_v1.networks.html">networks()</a></code>
+</p>
+<p class="firstline">Returns the networks Resource.</p>
+
+<p class="toc_element">
+  <code><a href="compute_v1.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
+  <code><a href="compute_v1.regionOperations.html">regionOperations()</a></code>
+</p>
+<p class="firstline">Returns the regionOperations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="compute_v1.regions.html">regions()</a></code>
+</p>
+<p class="firstline">Returns the regions Resource.</p>
+
+<p class="toc_element">
+  <code><a href="compute_v1.routes.html">routes()</a></code>
+</p>
+<p class="firstline">Returns the routes Resource.</p>
+
+<p class="toc_element">
+  <code><a href="compute_v1.snapshots.html">snapshots()</a></code>
+</p>
+<p class="firstline">Returns the snapshots Resource.</p>
+
+<p class="toc_element">
+  <code><a href="compute_v1.targetInstances.html">targetInstances()</a></code>
+</p>
+<p class="firstline">Returns the targetInstances Resource.</p>
+
+<p class="toc_element">
+  <code><a href="compute_v1.targetPools.html">targetPools()</a></code>
+</p>
+<p class="firstline">Returns the targetPools Resource.</p>
+
+<p class="toc_element">
+  <code><a href="compute_v1.zoneOperations.html">zoneOperations()</a></code>
+</p>
+<p class="firstline">Returns the zoneOperations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="compute_v1.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/compute_v1.httpHealthChecks.html b/docs/dyn/compute_v1.httpHealthChecks.html
new file mode 100644
index 0000000..277fad6
--- /dev/null
+++ b/docs/dyn/compute_v1.httpHealthChecks.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="compute_v1.html">Compute Engine API</a> . <a href="compute_v1.httpHealthChecks.html">httpHealthChecks</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(project, httpHealthCheck)</a></code></p>
+<p class="firstline">Deletes the specified HttpHealthCheck resource.</p>
+<p class="toc_element">
+  <code><a href="#get">get(project, httpHealthCheck)</a></code></p>
+<p class="firstline">Returns the specified HttpHealthCheck resource.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(project, body)</a></code></p>
+<p class="firstline">Creates a HttpHealthCheck resource in the specified project using the data included in the request.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves the list of HttpHealthCheck resources available to the specified 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(project, httpHealthCheck, body)</a></code></p>
+<p class="firstline">Updates a HttpHealthCheck resource in the specified project using the data included in the request. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(project, httpHealthCheck, body)</a></code></p>
+<p class="firstline">Updates a HttpHealthCheck resource in the specified project using the data included in the request.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(project, httpHealthCheck)</code>
+  <pre>Deletes the specified HttpHealthCheck resource.
+
+Args:
+  project: string, Name of the project scoping this request. (required)
+  httpHealthCheck: string, Name of the HttpHealthCheck 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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, httpHealthCheck)</code>
+  <pre>Returns the specified HttpHealthCheck resource.
+
+Args:
+  project: string, Name of the project scoping this request. (required)
+  httpHealthCheck: string, Name of the HttpHealthCheck resource to return. (required)
+
+Returns:
+  An object of the form:
+
+    { # 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.
+      "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.
+      "host": "A String", # The value of the host header in the HTTP health check request. If left empty (default value), the public IP on behalf of which this health check is performed will be used.
+      "requestPath": "A String", # The request path of the HTTP health check request. The default value is "/".
+      "unhealthyThreshold": 42, # A so-far healthy VM will be marked unhealthy after this many consecutive failures. The default value is 2.
+      "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.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(project, body)</code>
+  <pre>Creates a HttpHealthCheck resource in the specified project using the data included in the request.
+
+Args:
+  project: string, Name of the project scoping this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # 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.
+    "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.
+    "host": "A String", # The value of the host header in the HTTP health check request. If left empty (default value), the public IP on behalf of which this health check is performed will be used.
+    "requestPath": "A String", # The request path of the HTTP health check request. The default value is "/".
+    "unhealthyThreshold": 42, # A so-far healthy VM will be marked unhealthy after this many consecutive failures. The default value is 2.
+    "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.
+  }
+
+
+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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves the list of HttpHealthCheck resources available to the specified project.
+
+Args:
+  project: string, Name of the project 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:
+
+    { # Contains a list of HttpHealthCheck resources.
+    "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
+    "items": [ # The 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.
+          "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.
+          "host": "A String", # The value of the host header in the HTTP health check request. If left empty (default value), the public IP on behalf of which this health check is performed will be used.
+          "requestPath": "A String", # The request path of the HTTP health check request. The default value is "/".
+          "unhealthyThreshold": 42, # A so-far healthy VM will be marked unhealthy after this many consecutive failures. The default value is 2.
+          "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.
+        },
+    ],
+    "kind": "compute#httpHealthCheckList", # 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="patch">patch(project, httpHealthCheck, body)</code>
+  <pre>Updates a HttpHealthCheck resource in the specified project using the data included in the request. This method supports patch semantics.
+
+Args:
+  project: string, Name of the project scoping this request. (required)
+  httpHealthCheck: string, Name of the HttpHealthCheck resource to update. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # 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.
+    "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.
+    "host": "A String", # The value of the host header in the HTTP health check request. If left empty (default value), the public IP on behalf of which this health check is performed will be used.
+    "requestPath": "A String", # The request path of the HTTP health check request. The default value is "/".
+    "unhealthyThreshold": 42, # A so-far healthy VM will be marked unhealthy after this many consecutive failures. The default value is 2.
+    "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.
+  }
+
+
+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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(project, httpHealthCheck, body)</code>
+  <pre>Updates a HttpHealthCheck resource in the specified project using the data included in the request.
+
+Args:
+  project: string, Name of the project scoping this request. (required)
+  httpHealthCheck: string, Name of the HttpHealthCheck resource to update. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # 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.
+    "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.
+    "host": "A String", # The value of the host header in the HTTP health check request. If left empty (default value), the public IP on behalf of which this health check is performed will be used.
+    "requestPath": "A String", # The request path of the HTTP health check request. The default value is "/".
+    "unhealthyThreshold": 42, # A so-far healthy VM will be marked unhealthy after this many consecutive failures. The default value is 2.
+    "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.
+  }
+
+
+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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/compute_v1.images.html b/docs/dyn/compute_v1.images.html
new file mode 100644
index 0000000..31674e3
--- /dev/null
+++ b/docs/dyn/compute_v1.images.html
@@ -0,0 +1,397 @@
+<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="compute_v1.html">Compute Engine API</a> . <a href="compute_v1.images.html">images</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(project, image)</a></code></p>
+<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="toc_element">
+  <code><a href="#get">get(project, image)</a></code></p>
+<p class="firstline">Returns the specified image resource.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(project, body)</a></code></p>
+<p class="firstline">Creates an image resource in the specified project using the data included in the request.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves the list of image resources available to the specified 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, image)</code>
+  <pre>Deletes the specified image resource.
+
+Args:
+  project: string, Name of the project scoping 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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</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.
+
+Args:
+  project: string, Name of the project scoping this request. (required)
+  image: string, Image name. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # 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.
+  "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.
+}
+
+
+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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, image)</code>
+  <pre>Returns the specified image resource.
+
+Args:
+  project: string, Name of the project scoping 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.
+      "description": "A String", # Textual description of the resource; provided by the client when the resource is created.
+      "rawDisk": { # The raw disk image parameters.
+        "containerType": "TAR", # 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.
+        "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.
+        "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.
+      },
+      "archiveSizeBytes": "A String", # Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).
+      "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.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(project, body)</code>
+  <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)
+  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.
+    "description": "A String", # Textual description of the resource; provided by the client when the resource is created.
+    "rawDisk": { # The raw disk image parameters.
+      "containerType": "TAR", # 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.
+      "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.
+      "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.
+    },
+    "archiveSizeBytes": "A String", # Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).
+    "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.
+  }
+
+
+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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves the list of image resources available to the specified project.
+
+Args:
+  project: string, Name of the project 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:
+
+    { # Contains a list of disk 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.
+          "description": "A String", # Textual description of the resource; provided by the client when the resource is created.
+          "rawDisk": { # The raw disk image parameters.
+            "containerType": "TAR", # 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.
+            "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.
+            "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.
+          },
+          "archiveSizeBytes": "A String", # Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).
+          "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.
+        },
+    ],
+    "kind": "compute#imageList", # 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/compute_v1.instances.html b/docs/dyn/compute_v1.instances.html
new file mode 100644
index 0000000..0d68325
--- /dev/null
+++ b/docs/dyn/compute_v1.instances.html
@@ -0,0 +1,1240 @@
+<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="compute_v1.html">Compute Engine API</a> . <a href="compute_v1.instances.html">instances</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#addAccessConfig">addAccessConfig(project, zone, instance, networkInterface, body)</a></code></p>
+<p class="firstline">Adds an access config to an instance's network interface.</p>
+<p class="toc_element">
+  <code><a href="#aggregatedList">aggregatedList(project, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">A description of how to use this function</p>
+<p class="toc_element">
+  <code><a href="#aggregatedList_next">aggregatedList_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="#attachDisk">attachDisk(project, zone, instance, body)</a></code></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="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>
+<p class="toc_element">
+  <code><a href="#detachDisk">detachDisk(project, zone, instance, deviceName)</a></code></p>
+<p class="firstline">Detaches a disk from an instance.</p>
+<p class="toc_element">
+  <code><a href="#get">get(project, zone, instance)</a></code></p>
+<p class="firstline">Returns the specified instance resource.</p>
+<p class="toc_element">
+  <code><a href="#getSerialPortOutput">getSerialPortOutput(project, zone, instance)</a></code></p>
+<p class="firstline">Returns the specified instance's serial port output.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(project, zone, body)</a></code></p>
+<p class="firstline">Creates an instance resource 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 instance 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="#reset">reset(project, zone, instance)</a></code></p>
+<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="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>
+<p class="toc_element">
+  <code><a href="#setScheduling">setScheduling(project, zone, instance, body)</a></code></p>
+<p class="firstline">Sets an instance's scheduling options.</p>
+<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>
+<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)
+  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.
+  "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.
+}
+
+
+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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="aggregatedList">aggregatedList(project, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>A description of how to use this function
+
+Args:
+  project: string, Name of the project 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": { # 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.
+            "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.
+                "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.
+              },
+            "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 (Mutually exclusive with 'source', can currently only be specified on the boot disk). # 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.
+                  },
+                  "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".
+                  "type": "A String", # Type of the disk, either "SCRATCH" or "PERSISTENT". Note that persistent disks must be created before you can specify them here.
+                },
+            ],
+            "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.
+            },
+            "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.
+              { # A 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.
+              },
+            ],
+            "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.
+              { # 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.
+                  { # 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.
+                    "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.
+                  },
+                ],
+                "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.
+              },
+            ],
+            "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.
+              "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.
+            },
+          },
+        ],
+        "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.
+            {
+              "value": "A String", # A warning data value corresponding to the key.
+              "key": "A String", # 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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="aggregatedList_next">aggregatedList_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="attachDisk">attachDisk(project, zone, instance, body)</code>
+  <pre>Attaches a disk resource to an instance.
+
+Args:
+  project: string, Project name. (required)
+  zone: string, Name of the zone scoping 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 (Mutually exclusive with 'source', can currently only be specified on the boot disk). # 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.
+    },
+    "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".
+    "type": "A String", # Type of the disk, either "SCRATCH" or "PERSISTENT". Note that persistent disks must be created before you can specify them here.
+  }
+
+
+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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(project, zone, instance)</code>
+  <pre>Deletes 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)
+  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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="deleteAccessConfig">deleteAccessConfig(project, zone, instance, accessConfig, networkInterface)</code>
+  <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)
+
+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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="detachDisk">detachDisk(project, zone, instance, deviceName)</code>
+  <pre>Detaches a disk from an instance.
+
+Args:
+  project: string, Project name. (required)
+  zone: string, Name of the zone scoping this request. (required)
+  instance: string, Instance name. (required)
+  deviceName: string, Disk device name to detach. (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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, zone, instance)</code>
+  <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)
+  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.
+    "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.
+        "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.
+      },
+    "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 (Mutually exclusive with 'source', can currently only be specified on the boot disk). # 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.
+          },
+          "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".
+          "type": "A String", # Type of the disk, either "SCRATCH" or "PERSISTENT". Note that persistent disks must be created before you can specify them here.
+        },
+    ],
+    "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.
+    },
+    "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.
+      { # A 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.
+      },
+    ],
+    "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.
+      { # 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.
+          { # 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.
+            "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.
+          },
+        ],
+        "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.
+      },
+    ],
+    "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.
+      "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.
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getSerialPortOutput">getSerialPortOutput(project, zone, instance)</code>
+  <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)
+  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.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(project, zone, body)</code>
+  <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)
+  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.
+  "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.
+      "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.
+    },
+  "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 (Mutually exclusive with 'source', can currently only be specified on the boot disk). # 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.
+        },
+        "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".
+        "type": "A String", # Type of the disk, either "SCRATCH" or "PERSISTENT". Note that persistent disks must be created before you can specify them here.
+      },
+  ],
+  "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.
+  },
+  "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.
+    { # A 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.
+    },
+  ],
+  "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.
+    { # 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.
+        { # 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.
+          "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.
+        },
+      ],
+      "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.
+    },
+  ],
+  "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.
+    "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.
+  },
+}
+
+
+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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</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 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:
+
+    { # 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.
+        "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.
+            "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.
+          },
+        "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 (Mutually exclusive with 'source', can currently only be specified on the boot disk). # 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.
+              },
+              "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".
+              "type": "A String", # Type of the disk, either "SCRATCH" or "PERSISTENT". Note that persistent disks must be created before you can specify them here.
+            },
+        ],
+        "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.
+        },
+        "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.
+          { # A 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.
+          },
+        ],
+        "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.
+          { # 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.
+              { # 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.
+                "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.
+              },
+            ],
+            "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.
+          },
+        ],
+        "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.
+          "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#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).
+  }</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="reset">reset(project, zone, instance)</code>
+  <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)
+  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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</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
+
+Args:
+  project: string, Project name. (required)
+  zone: string, Name of the zone scoping this request. (required)
+  instance: string, 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)
+
+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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setMetadata">setMetadata(project, zone, instance, body)</code>
+  <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)
+  instance: string, Name of the instance scoping this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A metadata key/value entry.
+  "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.
+}
+
+
+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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setScheduling">setScheduling(project, zone, instance, body)</code>
+  <pre>Sets an instance's scheduling options.
+
+Args:
+  project: string, Project name. (required)
+  zone: string, Name of the zone scoping 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.
+}
+
+
+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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setTags">setTags(project, zone, instance, body)</code>
+  <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)
+  instance: string, Name of the instance scoping this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A set of instance tags.
+    "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.
+  }
+
+
+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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/compute_v1.machineTypes.html b/docs/dyn/compute_v1.machineTypes.html
new file mode 100644
index 0000000..a4dfcfc
--- /dev/null
+++ b/docs/dyn/compute_v1.machineTypes.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="compute_v1.html">Compute Engine API</a> . <a href="compute_v1.machineTypes.html">machineTypes</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#aggregatedList">aggregatedList(project, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves the list of machine type resources grouped by scope.</p>
+<p class="toc_element">
+  <code><a href="#aggregatedList_next">aggregatedList_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="#get">get(project, zone, machineType)</a></code></p>
+<p class="firstline">Returns the specified machine type 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 machine type resources available to the specified 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="aggregatedList">aggregatedList(project, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves the list of machine type resources grouped by scope.
+
+Args:
+  project: string, Name of the project 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": { # 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.
+            "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.
+              "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.
+              "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.
+            },
+            "memoryMb": 42, # Physical memory assigned to the instance, defined in MB.
+            "scratchDisks": [ # 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.
+          },
+        ],
+        "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.
+            {
+              "value": "A String", # A warning data value corresponding to the key.
+              "key": "A String", # 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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="aggregatedList_next">aggregatedList_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="get">get(project, zone, machineType)</code>
+  <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)
+  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.
+    "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.
+      "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.
+      "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.
+    },
+    "memoryMb": 42, # Physical memory assigned to the instance, defined in MB.
+    "scratchDisks": [ # 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.
+  }</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 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)
+  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:
+
+    { # 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.
+        "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.
+          "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.
+          "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.
+        },
+        "memoryMb": 42, # Physical memory assigned to the instance, defined in MB.
+        "scratchDisks": [ # 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.
+      },
+    ],
+    "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).
+  }</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.networks.html b/docs/dyn/compute_v1.networks.html
new file mode 100644
index 0000000..c2ee093
--- /dev/null
+++ b/docs/dyn/compute_v1.networks.html
@@ -0,0 +1,288 @@
+<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="compute_v1.html">Compute Engine API</a> . <a href="compute_v1.networks.html">networks</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(project, network)</a></code></p>
+<p class="firstline">Deletes the specified network resource.</p>
+<p class="toc_element">
+  <code><a href="#get">get(project, network)</a></code></p>
+<p class="firstline">Returns the specified network resource.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(project, body)</a></code></p>
+<p class="firstline">Creates a network resource in the specified project using the data included in the request.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves the list of network resources available to the specified 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, network)</code>
+  <pre>Deletes the specified network resource.
+
+Args:
+  project: string, Name of the project scoping 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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, network)</code>
+  <pre>Returns the specified network resource.
+
+Args:
+  project: string, Name of the project scoping 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.
+      "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.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(project, body)</code>
+  <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)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A network resource.
+    "kind": "compute#network", # Type of the resource.
+    "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.
+  }
+
+
+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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves the list of network resources available to the specified project.
+
+Args:
+  project: string, Name of the project 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:
+
+    { # Contains a list of network resources.
+    "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
+    "items": [ # The network resources.
+      { # A network resource.
+          "kind": "compute#network", # Type of the resource.
+          "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.
+        },
+    ],
+    "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).
+  }</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.projects.html b/docs/dyn/compute_v1.projects.html
new file mode 100644
index 0000000..fdfb130
--- /dev/null
+++ b/docs/dyn/compute_v1.projects.html
@@ -0,0 +1,190 @@
+<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="compute_v1.html">Compute Engine API</a> . <a href="compute_v1.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <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="#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>
+<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)
+
+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.
+    "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.
+      "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.
+    },
+    "quotas": [ # 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.
+      },
+    ],
+    "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.
+  }</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)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A metadata key/value entry.
+  "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.
+}
+
+
+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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/compute_v1.regionOperations.html b/docs/dyn/compute_v1.regionOperations.html
new file mode 100644
index 0000000..e193ed3
--- /dev/null
+++ b/docs/dyn/compute_v1.regionOperations.html
@@ -0,0 +1,239 @@
+<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="compute_v1.html">Compute Engine API</a> . <a href="compute_v1.regionOperations.html">regionOperations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(project, region, operation)</a></code></p>
+<p class="firstline">Deletes the specified region-specific operation resource.</p>
+<p class="toc_element">
+  <code><a href="#get">get(project, region, operation)</a></code></p>
+<p class="firstline">Retrieves the specified region-specific operation resource.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, region, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves the list of operation resources contained within the specified region.</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, region, operation)</code>
+  <pre>Deletes the specified region-specific operation resource.
+
+Args:
+  project: string, Name of the project scoping this request. (required)
+  region: string, Name of the region scoping this request. (required)
+  operation: string, Name of the operation resource to delete. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, region, operation)</code>
+  <pre>Retrieves the specified region-specific operation resource.
+
+Args:
+  project: string, Name of the project scoping this request. (required)
+  region: 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", # 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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, region, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves the list of operation 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)
+  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:
+
+    { # Contains a list of operation resources.
+    "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", # 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).
+          {
+            "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.
+              {
+                "value": "A String", # A warning data value corresponding to the key.
+                "key": "A String", # 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.
+            {
+              "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.
+            },
+          ],
+        },
+        "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).
+      },
+    ],
+    "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).
+  }</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.regions.html b/docs/dyn/compute_v1.regions.html
new file mode 100644
index 0000000..cf0ee5a
--- /dev/null
+++ b/docs/dyn/compute_v1.regions.html
@@ -0,0 +1,189 @@
+<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="compute_v1.html">Compute Engine API</a> . <a href="compute_v1.regions.html">regions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(project, region)</a></code></p>
+<p class="firstline">Returns the specified region resource.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves the list of region resources available to the specified 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, region)</code>
+  <pre>Returns the specified region resource.
+
+Args:
+  project: string, Name of the project scoping 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.
+      "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.
+      "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.
+    },
+    "quotas": [ # 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.
+      },
+    ],
+    "zones": [ # A list of zones homed 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.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves the list of region resources available to the specified project.
+
+Args:
+  project: string, Name of the project 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:
+
+    { # Contains a list of region resources.
+    "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
+    "items": [ # The 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.
+          "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.
+          "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.
+        },
+        "quotas": [ # 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.
+          },
+        ],
+        "zones": [ # A list of zones homed 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.
+      },
+    ],
+    "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).
+  }</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.routes.html b/docs/dyn/compute_v1.routes.html
new file mode 100644
index 0000000..1ef258f
--- /dev/null
+++ b/docs/dyn/compute_v1.routes.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="compute_v1.html">Compute Engine API</a> . <a href="compute_v1.routes.html">routes</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(project, route)</a></code></p>
+<p class="firstline">Deletes the specified route resource.</p>
+<p class="toc_element">
+  <code><a href="#get">get(project, route)</a></code></p>
+<p class="firstline">Returns the specified route resource.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(project, body)</a></code></p>
+<p class="firstline">Creates a route resource in the specified project using the data included in the request.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves the list of route resources available to the specified 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, route)</code>
+  <pre>Deletes the specified route resource.
+
+Args:
+  project: string, Name of the project scoping this request. (required)
+  route: string, Name of the route 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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, route)</code>
+  <pre>Returns the specified route resource.
+
+Args:
+  project: string, Name of the project scoping this request. (required)
+  route: string, Name of the route resource to return. (required)
+
+Returns:
+  An object of the form:
+
+    { # 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.
+      "kind": "compute#route", # Type of 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.
+      "tags": [ # A list of instance tags to which this route applies.
+        "A String",
+      ],
+      "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.
+            {
+              "value": "A String", # A warning data value corresponding to the key.
+              "key": "A String", # A key for the warning data.
+            },
+          ],
+        },
+      ],
+      "nextHopNetwork": "A String", # The URL of the local network if it should handle matching packets.
+      "network": "A String", # URL of the network to which this route is applied; provided by the client when the route is created.
+      "selfLink": "A String", # Server defined URL for the resource (output only).
+      "destRange": "A String", # Which packets does this route apply to?
+      "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).
+      "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets.
+      "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(project, body)</code>
+  <pre>Creates a route resource in the specified project using the data included in the request.
+
+Args:
+  project: string, Name of the project scoping this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # 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.
+    "kind": "compute#route", # Type of 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.
+    "tags": [ # A list of instance tags to which this route applies.
+      "A String",
+    ],
+    "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # A key for the warning data.
+          },
+        ],
+      },
+    ],
+    "nextHopNetwork": "A String", # The URL of the local network if it should handle matching packets.
+    "network": "A String", # URL of the network to which this route is applied; provided by the client when the route is created.
+    "selfLink": "A String", # Server defined URL for the resource (output only).
+    "destRange": "A String", # Which packets does this route apply to?
+    "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).
+    "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets.
+    "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
+  }
+
+
+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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves the list of route resources available to the specified project.
+
+Args:
+  project: string, Name of the project 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:
+
+    { # Contains a list of route resources.
+    "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
+    "items": [ # The 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.
+          "kind": "compute#route", # Type of 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.
+          "tags": [ # A list of instance tags to which this route applies.
+            "A String",
+          ],
+          "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.
+                {
+                  "value": "A String", # A warning data value corresponding to the key.
+                  "key": "A String", # A key for the warning data.
+                },
+              ],
+            },
+          ],
+          "nextHopNetwork": "A String", # The URL of the local network if it should handle matching packets.
+          "network": "A String", # URL of the network to which this route is applied; provided by the client when the route is created.
+          "selfLink": "A String", # Server defined URL for the resource (output only).
+          "destRange": "A String", # Which packets does this route apply to?
+          "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).
+          "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets.
+          "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
+        },
+    ],
+    "kind": "compute#routeList", # 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/compute_v1.snapshots.html b/docs/dyn/compute_v1.snapshots.html
new file mode 100644
index 0000000..f82b801
--- /dev/null
+++ b/docs/dyn/compute_v1.snapshots.html
@@ -0,0 +1,224 @@
+<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="compute_v1.html">Compute Engine API</a> . <a href="compute_v1.snapshots.html">snapshots</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(project, snapshot)</a></code></p>
+<p class="firstline">Deletes the specified persistent disk snapshot resource.</p>
+<p class="toc_element">
+  <code><a href="#get">get(project, snapshot)</a></code></p>
+<p class="firstline">Returns the specified persistent disk snapshot resource.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves the list of persistent disk snapshot resources contained within the specified 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, snapshot)</code>
+  <pre>Deletes the specified persistent disk snapshot resource.
+
+Args:
+  project: string, Name of the project scoping this request. (required)
+  snapshot: string, Name of the persistent disk snapshot 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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, snapshot)</code>
+  <pre>Returns the specified persistent disk snapshot resource.
+
+Args:
+  project: string, Name of the project scoping this request. (required)
+  snapshot: string, Name of the persistent disk snapshot resource to return. (required)
+
+Returns:
+  An object of the form:
+
+    { # A persistent disk snapshot resource.
+      "status": "A String", # The status of the persistent disk snapshot (output only).
+      "kind": "compute#snapshot", # Type of the resource.
+      "storageBytes": "A String", # A size of the the storage used by the snapshot. As snapshots share storage this number is expected to change with snapshot creation/deletion.
+      "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
+      "sourceDisk": "A String", # The source disk used to create this snapshot. Once the source disk has been deleted from the system, this field will be cleared, and will not be set even if a disk with the same name has been re-created (output only).
+      "storageBytesStatus": "A String", # An indicator whether storageBytes is in a stable state, or it is being adjusted as a result of shared storage reallocation.
+      "sourceDiskId": "A String", # The 'id' value of the disk used to create this snapshot. This value may be used to determine whether the snapshot was taken from the current or a previous instance of a given disk name.
+      "diskSizeGb": "A String", # Size of the persistent disk snapshot, specified 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; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves the list of persistent disk snapshot resources contained within the specified project.
+
+Args:
+  project: string, Name of the project 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:
+
+    { # 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.
+      { # A persistent disk snapshot resource.
+          "status": "A String", # The status of the persistent disk snapshot (output only).
+          "kind": "compute#snapshot", # Type of the resource.
+          "storageBytes": "A String", # A size of the the storage used by the snapshot. As snapshots share storage this number is expected to change with snapshot creation/deletion.
+          "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
+          "sourceDisk": "A String", # The source disk used to create this snapshot. Once the source disk has been deleted from the system, this field will be cleared, and will not be set even if a disk with the same name has been re-created (output only).
+          "storageBytesStatus": "A String", # An indicator whether storageBytes is in a stable state, or it is being adjusted as a result of shared storage reallocation.
+          "sourceDiskId": "A String", # The 'id' value of the disk used to create this snapshot. This value may be used to determine whether the snapshot was taken from the current or a previous instance of a given disk name.
+          "diskSizeGb": "A String", # Size of the persistent disk snapshot, specified 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; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
+        },
+    ],
+    "kind": "compute#snapshotList", # 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/compute_v1.targetInstances.html b/docs/dyn/compute_v1.targetInstances.html
new file mode 100644
index 0000000..37b96bc
--- /dev/null
+++ b/docs/dyn/compute_v1.targetInstances.html
@@ -0,0 +1,363 @@
+<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="compute_v1.html">Compute Engine API</a> . <a href="compute_v1.targetInstances.html">targetInstances</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#aggregatedList">aggregatedList(project, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves the list of target instances grouped by scope.</p>
+<p class="toc_element">
+  <code><a href="#aggregatedList_next">aggregatedList_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="#delete">delete(project, zone, targetInstance)</a></code></p>
+<p class="firstline">Deletes the specified TargetInstance resource.</p>
+<p class="toc_element">
+  <code><a href="#get">get(project, zone, targetInstance)</a></code></p>
+<p class="firstline">Returns the specified TargetInstance resource.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(project, zone, body)</a></code></p>
+<p class="firstline">Creates a TargetInstance resource in the specified project and zone 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 TargetInstance resources available to the specified project and 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="aggregatedList">aggregatedList(project, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves the list of target instances grouped by scope.
+
+Args:
+  project: string, Name of the project 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": { # A map of scoped target instance lists.
+      "a_key": { # Name of the scope containing this set of target instances.
+        "targetInstances": [ # List of target instances contained in this scope.
+          { # 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.
+              "zone": "A String", # URL of the zone where the target instance resides (output only).
+              "natPolicy": "A String", # NAT option controlling how IPs are NAT'ed to the VM. Currently only NO_NAT (default value) is supported.
+              "instance": "A String", # The URL to the instance that terminates the relevant traffic.
+              "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.
+            },
+        ],
+        "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.
+            {
+              "value": "A String", # A warning data value corresponding to the key.
+              "key": "A String", # A key for the warning data.
+            },
+          ],
+        },
+      },
+    },
+    "kind": "compute#targetInstanceAggregatedList", # 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="aggregatedList_next">aggregatedList_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="delete">delete(project, zone, targetInstance)</code>
+  <pre>Deletes the specified TargetInstance resource.
+
+Args:
+  project: string, Name of the project scoping this request. (required)
+  zone: string, Name of the zone scoping this request. (required)
+  targetInstance: string, Name of the TargetInstance 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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, zone, targetInstance)</code>
+  <pre>Returns the specified TargetInstance resource.
+
+Args:
+  project: string, Name of the project scoping this request. (required)
+  zone: string, Name of the zone scoping this request. (required)
+  targetInstance: string, Name of the TargetInstance resource to return. (required)
+
+Returns:
+  An object of the form:
+
+    { # 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.
+      "zone": "A String", # URL of the zone where the target instance resides (output only).
+      "natPolicy": "A String", # NAT option controlling how IPs are NAT'ed to the VM. Currently only NO_NAT (default value) is supported.
+      "instance": "A String", # The URL to the instance that terminates the relevant traffic.
+      "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.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(project, zone, body)</code>
+  <pre>Creates a TargetInstance resource in the specified project and zone 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)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # 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.
+    "zone": "A String", # URL of the zone where the target instance resides (output only).
+    "natPolicy": "A String", # NAT option controlling how IPs are NAT'ed to the VM. Currently only NO_NAT (default value) is supported.
+    "instance": "A String", # The URL to the instance that terminates the relevant traffic.
+    "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.
+  }
+
+
+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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</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 TargetInstance resources available to the specified project and 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:
+
+    { # Contains a list of TargetInstance resources.
+    "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
+    "items": [ # The 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.
+          "zone": "A String", # URL of the zone where the target instance resides (output only).
+          "natPolicy": "A String", # NAT option controlling how IPs are NAT'ed to the VM. Currently only NO_NAT (default value) is supported.
+          "instance": "A String", # The URL to the instance that terminates the relevant traffic.
+          "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.
+        },
+    ],
+    "kind": "compute#targetInstanceList", # 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/compute_v1.targetPools.html b/docs/dyn/compute_v1.targetPools.html
new file mode 100644
index 0000000..0c005f8
--- /dev/null
+++ b/docs/dyn/compute_v1.targetPools.html
@@ -0,0 +1,809 @@
+<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="compute_v1.html">Compute Engine API</a> . <a href="compute_v1.targetPools.html">targetPools</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#addHealthCheck">addHealthCheck(project, region, targetPool, body)</a></code></p>
+<p class="firstline">Adds health check URL to targetPool.</p>
+<p class="toc_element">
+  <code><a href="#addInstance">addInstance(project, region, targetPool, body)</a></code></p>
+<p class="firstline">Adds instance url to targetPool.</p>
+<p class="toc_element">
+  <code><a href="#aggregatedList">aggregatedList(project, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves the list of target pools grouped by scope.</p>
+<p class="toc_element">
+  <code><a href="#aggregatedList_next">aggregatedList_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="#delete">delete(project, region, targetPool)</a></code></p>
+<p class="firstline">Deletes the specified TargetPool resource.</p>
+<p class="toc_element">
+  <code><a href="#get">get(project, region, targetPool)</a></code></p>
+<p class="firstline">Returns the specified TargetPool resource.</p>
+<p class="toc_element">
+  <code><a href="#getHealth">getHealth(project, region, targetPool, body)</a></code></p>
+<p class="firstline">Gets the most recent health check results for each IP for the given instance that is referenced by given TargetPool.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(project, region, body)</a></code></p>
+<p class="firstline">Creates a TargetPool resource in the specified project and region using the data included in the request.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, region, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves the list of TargetPool resources available to the specified project and region.</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="#removeHealthCheck">removeHealthCheck(project, region, targetPool, body)</a></code></p>
+<p class="firstline">Removes health check URL from targetPool.</p>
+<p class="toc_element">
+  <code><a href="#removeInstance">removeInstance(project, region, targetPool, body)</a></code></p>
+<p class="firstline">Removes instance URL from targetPool.</p>
+<p class="toc_element">
+  <code><a href="#setBackup">setBackup(project, region, targetPool, body, failoverRatio=None)</a></code></p>
+<p class="firstline">Changes backup pool configurations.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="addHealthCheck">addHealthCheck(project, region, targetPool, body)</code>
+  <pre>Adds health check URL to targetPool.
+
+Args:
+  project: string, A parameter (required)
+  region: string, Name of the region scoping this request. (required)
+  targetPool: string, Name of the TargetPool resource to which health_check_url is to be added. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "healthChecks": [ # Health check URLs to be added to targetPool.
+      {
+        "healthCheck": "A String",
+      },
+    ],
+  }
+
+
+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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="addInstance">addInstance(project, region, targetPool, body)</code>
+  <pre>Adds instance url to targetPool.
+
+Args:
+  project: string, A parameter (required)
+  region: string, Name of the region scoping this request. (required)
+  targetPool: string, Name of the TargetPool resource to which instance_url is to be added. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "instances": [ # URLs of the instances to be added to targetPool.
+      {
+        "instance": "A String",
+      },
+    ],
+  }
+
+
+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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="aggregatedList">aggregatedList(project, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves the list of target pools grouped by scope.
+
+Args:
+  project: string, Name of the project 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": { # 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.
+            {
+              "value": "A String", # A warning data value corresponding to the key.
+              "key": "A String", # A key for the warning data.
+            },
+          ],
+        },
+        "targetPools": [ # List of target pools contained in this scope.
+          { # 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].
+                  #
+                  # If set, 'backupPool' must also be set. They together define the fallback behavior of the primary target pool: if the ratio of the healthy VMs in the primary pool is at or below this number, traffic arriving at the load-balanced IP will be directed to the backup pool.
+                  #
+                  # In case where 'failoverRatio' is not set or all the VMs in the backup pool are unhealthy, the traffic will be directed back to the primary pool in the "force" mode, where traffic will be spread to the healthy VMs with the best effort, or to all VMs when no VM is healthy.
+              "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 target pool resides (output only).
+              "kind": "compute#targetPool", # Type of the resource.
+              "sessionAffinity": "A String", # Sesssion affinity option, must be one of the following values: 'NONE': Connections from the same client IP may go to any VM in the pool; 'CLIENT_IP': Connections from the same client IP will go to the same VM in the pool while that VM remains healthy. 'CLIENT_IP_PROTO': Connections from the same client IP with the same IP protocol will go to the same VM in the pool while that VM remains healthy.
+              "instances": [ # A list of resource URLs to the member VMs serving this pool. They must live in zones contained in the same region as this pool.
+                "A String",
+              ],
+              "backupPool": "A String", # This field is applicable only when the containing target pool is serving a forwarding rule as the primary pool, and its 'failoverRatio' field is properly set to a value between [0, 1].
+                  #
+                  # 'backupPool' and 'failoverRatio' together define the fallback behavior of the primary target pool: if the ratio of the healthy VMs in the primary pool is at or below 'failoverRatio', traffic arriving at the load-balanced IP will be directed to the backup pool.
+                  #
+                  # In case where 'failoverRatio' and 'backupPool' are not set, or all the VMs in the backup pool are unhealthy, the traffic will be directed back to the primary pool in the "force" mode, where traffic will be spread to the healthy VMs with the best effort, or to all VMs when no VM is healthy.
+              "healthChecks": [ # A list of URLs to the HttpHealthCheck resource. A member VM in this pool is considered healthy if and only if all specified health checks pass. An empty list means all member VMs will be considered healthy at all times.
+                "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.
+            },
+        ],
+      },
+    },
+    "kind": "compute#targetPoolAggregatedList", # 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="aggregatedList_next">aggregatedList_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="delete">delete(project, region, targetPool)</code>
+  <pre>Deletes the specified TargetPool resource.
+
+Args:
+  project: string, Name of the project scoping this request. (required)
+  region: string, Name of the region scoping this request. (required)
+  targetPool: string, Name of the TargetPool 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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, region, targetPool)</code>
+  <pre>Returns the specified TargetPool resource.
+
+Args:
+  project: string, Name of the project scoping this request. (required)
+  region: string, Name of the region scoping this request. (required)
+  targetPool: string, Name of the TargetPool resource to return. (required)
+
+Returns:
+  An object of the form:
+
+    { # 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].
+          #
+          # If set, 'backupPool' must also be set. They together define the fallback behavior of the primary target pool: if the ratio of the healthy VMs in the primary pool is at or below this number, traffic arriving at the load-balanced IP will be directed to the backup pool.
+          #
+          # In case where 'failoverRatio' is not set or all the VMs in the backup pool are unhealthy, the traffic will be directed back to the primary pool in the "force" mode, where traffic will be spread to the healthy VMs with the best effort, or to all VMs when no VM is healthy.
+      "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 target pool resides (output only).
+      "kind": "compute#targetPool", # Type of the resource.
+      "sessionAffinity": "A String", # Sesssion affinity option, must be one of the following values: 'NONE': Connections from the same client IP may go to any VM in the pool; 'CLIENT_IP': Connections from the same client IP will go to the same VM in the pool while that VM remains healthy. 'CLIENT_IP_PROTO': Connections from the same client IP with the same IP protocol will go to the same VM in the pool while that VM remains healthy.
+      "instances": [ # A list of resource URLs to the member VMs serving this pool. They must live in zones contained in the same region as this pool.
+        "A String",
+      ],
+      "backupPool": "A String", # This field is applicable only when the containing target pool is serving a forwarding rule as the primary pool, and its 'failoverRatio' field is properly set to a value between [0, 1].
+          #
+          # 'backupPool' and 'failoverRatio' together define the fallback behavior of the primary target pool: if the ratio of the healthy VMs in the primary pool is at or below 'failoverRatio', traffic arriving at the load-balanced IP will be directed to the backup pool.
+          #
+          # In case where 'failoverRatio' and 'backupPool' are not set, or all the VMs in the backup pool are unhealthy, the traffic will be directed back to the primary pool in the "force" mode, where traffic will be spread to the healthy VMs with the best effort, or to all VMs when no VM is healthy.
+      "healthChecks": [ # A list of URLs to the HttpHealthCheck resource. A member VM in this pool is considered healthy if and only if all specified health checks pass. An empty list means all member VMs will be considered healthy at all times.
+        "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.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getHealth">getHealth(project, region, targetPool, body)</code>
+  <pre>Gets the most recent health check results for each IP for the given instance that is referenced by given TargetPool.
+
+Args:
+  project: string, A parameter (required)
+  region: string, Name of the region scoping this request. (required)
+  targetPool: string, Name of the TargetPool resource to which the queried instance belongs. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+  "instance": "A String",
+}
+
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "compute#targetPoolInstanceHealth", # Type of resource.
+    "healthStatus": [
+      {
+        "instance": "A String", # URL of the instance resource.
+        "healthState": "A String", # Health state of the instance.
+        "ipAddress": "A String", # The IP address represented by this resource.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(project, region, body)</code>
+  <pre>Creates a TargetPool resource in the specified project and region 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)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # 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].
+        # 
+        # If set, 'backupPool' must also be set. They together define the fallback behavior of the primary target pool: if the ratio of the healthy VMs in the primary pool is at or below this number, traffic arriving at the load-balanced IP will be directed to the backup pool.
+        # 
+        # In case where 'failoverRatio' is not set or all the VMs in the backup pool are unhealthy, the traffic will be directed back to the primary pool in the "force" mode, where traffic will be spread to the healthy VMs with the best effort, or to all VMs when no VM is healthy.
+    "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 target pool resides (output only).
+    "kind": "compute#targetPool", # Type of the resource.
+    "sessionAffinity": "A String", # Sesssion affinity option, must be one of the following values: 'NONE': Connections from the same client IP may go to any VM in the pool; 'CLIENT_IP': Connections from the same client IP will go to the same VM in the pool while that VM remains healthy. 'CLIENT_IP_PROTO': Connections from the same client IP with the same IP protocol will go to the same VM in the pool while that VM remains healthy.
+    "instances": [ # A list of resource URLs to the member VMs serving this pool. They must live in zones contained in the same region as this pool.
+      "A String",
+    ],
+    "backupPool": "A String", # This field is applicable only when the containing target pool is serving a forwarding rule as the primary pool, and its 'failoverRatio' field is properly set to a value between [0, 1].
+        # 
+        # 'backupPool' and 'failoverRatio' together define the fallback behavior of the primary target pool: if the ratio of the healthy VMs in the primary pool is at or below 'failoverRatio', traffic arriving at the load-balanced IP will be directed to the backup pool.
+        # 
+        # In case where 'failoverRatio' and 'backupPool' are not set, or all the VMs in the backup pool are unhealthy, the traffic will be directed back to the primary pool in the "force" mode, where traffic will be spread to the healthy VMs with the best effort, or to all VMs when no VM is healthy.
+    "healthChecks": [ # A list of URLs to the HttpHealthCheck resource. A member VM in this pool is considered healthy if and only if all specified health checks pass. An empty list means all member VMs will be considered healthy at all times.
+      "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.
+  }
+
+
+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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, region, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves the list of TargetPool resources available to the specified project and region.
+
+Args:
+  project: string, Name of the project scoping 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.
+  filter: string, Optional. Filter expression for filtering listed resources.
+
+Returns:
+  An object of the form:
+
+    { # Contains a list of TargetPool resources.
+    "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
+    "items": [ # The 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].
+              #
+              # If set, 'backupPool' must also be set. They together define the fallback behavior of the primary target pool: if the ratio of the healthy VMs in the primary pool is at or below this number, traffic arriving at the load-balanced IP will be directed to the backup pool.
+              #
+              # In case where 'failoverRatio' is not set or all the VMs in the backup pool are unhealthy, the traffic will be directed back to the primary pool in the "force" mode, where traffic will be spread to the healthy VMs with the best effort, or to all VMs when no VM is healthy.
+          "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 target pool resides (output only).
+          "kind": "compute#targetPool", # Type of the resource.
+          "sessionAffinity": "A String", # Sesssion affinity option, must be one of the following values: 'NONE': Connections from the same client IP may go to any VM in the pool; 'CLIENT_IP': Connections from the same client IP will go to the same VM in the pool while that VM remains healthy. 'CLIENT_IP_PROTO': Connections from the same client IP with the same IP protocol will go to the same VM in the pool while that VM remains healthy.
+          "instances": [ # A list of resource URLs to the member VMs serving this pool. They must live in zones contained in the same region as this pool.
+            "A String",
+          ],
+          "backupPool": "A String", # This field is applicable only when the containing target pool is serving a forwarding rule as the primary pool, and its 'failoverRatio' field is properly set to a value between [0, 1].
+              #
+              # 'backupPool' and 'failoverRatio' together define the fallback behavior of the primary target pool: if the ratio of the healthy VMs in the primary pool is at or below 'failoverRatio', traffic arriving at the load-balanced IP will be directed to the backup pool.
+              #
+              # In case where 'failoverRatio' and 'backupPool' are not set, or all the VMs in the backup pool are unhealthy, the traffic will be directed back to the primary pool in the "force" mode, where traffic will be spread to the healthy VMs with the best effort, or to all VMs when no VM is healthy.
+          "healthChecks": [ # A list of URLs to the HttpHealthCheck resource. A member VM in this pool is considered healthy if and only if all specified health checks pass. An empty list means all member VMs will be considered healthy at all times.
+            "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.
+        },
+    ],
+    "kind": "compute#targetPoolList", # 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="removeHealthCheck">removeHealthCheck(project, region, targetPool, body)</code>
+  <pre>Removes health check URL from targetPool.
+
+Args:
+  project: string, A parameter (required)
+  region: string, Name of the region scoping this request. (required)
+  targetPool: string, Name of the TargetPool resource to which health_check_url is to be removed. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "healthChecks": [ # Health check URLs to be removed from targetPool.
+      {
+        "healthCheck": "A String",
+      },
+    ],
+  }
+
+
+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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="removeInstance">removeInstance(project, region, targetPool, body)</code>
+  <pre>Removes instance URL from targetPool.
+
+Args:
+  project: string, A parameter (required)
+  region: string, Name of the region scoping this request. (required)
+  targetPool: string, Name of the TargetPool resource to which instance_url is to be removed. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "instances": [ # URLs of the instances to be removed from targetPool.
+      {
+        "instance": "A String",
+      },
+    ],
+  }
+
+
+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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setBackup">setBackup(project, region, targetPool, body, failoverRatio=None)</code>
+  <pre>Changes backup pool configurations.
+
+Args:
+  project: string, Name of the project scoping this request. (required)
+  region: string, Name of the region scoping this request. (required)
+  targetPool: string, Name of the TargetPool resource for which the backup is to be set. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "target": "A String",
+  }
+
+  failoverRatio: number, New failoverRatio value for the containing target pool.
+
+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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/compute_v1.zoneOperations.html b/docs/dyn/compute_v1.zoneOperations.html
new file mode 100644
index 0000000..6adeedf
--- /dev/null
+++ b/docs/dyn/compute_v1.zoneOperations.html
@@ -0,0 +1,239 @@
+<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="compute_v1.html">Compute Engine API</a> . <a href="compute_v1.zoneOperations.html">zoneOperations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(project, zone, operation)</a></code></p>
+<p class="firstline">Deletes the specified zone-specific operation resource.</p>
+<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="delete">delete(project, zone, operation)</code>
+  <pre>Deletes 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 delete. (required)
+</pre>
+</div>
+
+<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", # 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).
+      {
+        "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.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # 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.
+        {
+          "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.
+        },
+      ],
+    },
+    "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).
+  }</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:
+
+    { # Contains a list of operation resources.
+    "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", # 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).
+          {
+            "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.
+              {
+                "value": "A String", # A warning data value corresponding to the key.
+                "key": "A String", # 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.
+            {
+              "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.
+            },
+          ],
+        },
+        "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).
+      },
+    ],
+    "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).
+  }</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.zones.html b/docs/dyn/compute_v1.zones.html
new file mode 100644
index 0000000..3c7f08d
--- /dev/null
+++ b/docs/dyn/compute_v1.zones.html
@@ -0,0 +1,187 @@
+<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="compute_v1.html">Compute Engine API</a> . <a href="compute_v1.zones.html">zones</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(project, zone)</a></code></p>
+<p class="firstline">Returns the specified zone resource.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves the list of zone resources available to the specified 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, zone)</code>
+  <pre>Returns the specified zone resource.
+
+Args:
+  project: string, Name of the project scoping 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.
+      {
+        "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.
+      },
+    ],
+    "deprecated": { # Deprecation status for a public resource. # 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.
+      "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.
+    },
+    "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.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves the list of zone resources available to the specified project.
+
+Args:
+  project: string, Name of the project 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:
+
+    { # 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.
+          {
+            "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.
+          },
+        ],
+        "deprecated": { # Deprecation status for a public resource. # 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.
+          "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.
+        },
+        "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.
+      },
+    ],
+    "kind": "compute#zoneList", # 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/coordinate_v1.customFieldDef.html b/docs/dyn/coordinate_v1.customFieldDef.html
new file mode 100644
index 0000000..24dac73
--- /dev/null
+++ b/docs/dyn/coordinate_v1.customFieldDef.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="coordinate_v1.html">Google Maps Coordinate API</a> . <a href="coordinate_v1.customFieldDef.html">customFieldDef</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(teamId)</a></code></p>
+<p class="firstline">Retrieves a list of custom field definitions for a team.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(teamId)</code>
+  <pre>Retrieves a list of custom field definitions for a team.
+
+Args:
+  teamId: string, Team ID (required)
+
+Returns:
+  An object of the form:
+
+    { # Collection of custom field definitions for a team.
+    "items": [ # Collection of custom field definitions in a team.
+      { # Custom field definition.
+        "kind": "coordinate#customFieldDef", # Identifies this object as a custom field definition.
+        "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.
+        "type": "A String", # Custom field type.
+        "id": "A String", # Custom field id.
+      },
+    ],
+    "kind": "coordinate#customFieldDefList", # Identifies this object as a collection of custom field definitions in a team.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/coordinate_v1.html b/docs/dyn/coordinate_v1.html
new file mode 100644
index 0000000..1db6a5e
--- /dev/null
+++ b/docs/dyn/coordinate_v1.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="coordinate_v1.html">Google Maps Coordinate API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="coordinate_v1.customFieldDef.html">customFieldDef()</a></code>
+</p>
+<p class="firstline">Returns the customFieldDef Resource.</p>
+
+<p class="toc_element">
+  <code><a href="coordinate_v1.jobs.html">jobs()</a></code>
+</p>
+<p class="firstline">Returns the jobs Resource.</p>
+
+<p class="toc_element">
+  <code><a href="coordinate_v1.location.html">location()</a></code>
+</p>
+<p class="firstline">Returns the location Resource.</p>
+
+<p class="toc_element">
+  <code><a href="coordinate_v1.schedule.html">schedule()</a></code>
+</p>
+<p class="firstline">Returns the schedule 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>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/coordinate_v1.jobs.html b/docs/dyn/coordinate_v1.jobs.html
new file mode 100644
index 0000000..96ffda4
--- /dev/null
+++ b/docs/dyn/coordinate_v1.jobs.html
@@ -0,0 +1,779 @@
+<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.jobs.html">jobs</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(teamId, jobId)</a></code></p>
+<p class="firstline">Retrieves a job, including all the changes made to the job.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(teamId, address, lat, lng, title, body, customerName=None, assignee=None, customerPhoneNumber=None, note=None, customField=None)</a></code></p>
+<p class="firstline">Inserts a new job. Only the state field of the job should be set.</p>
+<p class="toc_element">
+  <code><a href="#list">list(teamId, pageToken=None, minModifiedTimestampMs=None, maxResults=None)</a></code></p>
+<p class="firstline">Retrieves jobs created or modified since the given timestamp.</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(teamId, jobId, body, customerName=None, assignee=None, customerPhoneNumber=None, lng=None, note=None, title=None, progress=None, address=None, lat=None, customField=None)</a></code></p>
+<p class="firstline">Updates a job. Fields that are set in the job state will be updated. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(teamId, jobId, body, customerName=None, assignee=None, customerPhoneNumber=None, lng=None, note=None, title=None, progress=None, address=None, lat=None, customField=None)</a></code></p>
+<p class="firstline">Updates a job. Fields that are set in the job state will be updated.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(teamId, jobId)</code>
+  <pre>Retrieves a job, including all the changes made to the job.
+
+Args:
+  teamId: string, Team ID (required)
+  jobId: string, Job number (required)
+
+Returns:
+  An object of the form:
+
+    { # A job.
+      "kind": "coordinate#job", # Identifies this object as a job.
+      "jobChange": [ # List of job changes since it was created. The first change corresponds to the state of the job when it was created.
+        { # Change to a job. For example assigning the job to a different worker.
+          "timestamp": "A String", # Time at which this change was applied.
+          "kind": "coordinate#jobChange", # Identifies this object as a job change.
+          "state": { # Current state of a job. # Change applied to the job. Only the fields that were changed are set.
+            "kind": "coordinate#jobState", # Identifies this object as a job state.
+            "customerName": "A String", # Customer name.
+            "title": "A String", # Job title.
+            "note": [ # Note added to the job.
+              "A String",
+            ],
+            "assignee": "A String", # Email address of the assignee.
+            "customerPhoneNumber": "A String", # Customer phone number.
+            "location": { # Location of a job. # Job location.
+              "lat": 3.14, # Latitude.
+              "kind": "coordinate#location", # Identifies this object as a location.
+              "addressLine": [ # Address.
+                "A String",
+              ],
+              "lng": 3.14, # Longitude.
+            },
+            "progress": "A String", # Job progress.
+            "customFields": { # Collection of custom fields. # Custom fields.
+              "kind": "coordinate#customFields", # Identifies this object as a collection of custom fields.
+              "customField": [ # Collection of custom fields.
+                { # Custom field.
+                  "kind": "coordinate#customField", # Identifies this object as a custom field.
+                  "customFieldId": "A String", # Custom field id.
+                  "value": "A String", # Custom field value.
+                },
+              ],
+            },
+          },
+        },
+      ],
+      "id": "A String", # Job id.
+      "state": { # Current state of a job. # Current job state.
+        "kind": "coordinate#jobState", # Identifies this object as a job state.
+        "customerName": "A String", # Customer name.
+        "title": "A String", # Job title.
+        "note": [ # Note added to the job.
+          "A String",
+        ],
+        "assignee": "A String", # Email address of the assignee.
+        "customerPhoneNumber": "A String", # Customer phone number.
+        "location": { # Location of a job. # Job location.
+          "lat": 3.14, # Latitude.
+          "kind": "coordinate#location", # Identifies this object as a location.
+          "addressLine": [ # Address.
+            "A String",
+          ],
+          "lng": 3.14, # Longitude.
+        },
+        "progress": "A String", # Job progress.
+        "customFields": { # Collection of custom fields. # Custom fields.
+          "kind": "coordinate#customFields", # Identifies this object as a collection of custom fields.
+          "customField": [ # Collection of custom fields.
+            { # Custom field.
+              "kind": "coordinate#customField", # Identifies this object as a custom field.
+              "customFieldId": "A String", # Custom field id.
+              "value": "A String", # Custom field value.
+            },
+          ],
+        },
+      },
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(teamId, address, lat, lng, title, body, customerName=None, assignee=None, customerPhoneNumber=None, note=None, customField=None)</code>
+  <pre>Inserts a new job. Only the state field of the job should be set.
+
+Args:
+  teamId: string, Team ID (required)
+  address: string, Job address as newline (Unix) separated string (required)
+  lat: number, The latitude coordinate of this job's location. (required)
+  lng: number, The longitude coordinate of this job's location. (required)
+  title: string, Job title (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A job.
+    "kind": "coordinate#job", # Identifies this object as a job.
+    "jobChange": [ # List of job changes since it was created. The first change corresponds to the state of the job when it was created.
+      { # Change to a job. For example assigning the job to a different worker.
+        "timestamp": "A String", # Time at which this change was applied.
+        "kind": "coordinate#jobChange", # Identifies this object as a job change.
+        "state": { # Current state of a job. # Change applied to the job. Only the fields that were changed are set.
+          "kind": "coordinate#jobState", # Identifies this object as a job state.
+          "customerName": "A String", # Customer name.
+          "title": "A String", # Job title.
+          "note": [ # Note added to the job.
+            "A String",
+          ],
+          "assignee": "A String", # Email address of the assignee.
+          "customerPhoneNumber": "A String", # Customer phone number.
+          "location": { # Location of a job. # Job location.
+            "lat": 3.14, # Latitude.
+            "kind": "coordinate#location", # Identifies this object as a location.
+            "addressLine": [ # Address.
+              "A String",
+            ],
+            "lng": 3.14, # Longitude.
+          },
+          "progress": "A String", # Job progress.
+          "customFields": { # Collection of custom fields. # Custom fields.
+            "kind": "coordinate#customFields", # Identifies this object as a collection of custom fields.
+            "customField": [ # Collection of custom fields.
+              { # Custom field.
+                "kind": "coordinate#customField", # Identifies this object as a custom field.
+                "customFieldId": "A String", # Custom field id.
+                "value": "A String", # Custom field value.
+              },
+            ],
+          },
+        },
+      },
+    ],
+    "id": "A String", # Job id.
+    "state": { # Current state of a job. # Current job state.
+      "kind": "coordinate#jobState", # Identifies this object as a job state.
+      "customerName": "A String", # Customer name.
+      "title": "A String", # Job title.
+      "note": [ # Note added to the job.
+        "A String",
+      ],
+      "assignee": "A String", # Email address of the assignee.
+      "customerPhoneNumber": "A String", # Customer phone number.
+      "location": { # Location of a job. # Job location.
+        "lat": 3.14, # Latitude.
+        "kind": "coordinate#location", # Identifies this object as a location.
+        "addressLine": [ # Address.
+          "A String",
+        ],
+        "lng": 3.14, # Longitude.
+      },
+      "progress": "A String", # Job progress.
+      "customFields": { # Collection of custom fields. # Custom fields.
+        "kind": "coordinate#customFields", # Identifies this object as a collection of custom fields.
+        "customField": [ # Collection of custom fields.
+          { # Custom field.
+            "kind": "coordinate#customField", # Identifies this object as a custom field.
+            "customFieldId": "A String", # Custom field id.
+            "value": "A String", # Custom field value.
+          },
+        ],
+      },
+    },
+  }
+
+  customerName: string, Customer name
+  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)
+
+Returns:
+  An object of the form:
+
+    { # A job.
+      "kind": "coordinate#job", # Identifies this object as a job.
+      "jobChange": [ # List of job changes since it was created. The first change corresponds to the state of the job when it was created.
+        { # Change to a job. For example assigning the job to a different worker.
+          "timestamp": "A String", # Time at which this change was applied.
+          "kind": "coordinate#jobChange", # Identifies this object as a job change.
+          "state": { # Current state of a job. # Change applied to the job. Only the fields that were changed are set.
+            "kind": "coordinate#jobState", # Identifies this object as a job state.
+            "customerName": "A String", # Customer name.
+            "title": "A String", # Job title.
+            "note": [ # Note added to the job.
+              "A String",
+            ],
+            "assignee": "A String", # Email address of the assignee.
+            "customerPhoneNumber": "A String", # Customer phone number.
+            "location": { # Location of a job. # Job location.
+              "lat": 3.14, # Latitude.
+              "kind": "coordinate#location", # Identifies this object as a location.
+              "addressLine": [ # Address.
+                "A String",
+              ],
+              "lng": 3.14, # Longitude.
+            },
+            "progress": "A String", # Job progress.
+            "customFields": { # Collection of custom fields. # Custom fields.
+              "kind": "coordinate#customFields", # Identifies this object as a collection of custom fields.
+              "customField": [ # Collection of custom fields.
+                { # Custom field.
+                  "kind": "coordinate#customField", # Identifies this object as a custom field.
+                  "customFieldId": "A String", # Custom field id.
+                  "value": "A String", # Custom field value.
+                },
+              ],
+            },
+          },
+        },
+      ],
+      "id": "A String", # Job id.
+      "state": { # Current state of a job. # Current job state.
+        "kind": "coordinate#jobState", # Identifies this object as a job state.
+        "customerName": "A String", # Customer name.
+        "title": "A String", # Job title.
+        "note": [ # Note added to the job.
+          "A String",
+        ],
+        "assignee": "A String", # Email address of the assignee.
+        "customerPhoneNumber": "A String", # Customer phone number.
+        "location": { # Location of a job. # Job location.
+          "lat": 3.14, # Latitude.
+          "kind": "coordinate#location", # Identifies this object as a location.
+          "addressLine": [ # Address.
+            "A String",
+          ],
+          "lng": 3.14, # Longitude.
+        },
+        "progress": "A String", # Job progress.
+        "customFields": { # Collection of custom fields. # Custom fields.
+          "kind": "coordinate#customFields", # Identifies this object as a collection of custom fields.
+          "customField": [ # Collection of custom fields.
+            { # Custom field.
+              "kind": "coordinate#customField", # Identifies this object as a custom field.
+              "customFieldId": "A String", # Custom field id.
+              "value": "A String", # Custom field value.
+            },
+          ],
+        },
+      },
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(teamId, pageToken=None, minModifiedTimestampMs=None, maxResults=None)</code>
+  <pre>Retrieves jobs created or modified since the given timestamp.
+
+Args:
+  teamId: string, Team ID (required)
+  pageToken: string, Continuation token
+  minModifiedTimestampMs: string, Minimum time a job was modified in milliseconds since epoch.
+  maxResults: integer, Maximum number of results to return in one page.
+
+Returns:
+  An object of the form:
+
+    { # Response from a List Jobs request.
+    "nextPageToken": "A String", # A token to provide to get the next page of results.
+    "items": [ # Jobs in the collection.
+      { # A job.
+          "kind": "coordinate#job", # Identifies this object as a job.
+          "jobChange": [ # List of job changes since it was created. The first change corresponds to the state of the job when it was created.
+            { # Change to a job. For example assigning the job to a different worker.
+              "timestamp": "A String", # Time at which this change was applied.
+              "kind": "coordinate#jobChange", # Identifies this object as a job change.
+              "state": { # Current state of a job. # Change applied to the job. Only the fields that were changed are set.
+                "kind": "coordinate#jobState", # Identifies this object as a job state.
+                "customerName": "A String", # Customer name.
+                "title": "A String", # Job title.
+                "note": [ # Note added to the job.
+                  "A String",
+                ],
+                "assignee": "A String", # Email address of the assignee.
+                "customerPhoneNumber": "A String", # Customer phone number.
+                "location": { # Location of a job. # Job location.
+                  "lat": 3.14, # Latitude.
+                  "kind": "coordinate#location", # Identifies this object as a location.
+                  "addressLine": [ # Address.
+                    "A String",
+                  ],
+                  "lng": 3.14, # Longitude.
+                },
+                "progress": "A String", # Job progress.
+                "customFields": { # Collection of custom fields. # Custom fields.
+                  "kind": "coordinate#customFields", # Identifies this object as a collection of custom fields.
+                  "customField": [ # Collection of custom fields.
+                    { # Custom field.
+                      "kind": "coordinate#customField", # Identifies this object as a custom field.
+                      "customFieldId": "A String", # Custom field id.
+                      "value": "A String", # Custom field value.
+                    },
+                  ],
+                },
+              },
+            },
+          ],
+          "id": "A String", # Job id.
+          "state": { # Current state of a job. # Current job state.
+            "kind": "coordinate#jobState", # Identifies this object as a job state.
+            "customerName": "A String", # Customer name.
+            "title": "A String", # Job title.
+            "note": [ # Note added to the job.
+              "A String",
+            ],
+            "assignee": "A String", # Email address of the assignee.
+            "customerPhoneNumber": "A String", # Customer phone number.
+            "location": { # Location of a job. # Job location.
+              "lat": 3.14, # Latitude.
+              "kind": "coordinate#location", # Identifies this object as a location.
+              "addressLine": [ # Address.
+                "A String",
+              ],
+              "lng": 3.14, # Longitude.
+            },
+            "progress": "A String", # Job progress.
+            "customFields": { # Collection of custom fields. # Custom fields.
+              "kind": "coordinate#customFields", # Identifies this object as a collection of custom fields.
+              "customField": [ # Collection of custom fields.
+                { # Custom field.
+                  "kind": "coordinate#customField", # Identifies this object as a custom field.
+                  "customFieldId": "A String", # Custom field id.
+                  "value": "A String", # Custom field value.
+                },
+              ],
+            },
+          },
+        },
+    ],
+    "kind": "coordinate#jobList", # Identifies this object as a list of jobs.
+  }</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(teamId, jobId, body, customerName=None, assignee=None, customerPhoneNumber=None, lng=None, note=None, title=None, progress=None, address=None, lat=None, customField=None)</code>
+  <pre>Updates a job. Fields that are set in the job state will be updated. This method supports patch semantics.
+
+Args:
+  teamId: string, Team ID (required)
+  jobId: string, Job number (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A job.
+    "kind": "coordinate#job", # Identifies this object as a job.
+    "jobChange": [ # List of job changes since it was created. The first change corresponds to the state of the job when it was created.
+      { # Change to a job. For example assigning the job to a different worker.
+        "timestamp": "A String", # Time at which this change was applied.
+        "kind": "coordinate#jobChange", # Identifies this object as a job change.
+        "state": { # Current state of a job. # Change applied to the job. Only the fields that were changed are set.
+          "kind": "coordinate#jobState", # Identifies this object as a job state.
+          "customerName": "A String", # Customer name.
+          "title": "A String", # Job title.
+          "note": [ # Note added to the job.
+            "A String",
+          ],
+          "assignee": "A String", # Email address of the assignee.
+          "customerPhoneNumber": "A String", # Customer phone number.
+          "location": { # Location of a job. # Job location.
+            "lat": 3.14, # Latitude.
+            "kind": "coordinate#location", # Identifies this object as a location.
+            "addressLine": [ # Address.
+              "A String",
+            ],
+            "lng": 3.14, # Longitude.
+          },
+          "progress": "A String", # Job progress.
+          "customFields": { # Collection of custom fields. # Custom fields.
+            "kind": "coordinate#customFields", # Identifies this object as a collection of custom fields.
+            "customField": [ # Collection of custom fields.
+              { # Custom field.
+                "kind": "coordinate#customField", # Identifies this object as a custom field.
+                "customFieldId": "A String", # Custom field id.
+                "value": "A String", # Custom field value.
+              },
+            ],
+          },
+        },
+      },
+    ],
+    "id": "A String", # Job id.
+    "state": { # Current state of a job. # Current job state.
+      "kind": "coordinate#jobState", # Identifies this object as a job state.
+      "customerName": "A String", # Customer name.
+      "title": "A String", # Job title.
+      "note": [ # Note added to the job.
+        "A String",
+      ],
+      "assignee": "A String", # Email address of the assignee.
+      "customerPhoneNumber": "A String", # Customer phone number.
+      "location": { # Location of a job. # Job location.
+        "lat": 3.14, # Latitude.
+        "kind": "coordinate#location", # Identifies this object as a location.
+        "addressLine": [ # Address.
+          "A String",
+        ],
+        "lng": 3.14, # Longitude.
+      },
+      "progress": "A String", # Job progress.
+      "customFields": { # Collection of custom fields. # Custom fields.
+        "kind": "coordinate#customFields", # Identifies this object as a collection of custom fields.
+        "customField": [ # Collection of custom fields.
+          { # Custom field.
+            "kind": "coordinate#customField", # Identifies this object as a custom field.
+            "customFieldId": "A String", # Custom field id.
+            "value": "A String", # Custom field value.
+          },
+        ],
+      },
+    },
+  }
+
+  customerName: string, Customer name
+  assignee: string, Assignee email address, or empty string to unassign.
+  customerPhoneNumber: string, Customer phone number
+  lng: number, The longitude coordinate of this job's location.
+  note: string, Job note as newline (Unix) separated string
+  title: string, Job title
+  progress: string, Job progress
+    Allowed values
+      COMPLETED - Completed
+      IN_PROGRESS - In progress
+      NOT_ACCEPTED - Not accepted
+      NOT_STARTED - Not started
+      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)
+
+Returns:
+  An object of the form:
+
+    { # A job.
+      "kind": "coordinate#job", # Identifies this object as a job.
+      "jobChange": [ # List of job changes since it was created. The first change corresponds to the state of the job when it was created.
+        { # Change to a job. For example assigning the job to a different worker.
+          "timestamp": "A String", # Time at which this change was applied.
+          "kind": "coordinate#jobChange", # Identifies this object as a job change.
+          "state": { # Current state of a job. # Change applied to the job. Only the fields that were changed are set.
+            "kind": "coordinate#jobState", # Identifies this object as a job state.
+            "customerName": "A String", # Customer name.
+            "title": "A String", # Job title.
+            "note": [ # Note added to the job.
+              "A String",
+            ],
+            "assignee": "A String", # Email address of the assignee.
+            "customerPhoneNumber": "A String", # Customer phone number.
+            "location": { # Location of a job. # Job location.
+              "lat": 3.14, # Latitude.
+              "kind": "coordinate#location", # Identifies this object as a location.
+              "addressLine": [ # Address.
+                "A String",
+              ],
+              "lng": 3.14, # Longitude.
+            },
+            "progress": "A String", # Job progress.
+            "customFields": { # Collection of custom fields. # Custom fields.
+              "kind": "coordinate#customFields", # Identifies this object as a collection of custom fields.
+              "customField": [ # Collection of custom fields.
+                { # Custom field.
+                  "kind": "coordinate#customField", # Identifies this object as a custom field.
+                  "customFieldId": "A String", # Custom field id.
+                  "value": "A String", # Custom field value.
+                },
+              ],
+            },
+          },
+        },
+      ],
+      "id": "A String", # Job id.
+      "state": { # Current state of a job. # Current job state.
+        "kind": "coordinate#jobState", # Identifies this object as a job state.
+        "customerName": "A String", # Customer name.
+        "title": "A String", # Job title.
+        "note": [ # Note added to the job.
+          "A String",
+        ],
+        "assignee": "A String", # Email address of the assignee.
+        "customerPhoneNumber": "A String", # Customer phone number.
+        "location": { # Location of a job. # Job location.
+          "lat": 3.14, # Latitude.
+          "kind": "coordinate#location", # Identifies this object as a location.
+          "addressLine": [ # Address.
+            "A String",
+          ],
+          "lng": 3.14, # Longitude.
+        },
+        "progress": "A String", # Job progress.
+        "customFields": { # Collection of custom fields. # Custom fields.
+          "kind": "coordinate#customFields", # Identifies this object as a collection of custom fields.
+          "customField": [ # Collection of custom fields.
+            { # Custom field.
+              "kind": "coordinate#customField", # Identifies this object as a custom field.
+              "customFieldId": "A String", # Custom field id.
+              "value": "A String", # Custom field value.
+            },
+          ],
+        },
+      },
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(teamId, jobId, body, customerName=None, assignee=None, customerPhoneNumber=None, lng=None, note=None, title=None, progress=None, address=None, lat=None, customField=None)</code>
+  <pre>Updates a job. Fields that are set in the job state will be updated.
+
+Args:
+  teamId: string, Team ID (required)
+  jobId: string, Job number (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A job.
+    "kind": "coordinate#job", # Identifies this object as a job.
+    "jobChange": [ # List of job changes since it was created. The first change corresponds to the state of the job when it was created.
+      { # Change to a job. For example assigning the job to a different worker.
+        "timestamp": "A String", # Time at which this change was applied.
+        "kind": "coordinate#jobChange", # Identifies this object as a job change.
+        "state": { # Current state of a job. # Change applied to the job. Only the fields that were changed are set.
+          "kind": "coordinate#jobState", # Identifies this object as a job state.
+          "customerName": "A String", # Customer name.
+          "title": "A String", # Job title.
+          "note": [ # Note added to the job.
+            "A String",
+          ],
+          "assignee": "A String", # Email address of the assignee.
+          "customerPhoneNumber": "A String", # Customer phone number.
+          "location": { # Location of a job. # Job location.
+            "lat": 3.14, # Latitude.
+            "kind": "coordinate#location", # Identifies this object as a location.
+            "addressLine": [ # Address.
+              "A String",
+            ],
+            "lng": 3.14, # Longitude.
+          },
+          "progress": "A String", # Job progress.
+          "customFields": { # Collection of custom fields. # Custom fields.
+            "kind": "coordinate#customFields", # Identifies this object as a collection of custom fields.
+            "customField": [ # Collection of custom fields.
+              { # Custom field.
+                "kind": "coordinate#customField", # Identifies this object as a custom field.
+                "customFieldId": "A String", # Custom field id.
+                "value": "A String", # Custom field value.
+              },
+            ],
+          },
+        },
+      },
+    ],
+    "id": "A String", # Job id.
+    "state": { # Current state of a job. # Current job state.
+      "kind": "coordinate#jobState", # Identifies this object as a job state.
+      "customerName": "A String", # Customer name.
+      "title": "A String", # Job title.
+      "note": [ # Note added to the job.
+        "A String",
+      ],
+      "assignee": "A String", # Email address of the assignee.
+      "customerPhoneNumber": "A String", # Customer phone number.
+      "location": { # Location of a job. # Job location.
+        "lat": 3.14, # Latitude.
+        "kind": "coordinate#location", # Identifies this object as a location.
+        "addressLine": [ # Address.
+          "A String",
+        ],
+        "lng": 3.14, # Longitude.
+      },
+      "progress": "A String", # Job progress.
+      "customFields": { # Collection of custom fields. # Custom fields.
+        "kind": "coordinate#customFields", # Identifies this object as a collection of custom fields.
+        "customField": [ # Collection of custom fields.
+          { # Custom field.
+            "kind": "coordinate#customField", # Identifies this object as a custom field.
+            "customFieldId": "A String", # Custom field id.
+            "value": "A String", # Custom field value.
+          },
+        ],
+      },
+    },
+  }
+
+  customerName: string, Customer name
+  assignee: string, Assignee email address, or empty string to unassign.
+  customerPhoneNumber: string, Customer phone number
+  lng: number, The longitude coordinate of this job's location.
+  note: string, Job note as newline (Unix) separated string
+  title: string, Job title
+  progress: string, Job progress
+    Allowed values
+      COMPLETED - Completed
+      IN_PROGRESS - In progress
+      NOT_ACCEPTED - Not accepted
+      NOT_STARTED - Not started
+      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)
+
+Returns:
+  An object of the form:
+
+    { # A job.
+      "kind": "coordinate#job", # Identifies this object as a job.
+      "jobChange": [ # List of job changes since it was created. The first change corresponds to the state of the job when it was created.
+        { # Change to a job. For example assigning the job to a different worker.
+          "timestamp": "A String", # Time at which this change was applied.
+          "kind": "coordinate#jobChange", # Identifies this object as a job change.
+          "state": { # Current state of a job. # Change applied to the job. Only the fields that were changed are set.
+            "kind": "coordinate#jobState", # Identifies this object as a job state.
+            "customerName": "A String", # Customer name.
+            "title": "A String", # Job title.
+            "note": [ # Note added to the job.
+              "A String",
+            ],
+            "assignee": "A String", # Email address of the assignee.
+            "customerPhoneNumber": "A String", # Customer phone number.
+            "location": { # Location of a job. # Job location.
+              "lat": 3.14, # Latitude.
+              "kind": "coordinate#location", # Identifies this object as a location.
+              "addressLine": [ # Address.
+                "A String",
+              ],
+              "lng": 3.14, # Longitude.
+            },
+            "progress": "A String", # Job progress.
+            "customFields": { # Collection of custom fields. # Custom fields.
+              "kind": "coordinate#customFields", # Identifies this object as a collection of custom fields.
+              "customField": [ # Collection of custom fields.
+                { # Custom field.
+                  "kind": "coordinate#customField", # Identifies this object as a custom field.
+                  "customFieldId": "A String", # Custom field id.
+                  "value": "A String", # Custom field value.
+                },
+              ],
+            },
+          },
+        },
+      ],
+      "id": "A String", # Job id.
+      "state": { # Current state of a job. # Current job state.
+        "kind": "coordinate#jobState", # Identifies this object as a job state.
+        "customerName": "A String", # Customer name.
+        "title": "A String", # Job title.
+        "note": [ # Note added to the job.
+          "A String",
+        ],
+        "assignee": "A String", # Email address of the assignee.
+        "customerPhoneNumber": "A String", # Customer phone number.
+        "location": { # Location of a job. # Job location.
+          "lat": 3.14, # Latitude.
+          "kind": "coordinate#location", # Identifies this object as a location.
+          "addressLine": [ # Address.
+            "A String",
+          ],
+          "lng": 3.14, # Longitude.
+        },
+        "progress": "A String", # Job progress.
+        "customFields": { # Collection of custom fields. # Custom fields.
+          "kind": "coordinate#customFields", # Identifies this object as a collection of custom fields.
+          "customField": [ # Collection of custom fields.
+            { # Custom field.
+              "kind": "coordinate#customField", # Identifies this object as a custom field.
+              "customFieldId": "A String", # Custom field id.
+              "value": "A String", # Custom field value.
+            },
+          ],
+        },
+      },
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/coordinate_v1.location.html b/docs/dyn/coordinate_v1.location.html
new file mode 100644
index 0000000..131ec9d
--- /dev/null
+++ b/docs/dyn/coordinate_v1.location.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="coordinate_v1.html">Google Maps Coordinate API</a> . <a href="coordinate_v1.location.html">location</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(teamId, workerEmail, startTimestampMs, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Retrieves a list of locations for a worker.</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(teamId, workerEmail, startTimestampMs, pageToken=None, maxResults=None)</code>
+  <pre>Retrieves a list of locations for a worker.
+
+Args:
+  teamId: string, Team ID (required)
+  workerEmail: string, Worker email address. (required)
+  startTimestampMs: string, Start timestamp in milliseconds since the epoch. (required)
+  pageToken: string, Continuation token
+  maxResults: integer, Maximum number of results to return in one page.
+
+Returns:
+  An object of the form:
+
+    { # Response from a List Locations request.
+    "nextPageToken": "A String", # A token to provide to get the next page of results.
+    "items": [ # Locations in the collection.
+      { # Recorded location of a worker.
+        "latitude": 3.14, # Latitude.
+        "collectionTime": "A String", # The collection time in milliseconds since the epoch.
+        "confidenceRadius": 3.14, # The location accuracy in meters. This is the radius of a 95% confidence interval around the location measurement.
+        "kind": "coordinate#locationRecord", # Identifies this object as a location.
+        "longitude": 3.14, # Longitude.
+      },
+    ],
+    "kind": "coordinate#locationList", # Identifies this object as a list of locations.
+    "tokenPagination": { # Pagination information. # Pagination information for token pagination.
+      "nextPageToken": "A String", # A token to provide to get the next page of results.
+      "previousPageToken": "A String", # A token to provide to get the previous page of results.
+      "kind": "coordinate#tokenPagination", # Identifies this object as pagination information.
+    },
+  }</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/coordinate_v1.schedule.html b/docs/dyn/coordinate_v1.schedule.html
new file mode 100644
index 0000000..7a68369
--- /dev/null
+++ b/docs/dyn/coordinate_v1.schedule.html
@@ -0,0 +1,177 @@
+<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.schedule.html">schedule</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(teamId, jobId)</a></code></p>
+<p class="firstline">Retrieves the schedule for a job.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(teamId, jobId, body, allDay=None, startTime=None, duration=None, endTime=None)</a></code></p>
+<p class="firstline">Replaces the schedule of a job with the provided schedule. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(teamId, jobId, body, allDay=None, startTime=None, duration=None, endTime=None)</a></code></p>
+<p class="firstline">Replaces the schedule of a job with the provided schedule.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(teamId, jobId)</code>
+  <pre>Retrieves the schedule for a job.
+
+Args:
+  teamId: string, Team ID (required)
+  jobId: string, Job number (required)
+
+Returns:
+  An object of the form:
+
+    { # Job schedule.
+      "duration": "A String", # Job duration in milliseconds.
+      "kind": "coordinate#schedule", # Identifies this object as a job schedule.
+      "allDay": True or False, # Whether the job is scheduled for the whole day. Time of day in start/end times is ignored if this is true.
+      "startTime": "A String", # Scheduled start time in milliseconds since epoch.
+      "endTime": "A String", # Scheduled end time in milliseconds since epoch.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(teamId, jobId, body, allDay=None, startTime=None, duration=None, endTime=None)</code>
+  <pre>Replaces the schedule of a job with the provided schedule. This method supports patch semantics.
+
+Args:
+  teamId: string, Team ID (required)
+  jobId: string, Job number (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Job schedule.
+    "duration": "A String", # Job duration in milliseconds.
+    "kind": "coordinate#schedule", # Identifies this object as a job schedule.
+    "allDay": True or False, # Whether the job is scheduled for the whole day. Time of day in start/end times is ignored if this is true.
+    "startTime": "A String", # Scheduled start time in milliseconds since epoch.
+    "endTime": "A String", # Scheduled end time in milliseconds since epoch.
+  }
+
+  allDay: boolean, Whether the job is scheduled for the whole day. Time of day in start/end times is ignored if this is true.
+  startTime: string, Scheduled start time in milliseconds since epoch.
+  duration: string, Job duration in milliseconds.
+  endTime: string, Scheduled end time in milliseconds since epoch.
+
+Returns:
+  An object of the form:
+
+    { # Job schedule.
+      "duration": "A String", # Job duration in milliseconds.
+      "kind": "coordinate#schedule", # Identifies this object as a job schedule.
+      "allDay": True or False, # Whether the job is scheduled for the whole day. Time of day in start/end times is ignored if this is true.
+      "startTime": "A String", # Scheduled start time in milliseconds since epoch.
+      "endTime": "A String", # Scheduled end time in milliseconds since epoch.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(teamId, jobId, body, allDay=None, startTime=None, duration=None, endTime=None)</code>
+  <pre>Replaces the schedule of a job with the provided schedule.
+
+Args:
+  teamId: string, Team ID (required)
+  jobId: string, Job number (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Job schedule.
+    "duration": "A String", # Job duration in milliseconds.
+    "kind": "coordinate#schedule", # Identifies this object as a job schedule.
+    "allDay": True or False, # Whether the job is scheduled for the whole day. Time of day in start/end times is ignored if this is true.
+    "startTime": "A String", # Scheduled start time in milliseconds since epoch.
+    "endTime": "A String", # Scheduled end time in milliseconds since epoch.
+  }
+
+  allDay: boolean, Whether the job is scheduled for the whole day. Time of day in start/end times is ignored if this is true.
+  startTime: string, Scheduled start time in milliseconds since epoch.
+  duration: string, Job duration in milliseconds.
+  endTime: string, Scheduled end time in milliseconds since epoch.
+
+Returns:
+  An object of the form:
+
+    { # Job schedule.
+      "duration": "A String", # Job duration in milliseconds.
+      "kind": "coordinate#schedule", # Identifies this object as a job schedule.
+      "allDay": True or False, # Whether the job is scheduled for the whole day. Time of day in start/end times is ignored if this is true.
+      "startTime": "A String", # Scheduled start time in milliseconds since epoch.
+      "endTime": "A String", # Scheduled end time in milliseconds since epoch.
+    }</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
new file mode 100644
index 0000000..0e3da77
--- /dev/null
+++ b/docs/dyn/coordinate_v1.worker.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="coordinate_v1.html">Google Maps Coordinate API</a> . <a href="coordinate_v1.worker.html">worker</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(teamId)</a></code></p>
+<p class="firstline">Retrieves a list of workers in a team.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(teamId)</code>
+  <pre>Retrieves a list of workers in a team.
+
+Args:
+  teamId: string, Team ID (required)
+
+Returns:
+  An object of the form:
+
+    { # Response from a List Workers request.
+    "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.
+      },
+    ],
+    "kind": "coordinate#workerList", # Identifies this object as a list of workers.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/customsearch_v1.cse.html b/docs/dyn/customsearch_v1.cse.html
new file mode 100644
index 0000000..6c33e12
--- /dev/null
+++ b/docs/dyn/customsearch_v1.cse.html
@@ -0,0 +1,333 @@
+<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="customsearch_v1.html">CustomSearch API</a> . <a href="customsearch_v1.cse.html">cse</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(q, dateRestrict=None, hl=None, orTerms=None, highRange=None, num=None, cr=None, imgType=None, relatedSite=None, filter=None, gl=None, searchType=None, fileType=None, start=None, imgDominantColor=None, lr=None, siteSearch=None, cref=None, sort=None, hq=None, c2coff=None, googlehost=None, safe=None, exactTerms=None, lowRange=None, imgSize=None, imgColorType=None, rights=None, excludeTerms=None, linkSite=None, cx=None, siteSearchFilter=None)</a></code></p>
+<p class="firstline">Returns metadata about the search performed, metadata about the custom search engine used for the search, and the search results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(q, dateRestrict=None, hl=None, orTerms=None, highRange=None, num=None, cr=None, imgType=None, relatedSite=None, filter=None, gl=None, searchType=None, fileType=None, start=None, imgDominantColor=None, lr=None, siteSearch=None, cref=None, sort=None, hq=None, c2coff=None, googlehost=None, safe=None, exactTerms=None, lowRange=None, imgSize=None, imgColorType=None, rights=None, excludeTerms=None, linkSite=None, cx=None, siteSearchFilter=None)</code>
+  <pre>Returns metadata about the search performed, metadata about the custom search engine used for the search, and the search results.
+
+Args:
+  q: string, Query (required)
+  dateRestrict: string, Specifies all search results are from a time period
+  hl: string, Sets the user interface language.
+  orTerms: string, Provides additional search terms to check for in a document, where each document in the search results must contain at least one of the additional search terms
+  highRange: string, Creates a range in form as_nlo value..as_nhi value and attempts to append it to query
+  num: integer, Number of search results to return
+  cr: string, Country restrict(s).
+  imgType: string, Returns images of a type, which can be one of: clipart, face, lineart, news, and photo.
+    Allowed values
+      clipart - clipart
+      face - face
+      lineart - lineart
+      news - news
+      photo - photo
+  relatedSite: string, Specifies that all search results should be pages that are related to the specified URL
+  filter: string, Controls turning on or off the duplicate content filter.
+    Allowed values
+      0 - Turns off duplicate content filter.
+      1 - Turns on duplicate content filter.
+  gl: string, Geolocation of end user.
+  searchType: string, Specifies the search type: image.
+    Allowed values
+      image - custom image search
+  fileType: string, Returns images of a specified type. Some of the allowed values are: bmp, gif, png, jpg, svg, pdf, ...
+  start: integer, The index of the first result to return
+  imgDominantColor: string, Returns images of a specific dominant color: yellow, green, teal, blue, purple, pink, white, gray, black and brown.
+    Allowed values
+      black - black
+      blue - blue
+      brown - brown
+      gray - gray
+      green - green
+      pink - pink
+      purple - purple
+      teal - teal
+      white - white
+      yellow - yellow
+  lr: string, The language restriction for the search results
+    Allowed values
+      lang_ar - Arabic
+      lang_bg - Bulgarian
+      lang_ca - Catalan
+      lang_cs - Czech
+      lang_da - Danish
+      lang_de - German
+      lang_el - Greek
+      lang_en - English
+      lang_es - Spanish
+      lang_et - Estonian
+      lang_fi - Finnish
+      lang_fr - French
+      lang_hr - Croatian
+      lang_hu - Hungarian
+      lang_id - Indonesian
+      lang_is - Icelandic
+      lang_it - Italian
+      lang_iw - Hebrew
+      lang_ja - Japanese
+      lang_ko - Korean
+      lang_lt - Lithuanian
+      lang_lv - Latvian
+      lang_nl - Dutch
+      lang_no - Norwegian
+      lang_pl - Polish
+      lang_pt - Portuguese
+      lang_ro - Romanian
+      lang_ru - Russian
+      lang_sk - Slovak
+      lang_sl - Slovenian
+      lang_sr - Serbian
+      lang_sv - Swedish
+      lang_tr - Turkish
+      lang_zh-CN - Chinese (Simplified)
+      lang_zh-TW - Chinese (Traditional)
+  siteSearch: string, Specifies all search results should be pages from a given site
+  cref: string, The URL of a linked custom search engine
+  sort: string, The sort expression to apply to the results
+  hq: string, Appends the extra query terms to the query.
+  c2coff: string, Turns off the translation between zh-CN and zh-TW.
+  googlehost: string, The local Google domain to use to perform the search.
+  safe: string, Search safety level
+    Allowed values
+      high - Enables highest level of safe search filtering.
+      medium - Enables moderate safe search filtering.
+      off - Disables safe search filtering.
+  exactTerms: string, Identifies a phrase that all documents in the search results must contain
+  lowRange: string, Creates a range in form as_nlo value..as_nhi value and attempts to append it to query
+  imgSize: string, Returns images of a specified size, where size can be one of: icon, small, medium, large, xlarge, xxlarge, and huge.
+    Allowed values
+      huge - huge
+      icon - icon
+      large - large
+      medium - medium
+      small - small
+      xlarge - xlarge
+      xxlarge - xxlarge
+  imgColorType: string, Returns black and white, grayscale, or color images: mono, gray, and color.
+    Allowed values
+      color - color
+      gray - gray
+      mono - mono
+  rights: string, Filters based on licensing. Supported values include: cc_publicdomain, cc_attribute, cc_sharealike, cc_noncommercial, cc_nonderived and combinations of these.
+  excludeTerms: string, Identifies a word or phrase that should not appear in any documents in the search results
+  linkSite: string, Specifies that all search results should contain a link to a particular URL
+  cx: string, The custom search engine ID to scope this search query
+  siteSearchFilter: string, Controls whether to include or exclude results from the site named in the as_sitesearch parameter
+    Allowed values
+      e - exclude
+      i - include
+
+Returns:
+  An object of the form:
+
+    {
+    "promotions": [
+      {
+        "title": "A String",
+        "displayLink": "A String",
+        "htmlTitle": "A String",
+        "link": "A String",
+        "bodyLines": [
+          {
+            "url": "A String",
+            "htmlTitle": "A String",
+            "link": "A String",
+            "title": "A String",
+          },
+        ],
+        "image": {
+          "source": "A String",
+          "width": 42,
+          "height": 42,
+        },
+      },
+    ],
+    "kind": "customsearch#search",
+    "url": {
+      "type": "application/json",
+      "template": "https://www.googleapis.com/customsearch/v1?q={searchTerms}&num={count?}&start={startIndex?}&lr={language?}&safe={safe?}&cx={cx?}&cref={cref?}&sort={sort?}&filter={filter?}&gl={gl?}&cr={cr?}&googlehost={googleHost?}&c2coff={disableCnTwTranslation?}&hq={hq?}&hl={hl?}&siteSearch={siteSearch?}&siteSearchFilter={siteSearchFilter?}&exactTerms={exactTerms?}&excludeTerms={excludeTerms?}&linkSite={linkSite?}&orTerms={orTerms?}&relatedSite={relatedSite?}&dateRestrict={dateRestrict?}&lowRange={lowRange?}&highRange={highRange?}&searchType={searchType}&fileType={fileType?}&rights={rights?}&imgSize={imgSize?}&imgType={imgType?}&imgColorType={imgColorType?}&imgDominantColor={imgDominantColor?}&alt=json",
+    },
+    "items": [
+      {
+        "snippet": "A String",
+        "kind": "customsearch#result",
+        "labels": [
+          {
+            "label_with_op": "A String",
+            "displayName": "A String",
+            "name": "A String",
+          },
+        ],
+        "title": "A String",
+        "displayLink": "A String",
+        "cacheId": "A String",
+        "formattedUrl": "A String",
+        "htmlFormattedUrl": "A String",
+        "pagemap": {
+          "a_key": [
+            {
+              "a_key": "",
+            },
+          ],
+        },
+        "htmlTitle": "A String",
+        "htmlSnippet": "A String",
+        "link": "A String",
+        "image": {
+          "thumbnailWidth": 42,
+          "byteSize": 42,
+          "height": 42,
+          "width": 42,
+          "contextLink": "A String",
+          "thumbnailLink": "A String",
+          "thumbnailHeight": 42,
+        },
+        "mime": "A String",
+        "fileFormat": "A String",
+      },
+    ],
+    "context": {
+      "facets": [
+        [
+          {
+            "label_with_op": "A String",
+            "anchor": "A String",
+            "label": "A String",
+          },
+        ],
+      ],
+      "title": "A String",
+    },
+    "queries": {
+      "a_key": [
+        {
+          "sort": "A String",
+          "hl": "A String",
+          "orTerms": "A String",
+          "highRange": "A String",
+          "cx": "A String",
+          "startPage": 42,
+          "disableCnTwTranslation": "A String",
+          "cr": "A String",
+          "imgType": "A String",
+          "gl": "A String",
+          "relatedSite": "A String",
+          "searchType": "A String",
+          "title": "A String",
+          "googleHost": "A String",
+          "fileType": "A String",
+          "imgDominantColor": "A String",
+          "siteSearch": "A String",
+          "cref": "A String",
+          "dateRestrict": "A String",
+          "safe": "A String",
+          "outputEncoding": "A String",
+          "hq": "A String",
+          "searchTerms": "A String",
+          "exactTerms": "A String",
+          "language": "A String",
+          "inputEncoding": "A String",
+          "totalResults": "A String",
+          "lowRange": "A String",
+          "count": 42,
+          "imgSize": "A String",
+          "imgColorType": "A String",
+          "rights": "A String",
+          "startIndex": 42,
+          "excludeTerms": "A String",
+          "filter": "A String",
+          "linkSite": "A String",
+          "siteSearchFilter": "A String",
+        },
+      ],
+    },
+    "spelling": {
+      "correctedQuery": "A String",
+      "htmlCorrectedQuery": "A String",
+    },
+    "searchInformation": {
+      "formattedSearchTime": "A String",
+      "formattedTotalResults": "A String",
+      "totalResults": "A String",
+      "searchTime": 3.14,
+    },
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/customsearch_v1.html b/docs/dyn/customsearch_v1.html
new file mode 100644
index 0000000..803bdc1
--- /dev/null
+++ b/docs/dyn/customsearch_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="customsearch_v1.html">CustomSearch API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="customsearch_v1.cse.html">cse()</a></code>
+</p>
+<p class="firstline">Returns the cse Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/datastore_v1beta2.datasets.html b/docs/dyn/datastore_v1beta2.datasets.html
new file mode 100644
index 0000000..5e686f2
--- /dev/null
+++ b/docs/dyn/datastore_v1beta2.datasets.html
@@ -0,0 +1,1131 @@
+<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="datastore_v1beta2.html">Google Cloud Datastore API</a> . <a href="datastore_v1beta2.datasets.html">datasets</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#allocateIds">allocateIds(datasetId, body)</a></code></p>
+<p class="firstline">Allocate IDs for incomplete keys (useful for referencing an entity before it is inserted).</p>
+<p class="toc_element">
+  <code><a href="#beginTransaction">beginTransaction(datasetId, body)</a></code></p>
+<p class="firstline">Begin a new transaction.</p>
+<p class="toc_element">
+  <code><a href="#commit">commit(datasetId, body)</a></code></p>
+<p class="firstline">Commit a transaction, optionally creating, deleting or modifying some entities.</p>
+<p class="toc_element">
+  <code><a href="#lookup">lookup(datasetId, body)</a></code></p>
+<p class="firstline">Look up some entities by key.</p>
+<p class="toc_element">
+  <code><a href="#rollback">rollback(datasetId, body)</a></code></p>
+<p class="firstline">Roll back a transaction.</p>
+<p class="toc_element">
+  <code><a href="#runQuery">runQuery(datasetId, body)</a></code></p>
+<p class="firstline">Query for entities.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="allocateIds">allocateIds(datasetId, body)</code>
+  <pre>Allocate IDs for incomplete keys (useful for referencing an entity before it is inserted).
+
+Args:
+  datasetId: string, Identifies the dataset. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "keys": [ # A list of keys with incomplete key paths to allocate IDs for. No key may be reserved/read-only.
+      {
+        "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty.
+          { # A (kind, ID/name) pair used to construct a key path.
+              #
+              # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
+            "kind": "A String", # The kind of the entity. Kinds matching regex "__.*__" are reserved/read-only. Cannot be "".
+            "id": "A String", # The ID of the entity. Always > 0.
+            "name": "A String", # The name of the entity. Names matching regex "__.*__" are reserved/read-only. Cannot be "".
+          },
+        ],
+        "partitionId": { # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
+          "namespace": "A String", # The namespace.
+          "datasetId": "A String", # The dataset ID.
+        },
+      },
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "keys": [ # The keys specified in the request (in the same order), each with its key path completed with a newly allocated ID.
+      {
+        "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty.
+          { # A (kind, ID/name) pair used to construct a key path.
+              #
+              # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
+            "kind": "A String", # The kind of the entity. Kinds matching regex "__.*__" are reserved/read-only. Cannot be "".
+            "id": "A String", # The ID of the entity. Always > 0.
+            "name": "A String", # The name of the entity. Names matching regex "__.*__" are reserved/read-only. Cannot be "".
+          },
+        ],
+        "partitionId": { # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
+          "namespace": "A String", # The namespace.
+          "datasetId": "A String", # The dataset ID.
+        },
+      },
+    ],
+    "header": {
+      "kind": "datastore#responseHeader", # The kind, fixed to "datastore#responseHeader".
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="beginTransaction">beginTransaction(datasetId, body)</code>
+  <pre>Begin a new transaction.
+
+Args:
+  datasetId: string, Identifies the dataset. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "isolationLevel": "A String", # The transaction isolation level. Either snapshot or serializable. The default isolation level is snapshot isolation, which means that another transaction may not concurrently modify the data that is modified by this transaction. Optionally, a transaction can request to be made serializable which means that another transaction cannot concurrently modify the data that is read or modified by this transaction.
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "header": {
+      "kind": "datastore#responseHeader", # The kind, fixed to "datastore#responseHeader".
+    },
+    "transaction": "A String", # The transaction identifier (always present).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="commit">commit(datasetId, body)</code>
+  <pre>Commit a transaction, optionally creating, deleting or modifying some entities.
+
+Args:
+  datasetId: string, Identifies the dataset. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "transaction": "A String", # The transaction identifier, returned by a call to beginTransaction. Must be set when mode is TRANSACTIONAL.
+    "mode": "A String", # The type of commit to perform. Either TRANSACTIONAL or NON_TRANSACTIONAL.
+    "mutation": { # The mutation to perform. Optional.
+      "insert": [ # Entities to insert. Each inserted entity's key must have a complete path and must not be reserved/read-only.
+        {
+          "properties": { # The entity's properties.
+            "a_key": { # The name of the property. Properties with names matching regex "__.*__" are reserved. A reserved property name is forbidden in certain documented contexts. The name cannot be "".
+              "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
+              "doubleValue": 3.14, # A double value.
+              "integerValue": "A String", # An integer value.
+              "meaning": 42, # The meaning field is reserved and should not be used.
+              "dateTimeValue": "A String", # A timestamp value.
+              "keyValue": { # A key value.
+                "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty.
+                  { # A (kind, ID/name) pair used to construct a key path.
+                      #
+                      # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
+                    "kind": "A String", # The kind of the entity. Kinds matching regex "__.*__" are reserved/read-only. Cannot be "".
+                    "id": "A String", # The ID of the entity. Always > 0.
+                    "name": "A String", # The name of the entity. Names matching regex "__.*__" are reserved/read-only. Cannot be "".
+                  },
+                ],
+                "partitionId": { # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
+                  "namespace": "A String", # The namespace.
+                  "datasetId": "A String", # The dataset ID.
+                },
+              },
+              "stringValue": "A String", # A UTF-8 encoded string value.
+              "indexed": True or False, # If the value should be indexed.
+                  #
+                  # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
+              "blobValue": "A String", # A blob value.
+              "listValue": [ # A list value. Cannot contain another list value. Cannot also have a meaning and indexing set.
+                {
+                  "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
+                  "doubleValue": 3.14, # A double value.
+                  "integerValue": "A String", # An integer value.
+                  "meaning": 42, # The meaning field is reserved and should not be used.
+                  "dateTimeValue": "A String", # A timestamp value.
+                  "keyValue": { # A key value.
+                    "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty.
+                      { # A (kind, ID/name) pair used to construct a key path.
+                          #
+                          # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
+                        "kind": "A String", # The kind of the entity. Kinds matching regex "__.*__" are reserved/read-only. Cannot be "".
+                        "id": "A String", # The ID of the entity. Always > 0.
+                        "name": "A String", # The name of the entity. Names matching regex "__.*__" are reserved/read-only. Cannot be "".
+                      },
+                    ],
+                    "partitionId": { # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
+                      "namespace": "A String", # The namespace.
+                      "datasetId": "A String", # The dataset ID.
+                    },
+                  },
+                  "stringValue": "A String", # A UTF-8 encoded string value.
+                  "indexed": True or False, # If the value should be indexed.
+                      #
+                      # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
+                  "blobValue": "A String", # A blob value.
+                  "listValue": [ # A list value. Cannot contain another list value. Cannot also have a meaning and indexing set.
+                    # Object with schema name: Value
+                  ],
+                  "booleanValue": True or False, # A boolean value.
+                  "blobKeyValue": "A String", # A blob key value.
+                },
+              ],
+              "booleanValue": True or False, # A boolean value.
+              "blobKeyValue": "A String", # A blob key value.
+            },
+          },
+          "key": { # The entity's key.
+              #
+              # An entity must have a key, unless otherwise documented (for example, an entity in Value.entityValue may have no key). An entity's kind is its key's path's last element's kind, or null if it has no key.
+            "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty.
+              { # A (kind, ID/name) pair used to construct a key path.
+                  #
+                  # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
+                "kind": "A String", # The kind of the entity. Kinds matching regex "__.*__" are reserved/read-only. Cannot be "".
+                "id": "A String", # The ID of the entity. Always > 0.
+                "name": "A String", # The name of the entity. Names matching regex "__.*__" are reserved/read-only. Cannot be "".
+              },
+            ],
+            "partitionId": { # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
+              "namespace": "A String", # The namespace.
+              "datasetId": "A String", # The dataset ID.
+            },
+          },
+        },
+      ],
+      "force": True or False, # Ignore a user specified read-only period. Optional.
+      "insertAutoId": [ # Insert entities with a newly allocated ID. Each inserted entity's key must omit the final identifier in its path and must not be reserved/read-only.
+        {
+          "properties": { # The entity's properties.
+            "a_key": { # The name of the property. Properties with names matching regex "__.*__" are reserved. A reserved property name is forbidden in certain documented contexts. The name cannot be "".
+              "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
+              "doubleValue": 3.14, # A double value.
+              "integerValue": "A String", # An integer value.
+              "meaning": 42, # The meaning field is reserved and should not be used.
+              "dateTimeValue": "A String", # A timestamp value.
+              "keyValue": { # A key value.
+                "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty.
+                  { # A (kind, ID/name) pair used to construct a key path.
+                      #
+                      # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
+                    "kind": "A String", # The kind of the entity. Kinds matching regex "__.*__" are reserved/read-only. Cannot be "".
+                    "id": "A String", # The ID of the entity. Always > 0.
+                    "name": "A String", # The name of the entity. Names matching regex "__.*__" are reserved/read-only. Cannot be "".
+                  },
+                ],
+                "partitionId": { # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
+                  "namespace": "A String", # The namespace.
+                  "datasetId": "A String", # The dataset ID.
+                },
+              },
+              "stringValue": "A String", # A UTF-8 encoded string value.
+              "indexed": True or False, # If the value should be indexed.
+                  #
+                  # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
+              "blobValue": "A String", # A blob value.
+              "listValue": [ # A list value. Cannot contain another list value. Cannot also have a meaning and indexing set.
+                {
+                  "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
+                  "doubleValue": 3.14, # A double value.
+                  "integerValue": "A String", # An integer value.
+                  "meaning": 42, # The meaning field is reserved and should not be used.
+                  "dateTimeValue": "A String", # A timestamp value.
+                  "keyValue": { # A key value.
+                    "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty.
+                      { # A (kind, ID/name) pair used to construct a key path.
+                          #
+                          # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
+                        "kind": "A String", # The kind of the entity. Kinds matching regex "__.*__" are reserved/read-only. Cannot be "".
+                        "id": "A String", # The ID of the entity. Always > 0.
+                        "name": "A String", # The name of the entity. Names matching regex "__.*__" are reserved/read-only. Cannot be "".
+                      },
+                    ],
+                    "partitionId": { # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
+                      "namespace": "A String", # The namespace.
+                      "datasetId": "A String", # The dataset ID.
+                    },
+                  },
+                  "stringValue": "A String", # A UTF-8 encoded string value.
+                  "indexed": True or False, # If the value should be indexed.
+                      #
+                      # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
+                  "blobValue": "A String", # A blob value.
+                  "listValue": [ # A list value. Cannot contain another list value. Cannot also have a meaning and indexing set.
+                    # Object with schema name: Value
+                  ],
+                  "booleanValue": True or False, # A boolean value.
+                  "blobKeyValue": "A String", # A blob key value.
+                },
+              ],
+              "booleanValue": True or False, # A boolean value.
+              "blobKeyValue": "A String", # A blob key value.
+            },
+          },
+          "key": { # The entity's key.
+              #
+              # An entity must have a key, unless otherwise documented (for example, an entity in Value.entityValue may have no key). An entity's kind is its key's path's last element's kind, or null if it has no key.
+            "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty.
+              { # A (kind, ID/name) pair used to construct a key path.
+                  #
+                  # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
+                "kind": "A String", # The kind of the entity. Kinds matching regex "__.*__" are reserved/read-only. Cannot be "".
+                "id": "A String", # The ID of the entity. Always > 0.
+                "name": "A String", # The name of the entity. Names matching regex "__.*__" are reserved/read-only. Cannot be "".
+              },
+            ],
+            "partitionId": { # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
+              "namespace": "A String", # The namespace.
+              "datasetId": "A String", # The dataset ID.
+            },
+          },
+        },
+      ],
+      "update": [ # Entities to update. Each updated entity's key must have a complete path and must not be reserved/read-only.
+        {
+          "properties": { # The entity's properties.
+            "a_key": { # The name of the property. Properties with names matching regex "__.*__" are reserved. A reserved property name is forbidden in certain documented contexts. The name cannot be "".
+              "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
+              "doubleValue": 3.14, # A double value.
+              "integerValue": "A String", # An integer value.
+              "meaning": 42, # The meaning field is reserved and should not be used.
+              "dateTimeValue": "A String", # A timestamp value.
+              "keyValue": { # A key value.
+                "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty.
+                  { # A (kind, ID/name) pair used to construct a key path.
+                      #
+                      # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
+                    "kind": "A String", # The kind of the entity. Kinds matching regex "__.*__" are reserved/read-only. Cannot be "".
+                    "id": "A String", # The ID of the entity. Always > 0.
+                    "name": "A String", # The name of the entity. Names matching regex "__.*__" are reserved/read-only. Cannot be "".
+                  },
+                ],
+                "partitionId": { # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
+                  "namespace": "A String", # The namespace.
+                  "datasetId": "A String", # The dataset ID.
+                },
+              },
+              "stringValue": "A String", # A UTF-8 encoded string value.
+              "indexed": True or False, # If the value should be indexed.
+                  #
+                  # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
+              "blobValue": "A String", # A blob value.
+              "listValue": [ # A list value. Cannot contain another list value. Cannot also have a meaning and indexing set.
+                {
+                  "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
+                  "doubleValue": 3.14, # A double value.
+                  "integerValue": "A String", # An integer value.
+                  "meaning": 42, # The meaning field is reserved and should not be used.
+                  "dateTimeValue": "A String", # A timestamp value.
+                  "keyValue": { # A key value.
+                    "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty.
+                      { # A (kind, ID/name) pair used to construct a key path.
+                          #
+                          # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
+                        "kind": "A String", # The kind of the entity. Kinds matching regex "__.*__" are reserved/read-only. Cannot be "".
+                        "id": "A String", # The ID of the entity. Always > 0.
+                        "name": "A String", # The name of the entity. Names matching regex "__.*__" are reserved/read-only. Cannot be "".
+                      },
+                    ],
+                    "partitionId": { # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
+                      "namespace": "A String", # The namespace.
+                      "datasetId": "A String", # The dataset ID.
+                    },
+                  },
+                  "stringValue": "A String", # A UTF-8 encoded string value.
+                  "indexed": True or False, # If the value should be indexed.
+                      #
+                      # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
+                  "blobValue": "A String", # A blob value.
+                  "listValue": [ # A list value. Cannot contain another list value. Cannot also have a meaning and indexing set.
+                    # Object with schema name: Value
+                  ],
+                  "booleanValue": True or False, # A boolean value.
+                  "blobKeyValue": "A String", # A blob key value.
+                },
+              ],
+              "booleanValue": True or False, # A boolean value.
+              "blobKeyValue": "A String", # A blob key value.
+            },
+          },
+          "key": { # The entity's key.
+              #
+              # An entity must have a key, unless otherwise documented (for example, an entity in Value.entityValue may have no key). An entity's kind is its key's path's last element's kind, or null if it has no key.
+            "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty.
+              { # A (kind, ID/name) pair used to construct a key path.
+                  #
+                  # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
+                "kind": "A String", # The kind of the entity. Kinds matching regex "__.*__" are reserved/read-only. Cannot be "".
+                "id": "A String", # The ID of the entity. Always > 0.
+                "name": "A String", # The name of the entity. Names matching regex "__.*__" are reserved/read-only. Cannot be "".
+              },
+            ],
+            "partitionId": { # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
+              "namespace": "A String", # The namespace.
+              "datasetId": "A String", # The dataset ID.
+            },
+          },
+        },
+      ],
+      "delete": [ # Keys of entities to delete. Each key must have a complete key path and must not be reserved/read-only.
+        {
+          "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty.
+            { # A (kind, ID/name) pair used to construct a key path.
+                #
+                # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
+              "kind": "A String", # The kind of the entity. Kinds matching regex "__.*__" are reserved/read-only. Cannot be "".
+              "id": "A String", # The ID of the entity. Always > 0.
+              "name": "A String", # The name of the entity. Names matching regex "__.*__" are reserved/read-only. Cannot be "".
+            },
+          ],
+          "partitionId": { # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
+            "namespace": "A String", # The namespace.
+            "datasetId": "A String", # The dataset ID.
+          },
+        },
+      ],
+      "upsert": [ # Entities to upsert. Each upserted entity's key must have a complete path and must not be reserved/read-only.
+        {
+          "properties": { # The entity's properties.
+            "a_key": { # The name of the property. Properties with names matching regex "__.*__" are reserved. A reserved property name is forbidden in certain documented contexts. The name cannot be "".
+              "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
+              "doubleValue": 3.14, # A double value.
+              "integerValue": "A String", # An integer value.
+              "meaning": 42, # The meaning field is reserved and should not be used.
+              "dateTimeValue": "A String", # A timestamp value.
+              "keyValue": { # A key value.
+                "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty.
+                  { # A (kind, ID/name) pair used to construct a key path.
+                      #
+                      # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
+                    "kind": "A String", # The kind of the entity. Kinds matching regex "__.*__" are reserved/read-only. Cannot be "".
+                    "id": "A String", # The ID of the entity. Always > 0.
+                    "name": "A String", # The name of the entity. Names matching regex "__.*__" are reserved/read-only. Cannot be "".
+                  },
+                ],
+                "partitionId": { # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
+                  "namespace": "A String", # The namespace.
+                  "datasetId": "A String", # The dataset ID.
+                },
+              },
+              "stringValue": "A String", # A UTF-8 encoded string value.
+              "indexed": True or False, # If the value should be indexed.
+                  #
+                  # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
+              "blobValue": "A String", # A blob value.
+              "listValue": [ # A list value. Cannot contain another list value. Cannot also have a meaning and indexing set.
+                {
+                  "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
+                  "doubleValue": 3.14, # A double value.
+                  "integerValue": "A String", # An integer value.
+                  "meaning": 42, # The meaning field is reserved and should not be used.
+                  "dateTimeValue": "A String", # A timestamp value.
+                  "keyValue": { # A key value.
+                    "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty.
+                      { # A (kind, ID/name) pair used to construct a key path.
+                          #
+                          # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
+                        "kind": "A String", # The kind of the entity. Kinds matching regex "__.*__" are reserved/read-only. Cannot be "".
+                        "id": "A String", # The ID of the entity. Always > 0.
+                        "name": "A String", # The name of the entity. Names matching regex "__.*__" are reserved/read-only. Cannot be "".
+                      },
+                    ],
+                    "partitionId": { # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
+                      "namespace": "A String", # The namespace.
+                      "datasetId": "A String", # The dataset ID.
+                    },
+                  },
+                  "stringValue": "A String", # A UTF-8 encoded string value.
+                  "indexed": True or False, # If the value should be indexed.
+                      #
+                      # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
+                  "blobValue": "A String", # A blob value.
+                  "listValue": [ # A list value. Cannot contain another list value. Cannot also have a meaning and indexing set.
+                    # Object with schema name: Value
+                  ],
+                  "booleanValue": True or False, # A boolean value.
+                  "blobKeyValue": "A String", # A blob key value.
+                },
+              ],
+              "booleanValue": True or False, # A boolean value.
+              "blobKeyValue": "A String", # A blob key value.
+            },
+          },
+          "key": { # The entity's key.
+              #
+              # An entity must have a key, unless otherwise documented (for example, an entity in Value.entityValue may have no key). An entity's kind is its key's path's last element's kind, or null if it has no key.
+            "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty.
+              { # A (kind, ID/name) pair used to construct a key path.
+                  #
+                  # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
+                "kind": "A String", # The kind of the entity. Kinds matching regex "__.*__" are reserved/read-only. Cannot be "".
+                "id": "A String", # The ID of the entity. Always > 0.
+                "name": "A String", # The name of the entity. Names matching regex "__.*__" are reserved/read-only. Cannot be "".
+              },
+            ],
+            "partitionId": { # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
+              "namespace": "A String", # The namespace.
+              "datasetId": "A String", # The dataset ID.
+            },
+          },
+        },
+      ],
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "header": {
+      "kind": "datastore#responseHeader", # The kind, fixed to "datastore#responseHeader".
+    },
+    "mutationResult": { # The result of performing the mutation (if any).
+      "insertAutoIdKeys": [ # Keys for insertAutoId entities. One per entity from the request, in the same order.
+        {
+          "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty.
+            { # A (kind, ID/name) pair used to construct a key path.
+                #
+                # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
+              "kind": "A String", # The kind of the entity. Kinds matching regex "__.*__" are reserved/read-only. Cannot be "".
+              "id": "A String", # The ID of the entity. Always > 0.
+              "name": "A String", # The name of the entity. Names matching regex "__.*__" are reserved/read-only. Cannot be "".
+            },
+          ],
+          "partitionId": { # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
+            "namespace": "A String", # The namespace.
+            "datasetId": "A String", # The dataset ID.
+          },
+        },
+      ],
+      "indexUpdates": 42, # Number of index writes.
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="lookup">lookup(datasetId, body)</code>
+  <pre>Look up some entities by key.
+
+Args:
+  datasetId: string, Identifies the dataset. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "keys": [ # Keys of entities to look up from the datastore.
+      {
+        "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty.
+          { # A (kind, ID/name) pair used to construct a key path.
+              #
+              # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
+            "kind": "A String", # The kind of the entity. Kinds matching regex "__.*__" are reserved/read-only. Cannot be "".
+            "id": "A String", # The ID of the entity. Always > 0.
+            "name": "A String", # The name of the entity. Names matching regex "__.*__" are reserved/read-only. Cannot be "".
+          },
+        ],
+        "partitionId": { # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
+          "namespace": "A String", # The namespace.
+          "datasetId": "A String", # The dataset ID.
+        },
+      },
+    ],
+    "readOptions": { # Options for this lookup request. Optional.
+      "transaction": "A String", # The transaction to use. Optional.
+      "readConsistency": "A String", # The read consistency to use. One of default, strong, or eventual. Cannot be set when transaction is set. Lookup and ancestor queries default to strong, global queries default to eventual and cannot be set to strong. Optional. Default is default.
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "deferred": [ # A list of keys that were not looked up due to resource constraints.
+      {
+        "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty.
+          { # A (kind, ID/name) pair used to construct a key path.
+              #
+              # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
+            "kind": "A String", # The kind of the entity. Kinds matching regex "__.*__" are reserved/read-only. Cannot be "".
+            "id": "A String", # The ID of the entity. Always > 0.
+            "name": "A String", # The name of the entity. Names matching regex "__.*__" are reserved/read-only. Cannot be "".
+          },
+        ],
+        "partitionId": { # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
+          "namespace": "A String", # The namespace.
+          "datasetId": "A String", # The dataset ID.
+        },
+      },
+    ],
+    "missing": [ # Entities not found, with only the key populated.
+      {
+        "entity": { # The resulting entity.
+          "properties": { # The entity's properties.
+            "a_key": { # The name of the property. Properties with names matching regex "__.*__" are reserved. A reserved property name is forbidden in certain documented contexts. The name cannot be "".
+              "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
+              "doubleValue": 3.14, # A double value.
+              "integerValue": "A String", # An integer value.
+              "meaning": 42, # The meaning field is reserved and should not be used.
+              "dateTimeValue": "A String", # A timestamp value.
+              "keyValue": { # A key value.
+                "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty.
+                  { # A (kind, ID/name) pair used to construct a key path.
+                      #
+                      # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
+                    "kind": "A String", # The kind of the entity. Kinds matching regex "__.*__" are reserved/read-only. Cannot be "".
+                    "id": "A String", # The ID of the entity. Always > 0.
+                    "name": "A String", # The name of the entity. Names matching regex "__.*__" are reserved/read-only. Cannot be "".
+                  },
+                ],
+                "partitionId": { # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
+                  "namespace": "A String", # The namespace.
+                  "datasetId": "A String", # The dataset ID.
+                },
+              },
+              "stringValue": "A String", # A UTF-8 encoded string value.
+              "indexed": True or False, # If the value should be indexed.
+                  #
+                  # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
+              "blobValue": "A String", # A blob value.
+              "listValue": [ # A list value. Cannot contain another list value. Cannot also have a meaning and indexing set.
+                {
+                  "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
+                  "doubleValue": 3.14, # A double value.
+                  "integerValue": "A String", # An integer value.
+                  "meaning": 42, # The meaning field is reserved and should not be used.
+                  "dateTimeValue": "A String", # A timestamp value.
+                  "keyValue": { # A key value.
+                    "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty.
+                      { # A (kind, ID/name) pair used to construct a key path.
+                          #
+                          # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
+                        "kind": "A String", # The kind of the entity. Kinds matching regex "__.*__" are reserved/read-only. Cannot be "".
+                        "id": "A String", # The ID of the entity. Always > 0.
+                        "name": "A String", # The name of the entity. Names matching regex "__.*__" are reserved/read-only. Cannot be "".
+                      },
+                    ],
+                    "partitionId": { # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
+                      "namespace": "A String", # The namespace.
+                      "datasetId": "A String", # The dataset ID.
+                    },
+                  },
+                  "stringValue": "A String", # A UTF-8 encoded string value.
+                  "indexed": True or False, # If the value should be indexed.
+                      #
+                      # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
+                  "blobValue": "A String", # A blob value.
+                  "listValue": [ # A list value. Cannot contain another list value. Cannot also have a meaning and indexing set.
+                    # Object with schema name: Value
+                  ],
+                  "booleanValue": True or False, # A boolean value.
+                  "blobKeyValue": "A String", # A blob key value.
+                },
+              ],
+              "booleanValue": True or False, # A boolean value.
+              "blobKeyValue": "A String", # A blob key value.
+            },
+          },
+          "key": { # The entity's key.
+              #
+              # An entity must have a key, unless otherwise documented (for example, an entity in Value.entityValue may have no key). An entity's kind is its key's path's last element's kind, or null if it has no key.
+            "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty.
+              { # A (kind, ID/name) pair used to construct a key path.
+                  #
+                  # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
+                "kind": "A String", # The kind of the entity. Kinds matching regex "__.*__" are reserved/read-only. Cannot be "".
+                "id": "A String", # The ID of the entity. Always > 0.
+                "name": "A String", # The name of the entity. Names matching regex "__.*__" are reserved/read-only. Cannot be "".
+              },
+            ],
+            "partitionId": { # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
+              "namespace": "A String", # The namespace.
+              "datasetId": "A String", # The dataset ID.
+            },
+          },
+        },
+      },
+    ],
+    "header": {
+      "kind": "datastore#responseHeader", # The kind, fixed to "datastore#responseHeader".
+    },
+    "found": [ # Entities found.
+      {
+        "entity": { # The resulting entity.
+          "properties": { # The entity's properties.
+            "a_key": { # The name of the property. Properties with names matching regex "__.*__" are reserved. A reserved property name is forbidden in certain documented contexts. The name cannot be "".
+              "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
+              "doubleValue": 3.14, # A double value.
+              "integerValue": "A String", # An integer value.
+              "meaning": 42, # The meaning field is reserved and should not be used.
+              "dateTimeValue": "A String", # A timestamp value.
+              "keyValue": { # A key value.
+                "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty.
+                  { # A (kind, ID/name) pair used to construct a key path.
+                      #
+                      # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
+                    "kind": "A String", # The kind of the entity. Kinds matching regex "__.*__" are reserved/read-only. Cannot be "".
+                    "id": "A String", # The ID of the entity. Always > 0.
+                    "name": "A String", # The name of the entity. Names matching regex "__.*__" are reserved/read-only. Cannot be "".
+                  },
+                ],
+                "partitionId": { # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
+                  "namespace": "A String", # The namespace.
+                  "datasetId": "A String", # The dataset ID.
+                },
+              },
+              "stringValue": "A String", # A UTF-8 encoded string value.
+              "indexed": True or False, # If the value should be indexed.
+                  #
+                  # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
+              "blobValue": "A String", # A blob value.
+              "listValue": [ # A list value. Cannot contain another list value. Cannot also have a meaning and indexing set.
+                {
+                  "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
+                  "doubleValue": 3.14, # A double value.
+                  "integerValue": "A String", # An integer value.
+                  "meaning": 42, # The meaning field is reserved and should not be used.
+                  "dateTimeValue": "A String", # A timestamp value.
+                  "keyValue": { # A key value.
+                    "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty.
+                      { # A (kind, ID/name) pair used to construct a key path.
+                          #
+                          # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
+                        "kind": "A String", # The kind of the entity. Kinds matching regex "__.*__" are reserved/read-only. Cannot be "".
+                        "id": "A String", # The ID of the entity. Always > 0.
+                        "name": "A String", # The name of the entity. Names matching regex "__.*__" are reserved/read-only. Cannot be "".
+                      },
+                    ],
+                    "partitionId": { # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
+                      "namespace": "A String", # The namespace.
+                      "datasetId": "A String", # The dataset ID.
+                    },
+                  },
+                  "stringValue": "A String", # A UTF-8 encoded string value.
+                  "indexed": True or False, # If the value should be indexed.
+                      #
+                      # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
+                  "blobValue": "A String", # A blob value.
+                  "listValue": [ # A list value. Cannot contain another list value. Cannot also have a meaning and indexing set.
+                    # Object with schema name: Value
+                  ],
+                  "booleanValue": True or False, # A boolean value.
+                  "blobKeyValue": "A String", # A blob key value.
+                },
+              ],
+              "booleanValue": True or False, # A boolean value.
+              "blobKeyValue": "A String", # A blob key value.
+            },
+          },
+          "key": { # The entity's key.
+              #
+              # An entity must have a key, unless otherwise documented (for example, an entity in Value.entityValue may have no key). An entity's kind is its key's path's last element's kind, or null if it has no key.
+            "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty.
+              { # A (kind, ID/name) pair used to construct a key path.
+                  #
+                  # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
+                "kind": "A String", # The kind of the entity. Kinds matching regex "__.*__" are reserved/read-only. Cannot be "".
+                "id": "A String", # The ID of the entity. Always > 0.
+                "name": "A String", # The name of the entity. Names matching regex "__.*__" are reserved/read-only. Cannot be "".
+              },
+            ],
+            "partitionId": { # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
+              "namespace": "A String", # The namespace.
+              "datasetId": "A String", # The dataset ID.
+            },
+          },
+        },
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="rollback">rollback(datasetId, body)</code>
+  <pre>Roll back a transaction.
+
+Args:
+  datasetId: string, Identifies the dataset. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "transaction": "A String", # The transaction identifier, returned by a call to beginTransaction.
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "header": {
+      "kind": "datastore#responseHeader", # The kind, fixed to "datastore#responseHeader".
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="runQuery">runQuery(datasetId, body)</code>
+  <pre>Query for entities.
+
+Args:
+  datasetId: string, Identifies the dataset. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "query": { # The query to run. Either this field or field gql_query must be set, but not both.
+      "startCursor": "A String", # A starting point for the query results. Optional. Query cursors are returned in query result batches.
+      "kinds": [ # The kinds to query (if empty, returns entities from all kinds).
+        {
+          "name": "A String", # The name of the kind.
+        },
+      ],
+      "projection": [ # The projection to return. If not set the entire entity is returned.
+        {
+          "aggregationFunction": "A String", # The aggregation function to apply to the property. Optional. Can only be used when grouping by at least one property. Must then be set on all properties in the projection that are not being grouped by. Aggregation functions: first selects the first result as determined by the query's order.
+          "property": { # The property to project.
+            "name": "A String", # The name of the property.
+          },
+        },
+      ],
+      "order": [ # The order to apply to the query results (if empty, order is unspecified).
+        {
+          "direction": "A String", # The direction to order by. One of ascending or descending. Optional, defaults to ascending.
+          "property": { # The property to order by.
+            "name": "A String", # The name of the property.
+          },
+        },
+      ],
+      "filter": { # The filter to apply (optional).
+        "compositeFilter": { # A composite filter.
+          "operator": "A String", # The operator for combining multiple filters. Only "and" is currently supported.
+          "filters": [ # The list of filters to combine. Must contain at least one filter.
+            # Object with schema name: Filter
+          ],
+        },
+        "propertyFilter": { # A filter on a property.
+          "operator": "A String", # The operator to filter by. One of lessThan, lessThanOrEqual, greaterThan, greaterThanOrEqual, equal, or hasAncestor.
+          "property": { # The property to filter by.
+            "name": "A String", # The name of the property.
+          },
+          "value": { # The value to compare the property to.
+            "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
+            "doubleValue": 3.14, # A double value.
+            "integerValue": "A String", # An integer value.
+            "meaning": 42, # The meaning field is reserved and should not be used.
+            "dateTimeValue": "A String", # A timestamp value.
+            "keyValue": { # A key value.
+              "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty.
+                { # A (kind, ID/name) pair used to construct a key path.
+                    #
+                    # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
+                  "kind": "A String", # The kind of the entity. Kinds matching regex "__.*__" are reserved/read-only. Cannot be "".
+                  "id": "A String", # The ID of the entity. Always > 0.
+                  "name": "A String", # The name of the entity. Names matching regex "__.*__" are reserved/read-only. Cannot be "".
+                },
+              ],
+              "partitionId": { # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
+                "namespace": "A String", # The namespace.
+                "datasetId": "A String", # The dataset ID.
+              },
+            },
+            "stringValue": "A String", # A UTF-8 encoded string value.
+            "indexed": True or False, # If the value should be indexed.
+                #
+                # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
+            "blobValue": "A String", # A blob value.
+            "listValue": [ # A list value. Cannot contain another list value. Cannot also have a meaning and indexing set.
+              # Object with schema name: Value
+            ],
+            "booleanValue": True or False, # A boolean value.
+            "blobKeyValue": "A String", # A blob key value.
+          },
+        },
+      },
+      "limit": 42, # The maximum number of results to return. Applies after all other constraints. Optional.
+      "offset": 42, # The number of results to skip. Applies before limit, but after all other constraints (optional, defaults to 0).
+      "endCursor": "A String", # An ending point for the query results. Optional. Query cursors are returned in query result batches.
+      "groupBy": [ # The properties to group by (if empty, no grouping is applied to the result set).
+        {
+          "name": "A String", # The name of the property.
+        },
+      ],
+    },
+    "partitionId": { # Entities are partitioned into subsets, identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
+      "namespace": "A String", # The namespace.
+      "datasetId": "A String", # The dataset ID.
+    },
+    "gqlQuery": { # The GQL query to run. Either this field or field query must be set, but not both.
+      "queryString": "A String",
+      "nameArgs": [ # A named argument must set field GqlQueryArg.name. No two named arguments may have the same name. For each non-reserved named binding site in the query string, there must be a named argument with that name, but not necessarily the inverse.
+        {
+          "cursor": "A String",
+          "name": "A String", # Must match regex "[A-Za-z_$][A-Za-z_$0-9]*". Must not match regex "__.*__". Must not be "".
+          "value": {
+            "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
+            "doubleValue": 3.14, # A double value.
+            "integerValue": "A String", # An integer value.
+            "meaning": 42, # The meaning field is reserved and should not be used.
+            "dateTimeValue": "A String", # A timestamp value.
+            "keyValue": { # A key value.
+              "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty.
+                { # A (kind, ID/name) pair used to construct a key path.
+                    #
+                    # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
+                  "kind": "A String", # The kind of the entity. Kinds matching regex "__.*__" are reserved/read-only. Cannot be "".
+                  "id": "A String", # The ID of the entity. Always > 0.
+                  "name": "A String", # The name of the entity. Names matching regex "__.*__" are reserved/read-only. Cannot be "".
+                },
+              ],
+              "partitionId": { # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
+                "namespace": "A String", # The namespace.
+                "datasetId": "A String", # The dataset ID.
+              },
+            },
+            "stringValue": "A String", # A UTF-8 encoded string value.
+            "indexed": True or False, # If the value should be indexed.
+                #
+                # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
+            "blobValue": "A String", # A blob value.
+            "listValue": [ # A list value. Cannot contain another list value. Cannot also have a meaning and indexing set.
+              # Object with schema name: Value
+            ],
+            "booleanValue": True or False, # A boolean value.
+            "blobKeyValue": "A String", # A blob key value.
+          },
+        },
+      ],
+      "allowLiteral": True or False, # When false, the query string must not contain a literal.
+      "numberArgs": [ # Numbered binding site @1 references the first numbered argument, effectively using 1-based indexing, rather than the usual 0. A numbered argument must NOT set field GqlQueryArg.name. For each binding site numbered i in query_string, there must be an ith numbered argument. The inverse must also be true.
+        {
+          "cursor": "A String",
+          "name": "A String", # Must match regex "[A-Za-z_$][A-Za-z_$0-9]*". Must not match regex "__.*__". Must not be "".
+          "value": {
+            "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
+            "doubleValue": 3.14, # A double value.
+            "integerValue": "A String", # An integer value.
+            "meaning": 42, # The meaning field is reserved and should not be used.
+            "dateTimeValue": "A String", # A timestamp value.
+            "keyValue": { # A key value.
+              "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty.
+                { # A (kind, ID/name) pair used to construct a key path.
+                    #
+                    # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
+                  "kind": "A String", # The kind of the entity. Kinds matching regex "__.*__" are reserved/read-only. Cannot be "".
+                  "id": "A String", # The ID of the entity. Always > 0.
+                  "name": "A String", # The name of the entity. Names matching regex "__.*__" are reserved/read-only. Cannot be "".
+                },
+              ],
+              "partitionId": { # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
+                "namespace": "A String", # The namespace.
+                "datasetId": "A String", # The dataset ID.
+              },
+            },
+            "stringValue": "A String", # A UTF-8 encoded string value.
+            "indexed": True or False, # If the value should be indexed.
+                #
+                # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
+            "blobValue": "A String", # A blob value.
+            "listValue": [ # A list value. Cannot contain another list value. Cannot also have a meaning and indexing set.
+              # Object with schema name: Value
+            ],
+            "booleanValue": True or False, # A boolean value.
+            "blobKeyValue": "A String", # A blob key value.
+          },
+        },
+      ],
+    },
+    "readOptions": { # The options for this query.
+      "transaction": "A String", # The transaction to use. Optional.
+      "readConsistency": "A String", # The read consistency to use. One of default, strong, or eventual. Cannot be set when transaction is set. Lookup and ancestor queries default to strong, global queries default to eventual and cannot be set to strong. Optional. Default is default.
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "header": {
+      "kind": "datastore#responseHeader", # The kind, fixed to "datastore#responseHeader".
+    },
+    "batch": { # A batch of query results (always present).
+      "moreResults": "A String", # The state of the query after the current batch. One of notFinished, moreResultsAfterLimit, noMoreResults.
+      "entityResults": [ # The results for this batch.
+        {
+          "entity": { # The resulting entity.
+            "properties": { # The entity's properties.
+              "a_key": { # The name of the property. Properties with names matching regex "__.*__" are reserved. A reserved property name is forbidden in certain documented contexts. The name cannot be "".
+                "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
+                "doubleValue": 3.14, # A double value.
+                "integerValue": "A String", # An integer value.
+                "meaning": 42, # The meaning field is reserved and should not be used.
+                "dateTimeValue": "A String", # A timestamp value.
+                "keyValue": { # A key value.
+                  "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty.
+                    { # A (kind, ID/name) pair used to construct a key path.
+                        #
+                        # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
+                      "kind": "A String", # The kind of the entity. Kinds matching regex "__.*__" are reserved/read-only. Cannot be "".
+                      "id": "A String", # The ID of the entity. Always > 0.
+                      "name": "A String", # The name of the entity. Names matching regex "__.*__" are reserved/read-only. Cannot be "".
+                    },
+                  ],
+                  "partitionId": { # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
+                    "namespace": "A String", # The namespace.
+                    "datasetId": "A String", # The dataset ID.
+                  },
+                },
+                "stringValue": "A String", # A UTF-8 encoded string value.
+                "indexed": True or False, # If the value should be indexed.
+                    #
+                    # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
+                "blobValue": "A String", # A blob value.
+                "listValue": [ # A list value. Cannot contain another list value. Cannot also have a meaning and indexing set.
+                  {
+                    "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
+                    "doubleValue": 3.14, # A double value.
+                    "integerValue": "A String", # An integer value.
+                    "meaning": 42, # The meaning field is reserved and should not be used.
+                    "dateTimeValue": "A String", # A timestamp value.
+                    "keyValue": { # A key value.
+                      "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty.
+                        { # A (kind, ID/name) pair used to construct a key path.
+                            #
+                            # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
+                          "kind": "A String", # The kind of the entity. Kinds matching regex "__.*__" are reserved/read-only. Cannot be "".
+                          "id": "A String", # The ID of the entity. Always > 0.
+                          "name": "A String", # The name of the entity. Names matching regex "__.*__" are reserved/read-only. Cannot be "".
+                        },
+                      ],
+                      "partitionId": { # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
+                        "namespace": "A String", # The namespace.
+                        "datasetId": "A String", # The dataset ID.
+                      },
+                    },
+                    "stringValue": "A String", # A UTF-8 encoded string value.
+                    "indexed": True or False, # If the value should be indexed.
+                        #
+                        # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
+                    "blobValue": "A String", # A blob value.
+                    "listValue": [ # A list value. Cannot contain another list value. Cannot also have a meaning and indexing set.
+                      # Object with schema name: Value
+                    ],
+                    "booleanValue": True or False, # A boolean value.
+                    "blobKeyValue": "A String", # A blob key value.
+                  },
+                ],
+                "booleanValue": True or False, # A boolean value.
+                "blobKeyValue": "A String", # A blob key value.
+              },
+            },
+            "key": { # The entity's key.
+                #
+                # An entity must have a key, unless otherwise documented (for example, an entity in Value.entityValue may have no key). An entity's kind is its key's path's last element's kind, or null if it has no key.
+              "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty.
+                { # A (kind, ID/name) pair used to construct a key path.
+                    #
+                    # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
+                  "kind": "A String", # The kind of the entity. Kinds matching regex "__.*__" are reserved/read-only. Cannot be "".
+                  "id": "A String", # The ID of the entity. Always > 0.
+                  "name": "A String", # The name of the entity. Names matching regex "__.*__" are reserved/read-only. Cannot be "".
+                },
+              ],
+              "partitionId": { # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
+                "namespace": "A String", # The namespace.
+                "datasetId": "A String", # The dataset ID.
+              },
+            },
+          },
+        },
+      ],
+      "skippedResults": 42, # The number of results skipped because of Query.offset.
+      "endCursor": "A String", # A cursor that points to the position after the last result in the batch. May be absent.
+      "entityResultType": "A String", # The result type for every entity in entityResults. full for full entities, projection for entities with only projected properties, keyOnly for entities with only a key.
+    },
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/datastore_v1beta2.html b/docs/dyn/datastore_v1beta2.html
new file mode 100644
index 0000000..d170eda
--- /dev/null
+++ b/docs/dyn/datastore_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="datastore_v1beta2.html">Google Cloud Datastore API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="datastore_v1beta2.datasets.html">datasets()</a></code>
+</p>
+<p class="firstline">Returns the datasets Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v1_3.dimensionValues.html b/docs/dyn/dfareporting_v1_3.dimensionValues.html
new file mode 100644
index 0000000..f9ed90f
--- /dev/null
+++ b/docs/dyn/dfareporting_v1_3.dimensionValues.html
@@ -0,0 +1,148 @@
+<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_v1_3.html">DFA Reporting API</a> . <a href="dfareporting_v1_3.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. One of:
+            # - EXACT (default if not specified)
+            # - CONTAINS
+            # - BEGINS_WITH
+            # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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_v1_3.files.html b/docs/dyn/dfareporting_v1_3.files.html
new file mode 100644
index 0000000..2b67078
--- /dev/null
+++ b/docs/dyn/dfareporting_v1_3.files.html
@@ -0,0 +1,243 @@
+<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_v1_3.html">DFA Reporting API</a> . <a href="dfareporting_v1_3.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 meta-data 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, one of:
+        # - "PROCESSING"
+        # - "REPORT_AVAILABLE"
+        # - "FAILED"
+        # - "CANCELLED"
+    "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, one of:
+          # - "TODAY"
+          # - "YESTERDAY"
+          # - "WEEK_TO_DATE"
+          # - "MONTH_TO_DATE"
+          # - "QUARTER_TO_DATE"
+          # - "YEAR_TO_DATE"
+          # - "PREVIOUS_WEEK"
+          # - "PREVIOUS_MONTH"
+          # - "PREVIOUS_QUARTER"
+          # - "PREVIOUS_YEAR"
+          # - "LAST_7_DAYS"
+          # - "LAST_30_DAYS"
+          # - "LAST_90_DAYS"
+          # - "LAST_365_DAYS"
+          # - "LAST_24_MONTHS"
+    },
+    "fileName": "A String", # The file name 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 meta-data 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, one of:
+            # - "PROCESSING"
+            # - "REPORT_AVAILABLE"
+            # - "FAILED"
+            # - "CANCELLED"
+        "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, one of:
+              # - "TODAY"
+              # - "YESTERDAY"
+              # - "WEEK_TO_DATE"
+              # - "MONTH_TO_DATE"
+              # - "QUARTER_TO_DATE"
+              # - "YEAR_TO_DATE"
+              # - "PREVIOUS_WEEK"
+              # - "PREVIOUS_MONTH"
+              # - "PREVIOUS_QUARTER"
+              # - "PREVIOUS_YEAR"
+              # - "LAST_7_DAYS"
+              # - "LAST_30_DAYS"
+              # - "LAST_90_DAYS"
+              # - "LAST_365_DAYS"
+              # - "LAST_24_MONTHS"
+        },
+        "fileName": "A String", # The file name 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_v1_3.html b/docs/dyn/dfareporting_v1_3.html
new file mode 100644
index 0000000..1787adb
--- /dev/null
+++ b/docs/dyn/dfareporting_v1_3.html
@@ -0,0 +1,97 @@
+<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_v1_3.html">DFA Reporting API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="dfareporting_v1_3.dimensionValues.html">dimensionValues()</a></code>
+</p>
+<p class="firstline">Returns the dimensionValues Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v1_3.files.html">files()</a></code>
+</p>
+<p class="firstline">Returns the files Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v1_3.reports.html">reports()</a></code>
+</p>
+<p class="firstline">Returns the reports Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v1_3.userProfiles.html">userProfiles()</a></code>
+</p>
+<p class="firstline">Returns the userProfiles Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v1_3.reports.compatibleFields.html b/docs/dyn/dfareporting_v1_3.reports.compatibleFields.html
new file mode 100644
index 0000000..3ceb69c
--- /dev/null
+++ b/docs/dyn/dfareporting_v1_3.reports.compatibleFields.html
@@ -0,0 +1,763 @@
+<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_v1_3.html">DFA Reporting API</a> . <a href="dfareporting_v1_3.reports.html">reports</a> . <a href="dfareporting_v1_3.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, one of:
+              # - "ASCENDING"
+              # - "DESCENDING"
+        },
+      ],
+      "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, one of:
+            # - "TODAY"
+            # - "YESTERDAY"
+            # - "WEEK_TO_DATE"
+            # - "MONTH_TO_DATE"
+            # - "QUARTER_TO_DATE"
+            # - "YEAR_TO_DATE"
+            # - "PREVIOUS_WEEK"
+            # - "PREVIOUS_MONTH"
+            # - "PREVIOUS_QUARTER"
+            # - "PREVIOUS_YEAR"
+            # - "LAST_7_DAYS"
+            # - "LAST_30_DAYS"
+            # - "LAST_90_DAYS"
+            # - "LAST_365_DAYS"
+            # - "LAST_24_MONTHS"
+      },
+      "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, one of:
+              # - "ASCENDING"
+              # - "DESCENDING"
+        },
+      ],
+      "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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+            # - EXACT (default if not specified)
+            # - CONTAINS
+            # - BEGINS_WITH
+            # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+              # - "ASCENDING"
+              # - "DESCENDING"
+        },
+      ],
+    },
+    "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
+    "subAccountId": "A String", # The subbaccount 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. Possible values are:
+          # - DAY_OF_MONTH
+          # - WEEK_OF_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, one of:
+          # - "DAILY", also requires field "every" to be set.
+          # - "WEEKLY", also requires fields "every" and "repeatsOnWeekDays" to be set.
+          # - "TWICE_A_MONTH"
+          # - "MONTHLY", also requires fields "every" and "runsOnDayOfMonth" to be set.
+          # - "QUARTERLY"
+          # - "YEARLY"
+      "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
+        "A String",
+      ],
+    },
+    "format": "A String", # The output format of the report, one of:
+        # - "CSV"
+        # - "EXCEL"  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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+              # - "ASCENDING"
+              # - "DESCENDING"
+        },
+      ],
+      "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, one of:
+            # - "TODAY"
+            # - "YESTERDAY"
+            # - "WEEK_TO_DATE"
+            # - "MONTH_TO_DATE"
+            # - "QUARTER_TO_DATE"
+            # - "YEAR_TO_DATE"
+            # - "PREVIOUS_WEEK"
+            # - "PREVIOUS_MONTH"
+            # - "PREVIOUS_QUARTER"
+            # - "PREVIOUS_YEAR"
+            # - "LAST_7_DAYS"
+            # - "LAST_30_DAYS"
+            # - "LAST_90_DAYS"
+            # - "LAST_365_DAYS"
+            # - "LAST_24_MONTHS"
+      },
+      "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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+      },
+    },
+    "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, one of:
+              # - "ASCENDING"
+              # - "DESCENDING"
+        },
+      ],
+      "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, one of:
+            # - "TODAY"
+            # - "YESTERDAY"
+            # - "WEEK_TO_DATE"
+            # - "MONTH_TO_DATE"
+            # - "QUARTER_TO_DATE"
+            # - "YEAR_TO_DATE"
+            # - "PREVIOUS_WEEK"
+            # - "PREVIOUS_MONTH"
+            # - "PREVIOUS_QUARTER"
+            # - "PREVIOUS_YEAR"
+            # - "LAST_7_DAYS"
+            # - "LAST_30_DAYS"
+            # - "LAST_90_DAYS"
+            # - "LAST_365_DAYS"
+            # - "LAST_24_MONTHS"
+      },
+      "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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+            # - EXACT (default if not specified)
+            # - CONTAINS
+            # - BEGINS_WITH
+            # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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.
+      },
+    },
+    "activeGrpCriteria": { # The report criteria for a report of type "ACTIVE_GRP".
+      "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, one of:
+            # - "TODAY"
+            # - "YESTERDAY"
+            # - "WEEK_TO_DATE"
+            # - "MONTH_TO_DATE"
+            # - "QUARTER_TO_DATE"
+            # - "YEAR_TO_DATE"
+            # - "PREVIOUS_WEEK"
+            # - "PREVIOUS_MONTH"
+            # - "PREVIOUS_QUARTER"
+            # - "PREVIOUS_YEAR"
+            # - "LAST_7_DAYS"
+            # - "LAST_30_DAYS"
+            # - "LAST_90_DAYS"
+            # - "LAST_365_DAYS"
+            # - "LAST_24_MONTHS"
+      },
+      "metricNames": [ # The list of names of metrics the report should include.
+        "A String",
+      ],
+      "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.
+          # A valid active GRP report needs to have exactly one DimensionValue for the United States in addition to any advertiser or campaign dimension values.
+        { # 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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+      ],
+      "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, one of:
+              # - "ASCENDING"
+              # - "DESCENDING"
+        },
+      ],
+    },
+    "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. One of:
+          # - "ATTACHMENT"
+          # - "LINK"
+      "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, one of:
+              # - "ATTACHMENT"
+              # - "LINK"
+          "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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+              # - "ASCENDING"
+              # - "DESCENDING"
+        },
+      ],
+      "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, one of:
+            # - "TODAY"
+            # - "YESTERDAY"
+            # - "WEEK_TO_DATE"
+            # - "MONTH_TO_DATE"
+            # - "QUARTER_TO_DATE"
+            # - "YEAR_TO_DATE"
+            # - "PREVIOUS_WEEK"
+            # - "PREVIOUS_MONTH"
+            # - "PREVIOUS_QUARTER"
+            # - "PREVIOUS_YEAR"
+            # - "LAST_7_DAYS"
+            # - "LAST_30_DAYS"
+            # - "LAST_90_DAYS"
+            # - "LAST_365_DAYS"
+            # - "LAST_24_MONTHS"
+      },
+      "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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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.
+    "fileName": "A String", # The file name used when generating report files for this report.
+    "type": "A String", # The type of the report, one of:
+        # - STANDARD
+        # - REACH
+        # - ACTIVE_GRP
+        # - PATH_TO_CONVERSION
+        # - FLOODLIGHT
+        # - CROSS_DIMENSION_REACH
+    "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, one of:
+              # - "ASCENDING"
+              # - "DESCENDING"
+        },
+      ],
+      "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, one of:
+            # - "TODAY"
+            # - "YESTERDAY"
+            # - "WEEK_TO_DATE"
+            # - "MONTH_TO_DATE"
+            # - "QUARTER_TO_DATE"
+            # - "YEAR_TO_DATE"
+            # - "PREVIOUS_WEEK"
+            # - "PREVIOUS_MONTH"
+            # - "PREVIOUS_QUARTER"
+            # - "PREVIOUS_YEAR"
+            # - "LAST_7_DAYS"
+            # - "LAST_30_DAYS"
+            # - "LAST_90_DAYS"
+            # - "LAST_365_DAYS"
+            # - "LAST_24_MONTHS"
+      },
+      "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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+          # - "ADVERTISER"
+          # - "CAMPAIGN"
+          # - "SITE_BY_ADVERTISER"
+          # - "SITE_BY_CAMPAIGN"
+    },
+    "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_v1_3.reports.files.html b/docs/dyn/dfareporting_v1_3.reports.files.html
new file mode 100644
index 0000000..60ba96a
--- /dev/null
+++ b/docs/dyn/dfareporting_v1_3.reports.files.html
@@ -0,0 +1,241 @@
+<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_v1_3.html">DFA Reporting API</a> . <a href="dfareporting_v1_3.reports.html">reports</a> . <a href="dfareporting_v1_3.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 meta-data 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, one of:
+        # - "PROCESSING"
+        # - "REPORT_AVAILABLE"
+        # - "FAILED"
+        # - "CANCELLED"
+    "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, one of:
+          # - "TODAY"
+          # - "YESTERDAY"
+          # - "WEEK_TO_DATE"
+          # - "MONTH_TO_DATE"
+          # - "QUARTER_TO_DATE"
+          # - "YEAR_TO_DATE"
+          # - "PREVIOUS_WEEK"
+          # - "PREVIOUS_MONTH"
+          # - "PREVIOUS_QUARTER"
+          # - "PREVIOUS_YEAR"
+          # - "LAST_7_DAYS"
+          # - "LAST_30_DAYS"
+          # - "LAST_90_DAYS"
+          # - "LAST_365_DAYS"
+          # - "LAST_24_MONTHS"
+    },
+    "fileName": "A String", # The file name 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 meta-data 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, one of:
+            # - "PROCESSING"
+            # - "REPORT_AVAILABLE"
+            # - "FAILED"
+            # - "CANCELLED"
+        "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, one of:
+              # - "TODAY"
+              # - "YESTERDAY"
+              # - "WEEK_TO_DATE"
+              # - "MONTH_TO_DATE"
+              # - "QUARTER_TO_DATE"
+              # - "YEAR_TO_DATE"
+              # - "PREVIOUS_WEEK"
+              # - "PREVIOUS_MONTH"
+              # - "PREVIOUS_QUARTER"
+              # - "PREVIOUS_YEAR"
+              # - "LAST_7_DAYS"
+              # - "LAST_30_DAYS"
+              # - "LAST_90_DAYS"
+              # - "LAST_365_DAYS"
+              # - "LAST_24_MONTHS"
+        },
+        "fileName": "A String", # The file name 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_v1_3.reports.html b/docs/dyn/dfareporting_v1_3.reports.html
new file mode 100644
index 0000000..deb2bfa
--- /dev/null
+++ b/docs/dyn/dfareporting_v1_3.reports.html
@@ -0,0 +1,4510 @@
+<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_v1_3.html">DFA Reporting API</a> . <a href="dfareporting_v1_3.reports.html">reports</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="dfareporting_v1_3.reports.compatibleFields.html">compatibleFields()</a></code>
+</p>
+<p class="firstline">Returns the compatibleFields Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v1_3.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, one of:
+                # - "ASCENDING"
+                # - "DESCENDING"
+          },
+        ],
+        "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, one of:
+              # - "TODAY"
+              # - "YESTERDAY"
+              # - "WEEK_TO_DATE"
+              # - "MONTH_TO_DATE"
+              # - "QUARTER_TO_DATE"
+              # - "YEAR_TO_DATE"
+              # - "PREVIOUS_WEEK"
+              # - "PREVIOUS_MONTH"
+              # - "PREVIOUS_QUARTER"
+              # - "PREVIOUS_YEAR"
+              # - "LAST_7_DAYS"
+              # - "LAST_30_DAYS"
+              # - "LAST_90_DAYS"
+              # - "LAST_365_DAYS"
+              # - "LAST_24_MONTHS"
+        },
+        "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, one of:
+                # - "ASCENDING"
+                # - "DESCENDING"
+          },
+        ],
+        "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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+                # - "ASCENDING"
+                # - "DESCENDING"
+          },
+        ],
+      },
+      "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
+      "subAccountId": "A String", # The subbaccount 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. Possible values are:
+            # - DAY_OF_MONTH
+            # - WEEK_OF_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, one of:
+            # - "DAILY", also requires field "every" to be set.
+            # - "WEEKLY", also requires fields "every" and "repeatsOnWeekDays" to be set.
+            # - "TWICE_A_MONTH"
+            # - "MONTHLY", also requires fields "every" and "runsOnDayOfMonth" to be set.
+            # - "QUARTERLY"
+            # - "YEARLY"
+        "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
+          "A String",
+        ],
+      },
+      "format": "A String", # The output format of the report, one of:
+          # - "CSV"
+          # - "EXCEL"  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. One of:
+                  # - EXACT (default if not specified)
+                  # - CONTAINS
+                  # - BEGINS_WITH
+                  # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+                # - "ASCENDING"
+                # - "DESCENDING"
+          },
+        ],
+        "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, one of:
+              # - "TODAY"
+              # - "YESTERDAY"
+              # - "WEEK_TO_DATE"
+              # - "MONTH_TO_DATE"
+              # - "QUARTER_TO_DATE"
+              # - "YEAR_TO_DATE"
+              # - "PREVIOUS_WEEK"
+              # - "PREVIOUS_MONTH"
+              # - "PREVIOUS_QUARTER"
+              # - "PREVIOUS_YEAR"
+              # - "LAST_7_DAYS"
+              # - "LAST_30_DAYS"
+              # - "LAST_90_DAYS"
+              # - "LAST_365_DAYS"
+              # - "LAST_24_MONTHS"
+        },
+        "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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+                  # - EXACT (default if not specified)
+                  # - CONTAINS
+                  # - BEGINS_WITH
+                  # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+              "id": "A String", # The ID associated with the value if available.
+            },
+          ],
+        },
+      },
+      "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, one of:
+                # - "ASCENDING"
+                # - "DESCENDING"
+          },
+        ],
+        "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, one of:
+              # - "TODAY"
+              # - "YESTERDAY"
+              # - "WEEK_TO_DATE"
+              # - "MONTH_TO_DATE"
+              # - "QUARTER_TO_DATE"
+              # - "YEAR_TO_DATE"
+              # - "PREVIOUS_WEEK"
+              # - "PREVIOUS_MONTH"
+              # - "PREVIOUS_QUARTER"
+              # - "PREVIOUS_YEAR"
+              # - "LAST_7_DAYS"
+              # - "LAST_30_DAYS"
+              # - "LAST_90_DAYS"
+              # - "LAST_365_DAYS"
+              # - "LAST_24_MONTHS"
+        },
+        "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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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.
+        },
+      },
+      "activeGrpCriteria": { # The report criteria for a report of type "ACTIVE_GRP".
+        "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, one of:
+              # - "TODAY"
+              # - "YESTERDAY"
+              # - "WEEK_TO_DATE"
+              # - "MONTH_TO_DATE"
+              # - "QUARTER_TO_DATE"
+              # - "YEAR_TO_DATE"
+              # - "PREVIOUS_WEEK"
+              # - "PREVIOUS_MONTH"
+              # - "PREVIOUS_QUARTER"
+              # - "PREVIOUS_YEAR"
+              # - "LAST_7_DAYS"
+              # - "LAST_30_DAYS"
+              # - "LAST_90_DAYS"
+              # - "LAST_365_DAYS"
+              # - "LAST_24_MONTHS"
+        },
+        "metricNames": [ # The list of names of metrics the report should include.
+          "A String",
+        ],
+        "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.
+            # A valid active GRP report needs to have exactly one DimensionValue for the United States in addition to any advertiser or campaign dimension values.
+          { # 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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "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, one of:
+                # - "ASCENDING"
+                # - "DESCENDING"
+          },
+        ],
+      },
+      "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. One of:
+            # - "ATTACHMENT"
+            # - "LINK"
+        "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, one of:
+                # - "ATTACHMENT"
+                # - "LINK"
+            "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. One of:
+                  # - EXACT (default if not specified)
+                  # - CONTAINS
+                  # - BEGINS_WITH
+                  # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+                # - "ASCENDING"
+                # - "DESCENDING"
+          },
+        ],
+        "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, one of:
+              # - "TODAY"
+              # - "YESTERDAY"
+              # - "WEEK_TO_DATE"
+              # - "MONTH_TO_DATE"
+              # - "QUARTER_TO_DATE"
+              # - "YEAR_TO_DATE"
+              # - "PREVIOUS_WEEK"
+              # - "PREVIOUS_MONTH"
+              # - "PREVIOUS_QUARTER"
+              # - "PREVIOUS_YEAR"
+              # - "LAST_7_DAYS"
+              # - "LAST_30_DAYS"
+              # - "LAST_90_DAYS"
+              # - "LAST_365_DAYS"
+              # - "LAST_24_MONTHS"
+        },
+        "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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+                  # - EXACT (default if not specified)
+                  # - CONTAINS
+                  # - BEGINS_WITH
+                  # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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.
+      "fileName": "A String", # The file name used when generating report files for this report.
+      "type": "A String", # The type of the report, one of:
+          # - STANDARD
+          # - REACH
+          # - ACTIVE_GRP
+          # - PATH_TO_CONVERSION
+          # - FLOODLIGHT
+          # - CROSS_DIMENSION_REACH
+      "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, one of:
+                # - "ASCENDING"
+                # - "DESCENDING"
+          },
+        ],
+        "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, one of:
+              # - "TODAY"
+              # - "YESTERDAY"
+              # - "WEEK_TO_DATE"
+              # - "MONTH_TO_DATE"
+              # - "QUARTER_TO_DATE"
+              # - "YEAR_TO_DATE"
+              # - "PREVIOUS_WEEK"
+              # - "PREVIOUS_MONTH"
+              # - "PREVIOUS_QUARTER"
+              # - "PREVIOUS_YEAR"
+              # - "LAST_7_DAYS"
+              # - "LAST_30_DAYS"
+              # - "LAST_90_DAYS"
+              # - "LAST_365_DAYS"
+              # - "LAST_24_MONTHS"
+        },
+        "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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+            # - "ADVERTISER"
+            # - "CAMPAIGN"
+            # - "SITE_BY_ADVERTISER"
+            # - "SITE_BY_CAMPAIGN"
+      },
+      "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, one of:
+              # - "ASCENDING"
+              # - "DESCENDING"
+        },
+      ],
+      "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, one of:
+            # - "TODAY"
+            # - "YESTERDAY"
+            # - "WEEK_TO_DATE"
+            # - "MONTH_TO_DATE"
+            # - "QUARTER_TO_DATE"
+            # - "YEAR_TO_DATE"
+            # - "PREVIOUS_WEEK"
+            # - "PREVIOUS_MONTH"
+            # - "PREVIOUS_QUARTER"
+            # - "PREVIOUS_YEAR"
+            # - "LAST_7_DAYS"
+            # - "LAST_30_DAYS"
+            # - "LAST_90_DAYS"
+            # - "LAST_365_DAYS"
+            # - "LAST_24_MONTHS"
+      },
+      "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, one of:
+              # - "ASCENDING"
+              # - "DESCENDING"
+        },
+      ],
+      "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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+            # - EXACT (default if not specified)
+            # - CONTAINS
+            # - BEGINS_WITH
+            # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+              # - "ASCENDING"
+              # - "DESCENDING"
+        },
+      ],
+    },
+    "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
+    "subAccountId": "A String", # The subbaccount 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. Possible values are:
+          # - DAY_OF_MONTH
+          # - WEEK_OF_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, one of:
+          # - "DAILY", also requires field "every" to be set.
+          # - "WEEKLY", also requires fields "every" and "repeatsOnWeekDays" to be set.
+          # - "TWICE_A_MONTH"
+          # - "MONTHLY", also requires fields "every" and "runsOnDayOfMonth" to be set.
+          # - "QUARTERLY"
+          # - "YEARLY"
+      "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
+        "A String",
+      ],
+    },
+    "format": "A String", # The output format of the report, one of:
+        # - "CSV"
+        # - "EXCEL"  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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+              # - "ASCENDING"
+              # - "DESCENDING"
+        },
+      ],
+      "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, one of:
+            # - "TODAY"
+            # - "YESTERDAY"
+            # - "WEEK_TO_DATE"
+            # - "MONTH_TO_DATE"
+            # - "QUARTER_TO_DATE"
+            # - "YEAR_TO_DATE"
+            # - "PREVIOUS_WEEK"
+            # - "PREVIOUS_MONTH"
+            # - "PREVIOUS_QUARTER"
+            # - "PREVIOUS_YEAR"
+            # - "LAST_7_DAYS"
+            # - "LAST_30_DAYS"
+            # - "LAST_90_DAYS"
+            # - "LAST_365_DAYS"
+            # - "LAST_24_MONTHS"
+      },
+      "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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+      },
+    },
+    "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, one of:
+              # - "ASCENDING"
+              # - "DESCENDING"
+        },
+      ],
+      "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, one of:
+            # - "TODAY"
+            # - "YESTERDAY"
+            # - "WEEK_TO_DATE"
+            # - "MONTH_TO_DATE"
+            # - "QUARTER_TO_DATE"
+            # - "YEAR_TO_DATE"
+            # - "PREVIOUS_WEEK"
+            # - "PREVIOUS_MONTH"
+            # - "PREVIOUS_QUARTER"
+            # - "PREVIOUS_YEAR"
+            # - "LAST_7_DAYS"
+            # - "LAST_30_DAYS"
+            # - "LAST_90_DAYS"
+            # - "LAST_365_DAYS"
+            # - "LAST_24_MONTHS"
+      },
+      "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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+            # - EXACT (default if not specified)
+            # - CONTAINS
+            # - BEGINS_WITH
+            # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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.
+      },
+    },
+    "activeGrpCriteria": { # The report criteria for a report of type "ACTIVE_GRP".
+      "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, one of:
+            # - "TODAY"
+            # - "YESTERDAY"
+            # - "WEEK_TO_DATE"
+            # - "MONTH_TO_DATE"
+            # - "QUARTER_TO_DATE"
+            # - "YEAR_TO_DATE"
+            # - "PREVIOUS_WEEK"
+            # - "PREVIOUS_MONTH"
+            # - "PREVIOUS_QUARTER"
+            # - "PREVIOUS_YEAR"
+            # - "LAST_7_DAYS"
+            # - "LAST_30_DAYS"
+            # - "LAST_90_DAYS"
+            # - "LAST_365_DAYS"
+            # - "LAST_24_MONTHS"
+      },
+      "metricNames": [ # The list of names of metrics the report should include.
+        "A String",
+      ],
+      "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.
+          # A valid active GRP report needs to have exactly one DimensionValue for the United States in addition to any advertiser or campaign dimension values.
+        { # 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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+      ],
+      "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, one of:
+              # - "ASCENDING"
+              # - "DESCENDING"
+        },
+      ],
+    },
+    "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. One of:
+          # - "ATTACHMENT"
+          # - "LINK"
+      "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, one of:
+              # - "ATTACHMENT"
+              # - "LINK"
+          "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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+              # - "ASCENDING"
+              # - "DESCENDING"
+        },
+      ],
+      "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, one of:
+            # - "TODAY"
+            # - "YESTERDAY"
+            # - "WEEK_TO_DATE"
+            # - "MONTH_TO_DATE"
+            # - "QUARTER_TO_DATE"
+            # - "YEAR_TO_DATE"
+            # - "PREVIOUS_WEEK"
+            # - "PREVIOUS_MONTH"
+            # - "PREVIOUS_QUARTER"
+            # - "PREVIOUS_YEAR"
+            # - "LAST_7_DAYS"
+            # - "LAST_30_DAYS"
+            # - "LAST_90_DAYS"
+            # - "LAST_365_DAYS"
+            # - "LAST_24_MONTHS"
+      },
+      "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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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.
+    "fileName": "A String", # The file name used when generating report files for this report.
+    "type": "A String", # The type of the report, one of:
+        # - STANDARD
+        # - REACH
+        # - ACTIVE_GRP
+        # - PATH_TO_CONVERSION
+        # - FLOODLIGHT
+        # - CROSS_DIMENSION_REACH
+    "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, one of:
+              # - "ASCENDING"
+              # - "DESCENDING"
+        },
+      ],
+      "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, one of:
+            # - "TODAY"
+            # - "YESTERDAY"
+            # - "WEEK_TO_DATE"
+            # - "MONTH_TO_DATE"
+            # - "QUARTER_TO_DATE"
+            # - "YEAR_TO_DATE"
+            # - "PREVIOUS_WEEK"
+            # - "PREVIOUS_MONTH"
+            # - "PREVIOUS_QUARTER"
+            # - "PREVIOUS_YEAR"
+            # - "LAST_7_DAYS"
+            # - "LAST_30_DAYS"
+            # - "LAST_90_DAYS"
+            # - "LAST_365_DAYS"
+            # - "LAST_24_MONTHS"
+      },
+      "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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+          # - "ADVERTISER"
+          # - "CAMPAIGN"
+          # - "SITE_BY_ADVERTISER"
+          # - "SITE_BY_CAMPAIGN"
+    },
+    "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, one of:
+                # - "ASCENDING"
+                # - "DESCENDING"
+          },
+        ],
+        "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, one of:
+              # - "TODAY"
+              # - "YESTERDAY"
+              # - "WEEK_TO_DATE"
+              # - "MONTH_TO_DATE"
+              # - "QUARTER_TO_DATE"
+              # - "YEAR_TO_DATE"
+              # - "PREVIOUS_WEEK"
+              # - "PREVIOUS_MONTH"
+              # - "PREVIOUS_QUARTER"
+              # - "PREVIOUS_YEAR"
+              # - "LAST_7_DAYS"
+              # - "LAST_30_DAYS"
+              # - "LAST_90_DAYS"
+              # - "LAST_365_DAYS"
+              # - "LAST_24_MONTHS"
+        },
+        "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, one of:
+                # - "ASCENDING"
+                # - "DESCENDING"
+          },
+        ],
+        "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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+                # - "ASCENDING"
+                # - "DESCENDING"
+          },
+        ],
+      },
+      "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
+      "subAccountId": "A String", # The subbaccount 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. Possible values are:
+            # - DAY_OF_MONTH
+            # - WEEK_OF_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, one of:
+            # - "DAILY", also requires field "every" to be set.
+            # - "WEEKLY", also requires fields "every" and "repeatsOnWeekDays" to be set.
+            # - "TWICE_A_MONTH"
+            # - "MONTHLY", also requires fields "every" and "runsOnDayOfMonth" to be set.
+            # - "QUARTERLY"
+            # - "YEARLY"
+        "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
+          "A String",
+        ],
+      },
+      "format": "A String", # The output format of the report, one of:
+          # - "CSV"
+          # - "EXCEL"  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. One of:
+                  # - EXACT (default if not specified)
+                  # - CONTAINS
+                  # - BEGINS_WITH
+                  # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+                # - "ASCENDING"
+                # - "DESCENDING"
+          },
+        ],
+        "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, one of:
+              # - "TODAY"
+              # - "YESTERDAY"
+              # - "WEEK_TO_DATE"
+              # - "MONTH_TO_DATE"
+              # - "QUARTER_TO_DATE"
+              # - "YEAR_TO_DATE"
+              # - "PREVIOUS_WEEK"
+              # - "PREVIOUS_MONTH"
+              # - "PREVIOUS_QUARTER"
+              # - "PREVIOUS_YEAR"
+              # - "LAST_7_DAYS"
+              # - "LAST_30_DAYS"
+              # - "LAST_90_DAYS"
+              # - "LAST_365_DAYS"
+              # - "LAST_24_MONTHS"
+        },
+        "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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+                  # - EXACT (default if not specified)
+                  # - CONTAINS
+                  # - BEGINS_WITH
+                  # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+              "id": "A String", # The ID associated with the value if available.
+            },
+          ],
+        },
+      },
+      "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, one of:
+                # - "ASCENDING"
+                # - "DESCENDING"
+          },
+        ],
+        "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, one of:
+              # - "TODAY"
+              # - "YESTERDAY"
+              # - "WEEK_TO_DATE"
+              # - "MONTH_TO_DATE"
+              # - "QUARTER_TO_DATE"
+              # - "YEAR_TO_DATE"
+              # - "PREVIOUS_WEEK"
+              # - "PREVIOUS_MONTH"
+              # - "PREVIOUS_QUARTER"
+              # - "PREVIOUS_YEAR"
+              # - "LAST_7_DAYS"
+              # - "LAST_30_DAYS"
+              # - "LAST_90_DAYS"
+              # - "LAST_365_DAYS"
+              # - "LAST_24_MONTHS"
+        },
+        "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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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.
+        },
+      },
+      "activeGrpCriteria": { # The report criteria for a report of type "ACTIVE_GRP".
+        "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, one of:
+              # - "TODAY"
+              # - "YESTERDAY"
+              # - "WEEK_TO_DATE"
+              # - "MONTH_TO_DATE"
+              # - "QUARTER_TO_DATE"
+              # - "YEAR_TO_DATE"
+              # - "PREVIOUS_WEEK"
+              # - "PREVIOUS_MONTH"
+              # - "PREVIOUS_QUARTER"
+              # - "PREVIOUS_YEAR"
+              # - "LAST_7_DAYS"
+              # - "LAST_30_DAYS"
+              # - "LAST_90_DAYS"
+              # - "LAST_365_DAYS"
+              # - "LAST_24_MONTHS"
+        },
+        "metricNames": [ # The list of names of metrics the report should include.
+          "A String",
+        ],
+        "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.
+            # A valid active GRP report needs to have exactly one DimensionValue for the United States in addition to any advertiser or campaign dimension values.
+          { # 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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "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, one of:
+                # - "ASCENDING"
+                # - "DESCENDING"
+          },
+        ],
+      },
+      "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. One of:
+            # - "ATTACHMENT"
+            # - "LINK"
+        "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, one of:
+                # - "ATTACHMENT"
+                # - "LINK"
+            "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. One of:
+                  # - EXACT (default if not specified)
+                  # - CONTAINS
+                  # - BEGINS_WITH
+                  # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+                # - "ASCENDING"
+                # - "DESCENDING"
+          },
+        ],
+        "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, one of:
+              # - "TODAY"
+              # - "YESTERDAY"
+              # - "WEEK_TO_DATE"
+              # - "MONTH_TO_DATE"
+              # - "QUARTER_TO_DATE"
+              # - "YEAR_TO_DATE"
+              # - "PREVIOUS_WEEK"
+              # - "PREVIOUS_MONTH"
+              # - "PREVIOUS_QUARTER"
+              # - "PREVIOUS_YEAR"
+              # - "LAST_7_DAYS"
+              # - "LAST_30_DAYS"
+              # - "LAST_90_DAYS"
+              # - "LAST_365_DAYS"
+              # - "LAST_24_MONTHS"
+        },
+        "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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+                  # - EXACT (default if not specified)
+                  # - CONTAINS
+                  # - BEGINS_WITH
+                  # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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.
+      "fileName": "A String", # The file name used when generating report files for this report.
+      "type": "A String", # The type of the report, one of:
+          # - STANDARD
+          # - REACH
+          # - ACTIVE_GRP
+          # - PATH_TO_CONVERSION
+          # - FLOODLIGHT
+          # - CROSS_DIMENSION_REACH
+      "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, one of:
+                # - "ASCENDING"
+                # - "DESCENDING"
+          },
+        ],
+        "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, one of:
+              # - "TODAY"
+              # - "YESTERDAY"
+              # - "WEEK_TO_DATE"
+              # - "MONTH_TO_DATE"
+              # - "QUARTER_TO_DATE"
+              # - "YEAR_TO_DATE"
+              # - "PREVIOUS_WEEK"
+              # - "PREVIOUS_MONTH"
+              # - "PREVIOUS_QUARTER"
+              # - "PREVIOUS_YEAR"
+              # - "LAST_7_DAYS"
+              # - "LAST_30_DAYS"
+              # - "LAST_90_DAYS"
+              # - "LAST_365_DAYS"
+              # - "LAST_24_MONTHS"
+        },
+        "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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+            # - "ADVERTISER"
+            # - "CAMPAIGN"
+            # - "SITE_BY_ADVERTISER"
+            # - "SITE_BY_CAMPAIGN"
+      },
+      "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, one of:
+                    # - "ASCENDING"
+                    # - "DESCENDING"
+              },
+            ],
+            "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, one of:
+                  # - "TODAY"
+                  # - "YESTERDAY"
+                  # - "WEEK_TO_DATE"
+                  # - "MONTH_TO_DATE"
+                  # - "QUARTER_TO_DATE"
+                  # - "YEAR_TO_DATE"
+                  # - "PREVIOUS_WEEK"
+                  # - "PREVIOUS_MONTH"
+                  # - "PREVIOUS_QUARTER"
+                  # - "PREVIOUS_YEAR"
+                  # - "LAST_7_DAYS"
+                  # - "LAST_30_DAYS"
+                  # - "LAST_90_DAYS"
+                  # - "LAST_365_DAYS"
+                  # - "LAST_24_MONTHS"
+            },
+            "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, one of:
+                    # - "ASCENDING"
+                    # - "DESCENDING"
+              },
+            ],
+            "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. One of:
+                    # - EXACT (default if not specified)
+                    # - CONTAINS
+                    # - BEGINS_WITH
+                    # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+                    # - EXACT (default if not specified)
+                    # - CONTAINS
+                    # - BEGINS_WITH
+                    # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+                  # - EXACT (default if not specified)
+                  # - CONTAINS
+                  # - BEGINS_WITH
+                  # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+                    # - "ASCENDING"
+                    # - "DESCENDING"
+              },
+            ],
+          },
+          "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
+          "subAccountId": "A String", # The subbaccount 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. Possible values are:
+                # - DAY_OF_MONTH
+                # - WEEK_OF_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, one of:
+                # - "DAILY", also requires field "every" to be set.
+                # - "WEEKLY", also requires fields "every" and "repeatsOnWeekDays" to be set.
+                # - "TWICE_A_MONTH"
+                # - "MONTHLY", also requires fields "every" and "runsOnDayOfMonth" to be set.
+                # - "QUARTERLY"
+                # - "YEARLY"
+            "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
+              "A String",
+            ],
+          },
+          "format": "A String", # The output format of the report, one of:
+              # - "CSV"
+              # - "EXCEL"  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. One of:
+                      # - EXACT (default if not specified)
+                      # - CONTAINS
+                      # - BEGINS_WITH
+                      # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+                    # - "ASCENDING"
+                    # - "DESCENDING"
+              },
+            ],
+            "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, one of:
+                  # - "TODAY"
+                  # - "YESTERDAY"
+                  # - "WEEK_TO_DATE"
+                  # - "MONTH_TO_DATE"
+                  # - "QUARTER_TO_DATE"
+                  # - "YEAR_TO_DATE"
+                  # - "PREVIOUS_WEEK"
+                  # - "PREVIOUS_MONTH"
+                  # - "PREVIOUS_QUARTER"
+                  # - "PREVIOUS_YEAR"
+                  # - "LAST_7_DAYS"
+                  # - "LAST_30_DAYS"
+                  # - "LAST_90_DAYS"
+                  # - "LAST_365_DAYS"
+                  # - "LAST_24_MONTHS"
+            },
+            "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. One of:
+                    # - EXACT (default if not specified)
+                    # - CONTAINS
+                    # - BEGINS_WITH
+                    # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+                      # - EXACT (default if not specified)
+                      # - CONTAINS
+                      # - BEGINS_WITH
+                      # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+                  "id": "A String", # The ID associated with the value if available.
+                },
+              ],
+            },
+          },
+          "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, one of:
+                    # - "ASCENDING"
+                    # - "DESCENDING"
+              },
+            ],
+            "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, one of:
+                  # - "TODAY"
+                  # - "YESTERDAY"
+                  # - "WEEK_TO_DATE"
+                  # - "MONTH_TO_DATE"
+                  # - "QUARTER_TO_DATE"
+                  # - "YEAR_TO_DATE"
+                  # - "PREVIOUS_WEEK"
+                  # - "PREVIOUS_MONTH"
+                  # - "PREVIOUS_QUARTER"
+                  # - "PREVIOUS_YEAR"
+                  # - "LAST_7_DAYS"
+                  # - "LAST_30_DAYS"
+                  # - "LAST_90_DAYS"
+                  # - "LAST_365_DAYS"
+                  # - "LAST_24_MONTHS"
+            },
+            "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. One of:
+                    # - EXACT (default if not specified)
+                    # - CONTAINS
+                    # - BEGINS_WITH
+                    # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+                  # - EXACT (default if not specified)
+                  # - CONTAINS
+                  # - BEGINS_WITH
+                  # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+                    # - EXACT (default if not specified)
+                    # - CONTAINS
+                    # - BEGINS_WITH
+                    # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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.
+            },
+          },
+          "activeGrpCriteria": { # The report criteria for a report of type "ACTIVE_GRP".
+            "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, one of:
+                  # - "TODAY"
+                  # - "YESTERDAY"
+                  # - "WEEK_TO_DATE"
+                  # - "MONTH_TO_DATE"
+                  # - "QUARTER_TO_DATE"
+                  # - "YEAR_TO_DATE"
+                  # - "PREVIOUS_WEEK"
+                  # - "PREVIOUS_MONTH"
+                  # - "PREVIOUS_QUARTER"
+                  # - "PREVIOUS_YEAR"
+                  # - "LAST_7_DAYS"
+                  # - "LAST_30_DAYS"
+                  # - "LAST_90_DAYS"
+                  # - "LAST_365_DAYS"
+                  # - "LAST_24_MONTHS"
+            },
+            "metricNames": [ # The list of names of metrics the report should include.
+              "A String",
+            ],
+            "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.
+                # A valid active GRP report needs to have exactly one DimensionValue for the United States in addition to any advertiser or campaign dimension values.
+              { # 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. One of:
+                    # - EXACT (default if not specified)
+                    # - CONTAINS
+                    # - BEGINS_WITH
+                    # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+                "id": "A String", # The ID associated with the value if available.
+              },
+            ],
+            "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, one of:
+                    # - "ASCENDING"
+                    # - "DESCENDING"
+              },
+            ],
+          },
+          "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. One of:
+                # - "ATTACHMENT"
+                # - "LINK"
+            "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, one of:
+                    # - "ATTACHMENT"
+                    # - "LINK"
+                "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. One of:
+                      # - EXACT (default if not specified)
+                      # - CONTAINS
+                      # - BEGINS_WITH
+                      # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+                    # - "ASCENDING"
+                    # - "DESCENDING"
+              },
+            ],
+            "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, one of:
+                  # - "TODAY"
+                  # - "YESTERDAY"
+                  # - "WEEK_TO_DATE"
+                  # - "MONTH_TO_DATE"
+                  # - "QUARTER_TO_DATE"
+                  # - "YEAR_TO_DATE"
+                  # - "PREVIOUS_WEEK"
+                  # - "PREVIOUS_MONTH"
+                  # - "PREVIOUS_QUARTER"
+                  # - "PREVIOUS_YEAR"
+                  # - "LAST_7_DAYS"
+                  # - "LAST_30_DAYS"
+                  # - "LAST_90_DAYS"
+                  # - "LAST_365_DAYS"
+                  # - "LAST_24_MONTHS"
+            },
+            "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. One of:
+                    # - EXACT (default if not specified)
+                    # - CONTAINS
+                    # - BEGINS_WITH
+                    # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+                      # - EXACT (default if not specified)
+                      # - CONTAINS
+                      # - BEGINS_WITH
+                      # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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.
+          "fileName": "A String", # The file name used when generating report files for this report.
+          "type": "A String", # The type of the report, one of:
+              # - STANDARD
+              # - REACH
+              # - ACTIVE_GRP
+              # - PATH_TO_CONVERSION
+              # - FLOODLIGHT
+              # - CROSS_DIMENSION_REACH
+          "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, one of:
+                    # - "ASCENDING"
+                    # - "DESCENDING"
+              },
+            ],
+            "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, one of:
+                  # - "TODAY"
+                  # - "YESTERDAY"
+                  # - "WEEK_TO_DATE"
+                  # - "MONTH_TO_DATE"
+                  # - "QUARTER_TO_DATE"
+                  # - "YEAR_TO_DATE"
+                  # - "PREVIOUS_WEEK"
+                  # - "PREVIOUS_MONTH"
+                  # - "PREVIOUS_QUARTER"
+                  # - "PREVIOUS_YEAR"
+                  # - "LAST_7_DAYS"
+                  # - "LAST_30_DAYS"
+                  # - "LAST_90_DAYS"
+                  # - "LAST_365_DAYS"
+                  # - "LAST_24_MONTHS"
+            },
+            "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. One of:
+                    # - EXACT (default if not specified)
+                    # - CONTAINS
+                    # - BEGINS_WITH
+                    # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+                # - "ADVERTISER"
+                # - "CAMPAIGN"
+                # - "SITE_BY_ADVERTISER"
+                # - "SITE_BY_CAMPAIGN"
+          },
+          "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, one of:
+              # - "ASCENDING"
+              # - "DESCENDING"
+        },
+      ],
+      "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, one of:
+            # - "TODAY"
+            # - "YESTERDAY"
+            # - "WEEK_TO_DATE"
+            # - "MONTH_TO_DATE"
+            # - "QUARTER_TO_DATE"
+            # - "YEAR_TO_DATE"
+            # - "PREVIOUS_WEEK"
+            # - "PREVIOUS_MONTH"
+            # - "PREVIOUS_QUARTER"
+            # - "PREVIOUS_YEAR"
+            # - "LAST_7_DAYS"
+            # - "LAST_30_DAYS"
+            # - "LAST_90_DAYS"
+            # - "LAST_365_DAYS"
+            # - "LAST_24_MONTHS"
+      },
+      "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, one of:
+              # - "ASCENDING"
+              # - "DESCENDING"
+        },
+      ],
+      "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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+            # - EXACT (default if not specified)
+            # - CONTAINS
+            # - BEGINS_WITH
+            # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+              # - "ASCENDING"
+              # - "DESCENDING"
+        },
+      ],
+    },
+    "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
+    "subAccountId": "A String", # The subbaccount 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. Possible values are:
+          # - DAY_OF_MONTH
+          # - WEEK_OF_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, one of:
+          # - "DAILY", also requires field "every" to be set.
+          # - "WEEKLY", also requires fields "every" and "repeatsOnWeekDays" to be set.
+          # - "TWICE_A_MONTH"
+          # - "MONTHLY", also requires fields "every" and "runsOnDayOfMonth" to be set.
+          # - "QUARTERLY"
+          # - "YEARLY"
+      "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
+        "A String",
+      ],
+    },
+    "format": "A String", # The output format of the report, one of:
+        # - "CSV"
+        # - "EXCEL"  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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+              # - "ASCENDING"
+              # - "DESCENDING"
+        },
+      ],
+      "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, one of:
+            # - "TODAY"
+            # - "YESTERDAY"
+            # - "WEEK_TO_DATE"
+            # - "MONTH_TO_DATE"
+            # - "QUARTER_TO_DATE"
+            # - "YEAR_TO_DATE"
+            # - "PREVIOUS_WEEK"
+            # - "PREVIOUS_MONTH"
+            # - "PREVIOUS_QUARTER"
+            # - "PREVIOUS_YEAR"
+            # - "LAST_7_DAYS"
+            # - "LAST_30_DAYS"
+            # - "LAST_90_DAYS"
+            # - "LAST_365_DAYS"
+            # - "LAST_24_MONTHS"
+      },
+      "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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+      },
+    },
+    "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, one of:
+              # - "ASCENDING"
+              # - "DESCENDING"
+        },
+      ],
+      "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, one of:
+            # - "TODAY"
+            # - "YESTERDAY"
+            # - "WEEK_TO_DATE"
+            # - "MONTH_TO_DATE"
+            # - "QUARTER_TO_DATE"
+            # - "YEAR_TO_DATE"
+            # - "PREVIOUS_WEEK"
+            # - "PREVIOUS_MONTH"
+            # - "PREVIOUS_QUARTER"
+            # - "PREVIOUS_YEAR"
+            # - "LAST_7_DAYS"
+            # - "LAST_30_DAYS"
+            # - "LAST_90_DAYS"
+            # - "LAST_365_DAYS"
+            # - "LAST_24_MONTHS"
+      },
+      "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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+            # - EXACT (default if not specified)
+            # - CONTAINS
+            # - BEGINS_WITH
+            # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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.
+      },
+    },
+    "activeGrpCriteria": { # The report criteria for a report of type "ACTIVE_GRP".
+      "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, one of:
+            # - "TODAY"
+            # - "YESTERDAY"
+            # - "WEEK_TO_DATE"
+            # - "MONTH_TO_DATE"
+            # - "QUARTER_TO_DATE"
+            # - "YEAR_TO_DATE"
+            # - "PREVIOUS_WEEK"
+            # - "PREVIOUS_MONTH"
+            # - "PREVIOUS_QUARTER"
+            # - "PREVIOUS_YEAR"
+            # - "LAST_7_DAYS"
+            # - "LAST_30_DAYS"
+            # - "LAST_90_DAYS"
+            # - "LAST_365_DAYS"
+            # - "LAST_24_MONTHS"
+      },
+      "metricNames": [ # The list of names of metrics the report should include.
+        "A String",
+      ],
+      "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.
+          # A valid active GRP report needs to have exactly one DimensionValue for the United States in addition to any advertiser or campaign dimension values.
+        { # 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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+      ],
+      "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, one of:
+              # - "ASCENDING"
+              # - "DESCENDING"
+        },
+      ],
+    },
+    "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. One of:
+          # - "ATTACHMENT"
+          # - "LINK"
+      "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, one of:
+              # - "ATTACHMENT"
+              # - "LINK"
+          "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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+              # - "ASCENDING"
+              # - "DESCENDING"
+        },
+      ],
+      "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, one of:
+            # - "TODAY"
+            # - "YESTERDAY"
+            # - "WEEK_TO_DATE"
+            # - "MONTH_TO_DATE"
+            # - "QUARTER_TO_DATE"
+            # - "YEAR_TO_DATE"
+            # - "PREVIOUS_WEEK"
+            # - "PREVIOUS_MONTH"
+            # - "PREVIOUS_QUARTER"
+            # - "PREVIOUS_YEAR"
+            # - "LAST_7_DAYS"
+            # - "LAST_30_DAYS"
+            # - "LAST_90_DAYS"
+            # - "LAST_365_DAYS"
+            # - "LAST_24_MONTHS"
+      },
+      "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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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.
+    "fileName": "A String", # The file name used when generating report files for this report.
+    "type": "A String", # The type of the report, one of:
+        # - STANDARD
+        # - REACH
+        # - ACTIVE_GRP
+        # - PATH_TO_CONVERSION
+        # - FLOODLIGHT
+        # - CROSS_DIMENSION_REACH
+    "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, one of:
+              # - "ASCENDING"
+              # - "DESCENDING"
+        },
+      ],
+      "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, one of:
+            # - "TODAY"
+            # - "YESTERDAY"
+            # - "WEEK_TO_DATE"
+            # - "MONTH_TO_DATE"
+            # - "QUARTER_TO_DATE"
+            # - "YEAR_TO_DATE"
+            # - "PREVIOUS_WEEK"
+            # - "PREVIOUS_MONTH"
+            # - "PREVIOUS_QUARTER"
+            # - "PREVIOUS_YEAR"
+            # - "LAST_7_DAYS"
+            # - "LAST_30_DAYS"
+            # - "LAST_90_DAYS"
+            # - "LAST_365_DAYS"
+            # - "LAST_24_MONTHS"
+      },
+      "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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+          # - "ADVERTISER"
+          # - "CAMPAIGN"
+          # - "SITE_BY_ADVERTISER"
+          # - "SITE_BY_CAMPAIGN"
+    },
+    "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, one of:
+                # - "ASCENDING"
+                # - "DESCENDING"
+          },
+        ],
+        "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, one of:
+              # - "TODAY"
+              # - "YESTERDAY"
+              # - "WEEK_TO_DATE"
+              # - "MONTH_TO_DATE"
+              # - "QUARTER_TO_DATE"
+              # - "YEAR_TO_DATE"
+              # - "PREVIOUS_WEEK"
+              # - "PREVIOUS_MONTH"
+              # - "PREVIOUS_QUARTER"
+              # - "PREVIOUS_YEAR"
+              # - "LAST_7_DAYS"
+              # - "LAST_30_DAYS"
+              # - "LAST_90_DAYS"
+              # - "LAST_365_DAYS"
+              # - "LAST_24_MONTHS"
+        },
+        "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, one of:
+                # - "ASCENDING"
+                # - "DESCENDING"
+          },
+        ],
+        "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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+                # - "ASCENDING"
+                # - "DESCENDING"
+          },
+        ],
+      },
+      "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
+      "subAccountId": "A String", # The subbaccount 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. Possible values are:
+            # - DAY_OF_MONTH
+            # - WEEK_OF_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, one of:
+            # - "DAILY", also requires field "every" to be set.
+            # - "WEEKLY", also requires fields "every" and "repeatsOnWeekDays" to be set.
+            # - "TWICE_A_MONTH"
+            # - "MONTHLY", also requires fields "every" and "runsOnDayOfMonth" to be set.
+            # - "QUARTERLY"
+            # - "YEARLY"
+        "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
+          "A String",
+        ],
+      },
+      "format": "A String", # The output format of the report, one of:
+          # - "CSV"
+          # - "EXCEL"  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. One of:
+                  # - EXACT (default if not specified)
+                  # - CONTAINS
+                  # - BEGINS_WITH
+                  # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+                # - "ASCENDING"
+                # - "DESCENDING"
+          },
+        ],
+        "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, one of:
+              # - "TODAY"
+              # - "YESTERDAY"
+              # - "WEEK_TO_DATE"
+              # - "MONTH_TO_DATE"
+              # - "QUARTER_TO_DATE"
+              # - "YEAR_TO_DATE"
+              # - "PREVIOUS_WEEK"
+              # - "PREVIOUS_MONTH"
+              # - "PREVIOUS_QUARTER"
+              # - "PREVIOUS_YEAR"
+              # - "LAST_7_DAYS"
+              # - "LAST_30_DAYS"
+              # - "LAST_90_DAYS"
+              # - "LAST_365_DAYS"
+              # - "LAST_24_MONTHS"
+        },
+        "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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+                  # - EXACT (default if not specified)
+                  # - CONTAINS
+                  # - BEGINS_WITH
+                  # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+              "id": "A String", # The ID associated with the value if available.
+            },
+          ],
+        },
+      },
+      "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, one of:
+                # - "ASCENDING"
+                # - "DESCENDING"
+          },
+        ],
+        "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, one of:
+              # - "TODAY"
+              # - "YESTERDAY"
+              # - "WEEK_TO_DATE"
+              # - "MONTH_TO_DATE"
+              # - "QUARTER_TO_DATE"
+              # - "YEAR_TO_DATE"
+              # - "PREVIOUS_WEEK"
+              # - "PREVIOUS_MONTH"
+              # - "PREVIOUS_QUARTER"
+              # - "PREVIOUS_YEAR"
+              # - "LAST_7_DAYS"
+              # - "LAST_30_DAYS"
+              # - "LAST_90_DAYS"
+              # - "LAST_365_DAYS"
+              # - "LAST_24_MONTHS"
+        },
+        "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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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.
+        },
+      },
+      "activeGrpCriteria": { # The report criteria for a report of type "ACTIVE_GRP".
+        "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, one of:
+              # - "TODAY"
+              # - "YESTERDAY"
+              # - "WEEK_TO_DATE"
+              # - "MONTH_TO_DATE"
+              # - "QUARTER_TO_DATE"
+              # - "YEAR_TO_DATE"
+              # - "PREVIOUS_WEEK"
+              # - "PREVIOUS_MONTH"
+              # - "PREVIOUS_QUARTER"
+              # - "PREVIOUS_YEAR"
+              # - "LAST_7_DAYS"
+              # - "LAST_30_DAYS"
+              # - "LAST_90_DAYS"
+              # - "LAST_365_DAYS"
+              # - "LAST_24_MONTHS"
+        },
+        "metricNames": [ # The list of names of metrics the report should include.
+          "A String",
+        ],
+        "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.
+            # A valid active GRP report needs to have exactly one DimensionValue for the United States in addition to any advertiser or campaign dimension values.
+          { # 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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "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, one of:
+                # - "ASCENDING"
+                # - "DESCENDING"
+          },
+        ],
+      },
+      "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. One of:
+            # - "ATTACHMENT"
+            # - "LINK"
+        "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, one of:
+                # - "ATTACHMENT"
+                # - "LINK"
+            "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. One of:
+                  # - EXACT (default if not specified)
+                  # - CONTAINS
+                  # - BEGINS_WITH
+                  # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+                # - "ASCENDING"
+                # - "DESCENDING"
+          },
+        ],
+        "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, one of:
+              # - "TODAY"
+              # - "YESTERDAY"
+              # - "WEEK_TO_DATE"
+              # - "MONTH_TO_DATE"
+              # - "QUARTER_TO_DATE"
+              # - "YEAR_TO_DATE"
+              # - "PREVIOUS_WEEK"
+              # - "PREVIOUS_MONTH"
+              # - "PREVIOUS_QUARTER"
+              # - "PREVIOUS_YEAR"
+              # - "LAST_7_DAYS"
+              # - "LAST_30_DAYS"
+              # - "LAST_90_DAYS"
+              # - "LAST_365_DAYS"
+              # - "LAST_24_MONTHS"
+        },
+        "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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+                  # - EXACT (default if not specified)
+                  # - CONTAINS
+                  # - BEGINS_WITH
+                  # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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.
+      "fileName": "A String", # The file name used when generating report files for this report.
+      "type": "A String", # The type of the report, one of:
+          # - STANDARD
+          # - REACH
+          # - ACTIVE_GRP
+          # - PATH_TO_CONVERSION
+          # - FLOODLIGHT
+          # - CROSS_DIMENSION_REACH
+      "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, one of:
+                # - "ASCENDING"
+                # - "DESCENDING"
+          },
+        ],
+        "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, one of:
+              # - "TODAY"
+              # - "YESTERDAY"
+              # - "WEEK_TO_DATE"
+              # - "MONTH_TO_DATE"
+              # - "QUARTER_TO_DATE"
+              # - "YEAR_TO_DATE"
+              # - "PREVIOUS_WEEK"
+              # - "PREVIOUS_MONTH"
+              # - "PREVIOUS_QUARTER"
+              # - "PREVIOUS_YEAR"
+              # - "LAST_7_DAYS"
+              # - "LAST_30_DAYS"
+              # - "LAST_90_DAYS"
+              # - "LAST_365_DAYS"
+              # - "LAST_24_MONTHS"
+        },
+        "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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+            # - "ADVERTISER"
+            # - "CAMPAIGN"
+            # - "SITE_BY_ADVERTISER"
+            # - "SITE_BY_CAMPAIGN"
+      },
+      "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 meta-data 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, one of:
+        # - "PROCESSING"
+        # - "REPORT_AVAILABLE"
+        # - "FAILED"
+        # - "CANCELLED"
+    "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, one of:
+          # - "TODAY"
+          # - "YESTERDAY"
+          # - "WEEK_TO_DATE"
+          # - "MONTH_TO_DATE"
+          # - "QUARTER_TO_DATE"
+          # - "YEAR_TO_DATE"
+          # - "PREVIOUS_WEEK"
+          # - "PREVIOUS_MONTH"
+          # - "PREVIOUS_QUARTER"
+          # - "PREVIOUS_YEAR"
+          # - "LAST_7_DAYS"
+          # - "LAST_30_DAYS"
+          # - "LAST_90_DAYS"
+          # - "LAST_365_DAYS"
+          # - "LAST_24_MONTHS"
+    },
+    "fileName": "A String", # The file name 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, one of:
+              # - "ASCENDING"
+              # - "DESCENDING"
+        },
+      ],
+      "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, one of:
+            # - "TODAY"
+            # - "YESTERDAY"
+            # - "WEEK_TO_DATE"
+            # - "MONTH_TO_DATE"
+            # - "QUARTER_TO_DATE"
+            # - "YEAR_TO_DATE"
+            # - "PREVIOUS_WEEK"
+            # - "PREVIOUS_MONTH"
+            # - "PREVIOUS_QUARTER"
+            # - "PREVIOUS_YEAR"
+            # - "LAST_7_DAYS"
+            # - "LAST_30_DAYS"
+            # - "LAST_90_DAYS"
+            # - "LAST_365_DAYS"
+            # - "LAST_24_MONTHS"
+      },
+      "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, one of:
+              # - "ASCENDING"
+              # - "DESCENDING"
+        },
+      ],
+      "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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+            # - EXACT (default if not specified)
+            # - CONTAINS
+            # - BEGINS_WITH
+            # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+              # - "ASCENDING"
+              # - "DESCENDING"
+        },
+      ],
+    },
+    "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
+    "subAccountId": "A String", # The subbaccount 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. Possible values are:
+          # - DAY_OF_MONTH
+          # - WEEK_OF_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, one of:
+          # - "DAILY", also requires field "every" to be set.
+          # - "WEEKLY", also requires fields "every" and "repeatsOnWeekDays" to be set.
+          # - "TWICE_A_MONTH"
+          # - "MONTHLY", also requires fields "every" and "runsOnDayOfMonth" to be set.
+          # - "QUARTERLY"
+          # - "YEARLY"
+      "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
+        "A String",
+      ],
+    },
+    "format": "A String", # The output format of the report, one of:
+        # - "CSV"
+        # - "EXCEL"  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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+              # - "ASCENDING"
+              # - "DESCENDING"
+        },
+      ],
+      "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, one of:
+            # - "TODAY"
+            # - "YESTERDAY"
+            # - "WEEK_TO_DATE"
+            # - "MONTH_TO_DATE"
+            # - "QUARTER_TO_DATE"
+            # - "YEAR_TO_DATE"
+            # - "PREVIOUS_WEEK"
+            # - "PREVIOUS_MONTH"
+            # - "PREVIOUS_QUARTER"
+            # - "PREVIOUS_YEAR"
+            # - "LAST_7_DAYS"
+            # - "LAST_30_DAYS"
+            # - "LAST_90_DAYS"
+            # - "LAST_365_DAYS"
+            # - "LAST_24_MONTHS"
+      },
+      "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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+      },
+    },
+    "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, one of:
+              # - "ASCENDING"
+              # - "DESCENDING"
+        },
+      ],
+      "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, one of:
+            # - "TODAY"
+            # - "YESTERDAY"
+            # - "WEEK_TO_DATE"
+            # - "MONTH_TO_DATE"
+            # - "QUARTER_TO_DATE"
+            # - "YEAR_TO_DATE"
+            # - "PREVIOUS_WEEK"
+            # - "PREVIOUS_MONTH"
+            # - "PREVIOUS_QUARTER"
+            # - "PREVIOUS_YEAR"
+            # - "LAST_7_DAYS"
+            # - "LAST_30_DAYS"
+            # - "LAST_90_DAYS"
+            # - "LAST_365_DAYS"
+            # - "LAST_24_MONTHS"
+      },
+      "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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+            # - EXACT (default if not specified)
+            # - CONTAINS
+            # - BEGINS_WITH
+            # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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.
+      },
+    },
+    "activeGrpCriteria": { # The report criteria for a report of type "ACTIVE_GRP".
+      "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, one of:
+            # - "TODAY"
+            # - "YESTERDAY"
+            # - "WEEK_TO_DATE"
+            # - "MONTH_TO_DATE"
+            # - "QUARTER_TO_DATE"
+            # - "YEAR_TO_DATE"
+            # - "PREVIOUS_WEEK"
+            # - "PREVIOUS_MONTH"
+            # - "PREVIOUS_QUARTER"
+            # - "PREVIOUS_YEAR"
+            # - "LAST_7_DAYS"
+            # - "LAST_30_DAYS"
+            # - "LAST_90_DAYS"
+            # - "LAST_365_DAYS"
+            # - "LAST_24_MONTHS"
+      },
+      "metricNames": [ # The list of names of metrics the report should include.
+        "A String",
+      ],
+      "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.
+          # A valid active GRP report needs to have exactly one DimensionValue for the United States in addition to any advertiser or campaign dimension values.
+        { # 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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+      ],
+      "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, one of:
+              # - "ASCENDING"
+              # - "DESCENDING"
+        },
+      ],
+    },
+    "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. One of:
+          # - "ATTACHMENT"
+          # - "LINK"
+      "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, one of:
+              # - "ATTACHMENT"
+              # - "LINK"
+          "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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+              # - "ASCENDING"
+              # - "DESCENDING"
+        },
+      ],
+      "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, one of:
+            # - "TODAY"
+            # - "YESTERDAY"
+            # - "WEEK_TO_DATE"
+            # - "MONTH_TO_DATE"
+            # - "QUARTER_TO_DATE"
+            # - "YEAR_TO_DATE"
+            # - "PREVIOUS_WEEK"
+            # - "PREVIOUS_MONTH"
+            # - "PREVIOUS_QUARTER"
+            # - "PREVIOUS_YEAR"
+            # - "LAST_7_DAYS"
+            # - "LAST_30_DAYS"
+            # - "LAST_90_DAYS"
+            # - "LAST_365_DAYS"
+            # - "LAST_24_MONTHS"
+      },
+      "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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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.
+    "fileName": "A String", # The file name used when generating report files for this report.
+    "type": "A String", # The type of the report, one of:
+        # - STANDARD
+        # - REACH
+        # - ACTIVE_GRP
+        # - PATH_TO_CONVERSION
+        # - FLOODLIGHT
+        # - CROSS_DIMENSION_REACH
+    "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, one of:
+              # - "ASCENDING"
+              # - "DESCENDING"
+        },
+      ],
+      "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, one of:
+            # - "TODAY"
+            # - "YESTERDAY"
+            # - "WEEK_TO_DATE"
+            # - "MONTH_TO_DATE"
+            # - "QUARTER_TO_DATE"
+            # - "YEAR_TO_DATE"
+            # - "PREVIOUS_WEEK"
+            # - "PREVIOUS_MONTH"
+            # - "PREVIOUS_QUARTER"
+            # - "PREVIOUS_YEAR"
+            # - "LAST_7_DAYS"
+            # - "LAST_30_DAYS"
+            # - "LAST_90_DAYS"
+            # - "LAST_365_DAYS"
+            # - "LAST_24_MONTHS"
+      },
+      "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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+          # - "ADVERTISER"
+          # - "CAMPAIGN"
+          # - "SITE_BY_ADVERTISER"
+          # - "SITE_BY_CAMPAIGN"
+    },
+    "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, one of:
+                # - "ASCENDING"
+                # - "DESCENDING"
+          },
+        ],
+        "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, one of:
+              # - "TODAY"
+              # - "YESTERDAY"
+              # - "WEEK_TO_DATE"
+              # - "MONTH_TO_DATE"
+              # - "QUARTER_TO_DATE"
+              # - "YEAR_TO_DATE"
+              # - "PREVIOUS_WEEK"
+              # - "PREVIOUS_MONTH"
+              # - "PREVIOUS_QUARTER"
+              # - "PREVIOUS_YEAR"
+              # - "LAST_7_DAYS"
+              # - "LAST_30_DAYS"
+              # - "LAST_90_DAYS"
+              # - "LAST_365_DAYS"
+              # - "LAST_24_MONTHS"
+        },
+        "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, one of:
+                # - "ASCENDING"
+                # - "DESCENDING"
+          },
+        ],
+        "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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+                # - "ASCENDING"
+                # - "DESCENDING"
+          },
+        ],
+      },
+      "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
+      "subAccountId": "A String", # The subbaccount 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. Possible values are:
+            # - DAY_OF_MONTH
+            # - WEEK_OF_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, one of:
+            # - "DAILY", also requires field "every" to be set.
+            # - "WEEKLY", also requires fields "every" and "repeatsOnWeekDays" to be set.
+            # - "TWICE_A_MONTH"
+            # - "MONTHLY", also requires fields "every" and "runsOnDayOfMonth" to be set.
+            # - "QUARTERLY"
+            # - "YEARLY"
+        "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
+          "A String",
+        ],
+      },
+      "format": "A String", # The output format of the report, one of:
+          # - "CSV"
+          # - "EXCEL"  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. One of:
+                  # - EXACT (default if not specified)
+                  # - CONTAINS
+                  # - BEGINS_WITH
+                  # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+                # - "ASCENDING"
+                # - "DESCENDING"
+          },
+        ],
+        "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, one of:
+              # - "TODAY"
+              # - "YESTERDAY"
+              # - "WEEK_TO_DATE"
+              # - "MONTH_TO_DATE"
+              # - "QUARTER_TO_DATE"
+              # - "YEAR_TO_DATE"
+              # - "PREVIOUS_WEEK"
+              # - "PREVIOUS_MONTH"
+              # - "PREVIOUS_QUARTER"
+              # - "PREVIOUS_YEAR"
+              # - "LAST_7_DAYS"
+              # - "LAST_30_DAYS"
+              # - "LAST_90_DAYS"
+              # - "LAST_365_DAYS"
+              # - "LAST_24_MONTHS"
+        },
+        "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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+                  # - EXACT (default if not specified)
+                  # - CONTAINS
+                  # - BEGINS_WITH
+                  # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+              "id": "A String", # The ID associated with the value if available.
+            },
+          ],
+        },
+      },
+      "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, one of:
+                # - "ASCENDING"
+                # - "DESCENDING"
+          },
+        ],
+        "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, one of:
+              # - "TODAY"
+              # - "YESTERDAY"
+              # - "WEEK_TO_DATE"
+              # - "MONTH_TO_DATE"
+              # - "QUARTER_TO_DATE"
+              # - "YEAR_TO_DATE"
+              # - "PREVIOUS_WEEK"
+              # - "PREVIOUS_MONTH"
+              # - "PREVIOUS_QUARTER"
+              # - "PREVIOUS_YEAR"
+              # - "LAST_7_DAYS"
+              # - "LAST_30_DAYS"
+              # - "LAST_90_DAYS"
+              # - "LAST_365_DAYS"
+              # - "LAST_24_MONTHS"
+        },
+        "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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+              # - EXACT (default if not specified)
+              # - CONTAINS
+              # - BEGINS_WITH
+              # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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.
+        },
+      },
+      "activeGrpCriteria": { # The report criteria for a report of type "ACTIVE_GRP".
+        "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, one of:
+              # - "TODAY"
+              # - "YESTERDAY"
+              # - "WEEK_TO_DATE"
+              # - "MONTH_TO_DATE"
+              # - "QUARTER_TO_DATE"
+              # - "YEAR_TO_DATE"
+              # - "PREVIOUS_WEEK"
+              # - "PREVIOUS_MONTH"
+              # - "PREVIOUS_QUARTER"
+              # - "PREVIOUS_YEAR"
+              # - "LAST_7_DAYS"
+              # - "LAST_30_DAYS"
+              # - "LAST_90_DAYS"
+              # - "LAST_365_DAYS"
+              # - "LAST_24_MONTHS"
+        },
+        "metricNames": [ # The list of names of metrics the report should include.
+          "A String",
+        ],
+        "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.
+            # A valid active GRP report needs to have exactly one DimensionValue for the United States in addition to any advertiser or campaign dimension values.
+          { # 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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "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, one of:
+                # - "ASCENDING"
+                # - "DESCENDING"
+          },
+        ],
+      },
+      "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. One of:
+            # - "ATTACHMENT"
+            # - "LINK"
+        "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, one of:
+                # - "ATTACHMENT"
+                # - "LINK"
+            "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. One of:
+                  # - EXACT (default if not specified)
+                  # - CONTAINS
+                  # - BEGINS_WITH
+                  # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+                # - "ASCENDING"
+                # - "DESCENDING"
+          },
+        ],
+        "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, one of:
+              # - "TODAY"
+              # - "YESTERDAY"
+              # - "WEEK_TO_DATE"
+              # - "MONTH_TO_DATE"
+              # - "QUARTER_TO_DATE"
+              # - "YEAR_TO_DATE"
+              # - "PREVIOUS_WEEK"
+              # - "PREVIOUS_MONTH"
+              # - "PREVIOUS_QUARTER"
+              # - "PREVIOUS_YEAR"
+              # - "LAST_7_DAYS"
+              # - "LAST_30_DAYS"
+              # - "LAST_90_DAYS"
+              # - "LAST_365_DAYS"
+              # - "LAST_24_MONTHS"
+        },
+        "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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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. One of:
+                  # - EXACT (default if not specified)
+                  # - CONTAINS
+                  # - BEGINS_WITH
+                  # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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.
+      "fileName": "A String", # The file name used when generating report files for this report.
+      "type": "A String", # The type of the report, one of:
+          # - STANDARD
+          # - REACH
+          # - ACTIVE_GRP
+          # - PATH_TO_CONVERSION
+          # - FLOODLIGHT
+          # - CROSS_DIMENSION_REACH
+      "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, one of:
+                # - "ASCENDING"
+                # - "DESCENDING"
+          },
+        ],
+        "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, one of:
+              # - "TODAY"
+              # - "YESTERDAY"
+              # - "WEEK_TO_DATE"
+              # - "MONTH_TO_DATE"
+              # - "QUARTER_TO_DATE"
+              # - "YEAR_TO_DATE"
+              # - "PREVIOUS_WEEK"
+              # - "PREVIOUS_MONTH"
+              # - "PREVIOUS_QUARTER"
+              # - "PREVIOUS_YEAR"
+              # - "LAST_7_DAYS"
+              # - "LAST_30_DAYS"
+              # - "LAST_90_DAYS"
+              # - "LAST_365_DAYS"
+              # - "LAST_24_MONTHS"
+        },
+        "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. One of:
+                # - EXACT (default if not specified)
+                # - CONTAINS
+                # - BEGINS_WITH
+                # - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.)  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, one of:
+            # - "ADVERTISER"
+            # - "CAMPAIGN"
+            # - "SITE_BY_ADVERTISER"
+            # - "SITE_BY_CAMPAIGN"
+      },
+      "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_v1_3.userProfiles.html b/docs/dyn/dfareporting_v1_3.userProfiles.html
new file mode 100644
index 0000000..dc0cbc7
--- /dev/null
+++ b/docs/dyn/dfareporting_v1_3.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_v1_3.html">DFA Reporting API</a> . <a href="dfareporting_v1_3.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/discovery_v1.apis.html b/docs/dyn/discovery_v1.apis.html
new file mode 100644
index 0000000..57d39b3
--- /dev/null
+++ b/docs/dyn/discovery_v1.apis.html
@@ -0,0 +1,433 @@
+<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="discovery_v1.html">APIs Discovery Service</a> . <a href="discovery_v1.apis.html">apis</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#getRest">getRest(api, version)</a></code></p>
+<p class="firstline">Retrieve the description of a particular version of an api.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name=None, preferred=None)</a></code></p>
+<p class="firstline">Retrieve the list of APIs supported at this endpoint.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="getRest">getRest(api, version)</code>
+  <pre>Retrieve the description of a particular version of an api.
+
+Args:
+  api: string, The name of the API. (required)
+  version: string, The version of the API. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "protocol": "rest", # The protocol described by this document.
+    "methods": { # API-level methods for this API.
+      "a_key": { # An individual method description.
+        "scopes": [ # OAuth 2.0 scopes applicable to this method.
+          "A String",
+        ],
+        "description": "A String", # Description of this method.
+        "parameters": { # Details for all parameters in this method.
+          "a_key": { # Details for a single parameter in this method.
+            "properties": { # If this is a schema for an object, list the schema for each property of this object.
+              "a_key": # Object with schema name: JsonSchema # A single property of this object. The value is itself a JSON Schema object describing this property.
+            },
+            "required": True or False, # Whether the parameter is required.
+            "type": "A String", # The value type for this schema. A list of values can be found here: http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.1
+            "description": "A String", # A description of this object.
+            "format": "A String", # An additional regular expression or key that helps constrain the value. For more details see: http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.23
+            "default": "A String", # The default value of this property (if one exists).
+            "items": # Object with schema name: JsonSchema # If this is a schema for an array, this property is the schema for each element in the array.
+            "enum": [ # Values this parameter may take (if it is an enum).
+              "A String",
+            ],
+            "variant": { # In a variant data type, the value of one property is used to determine how to interpret the entire entity. Its value must exist in a map of descriminant values to schema names.
+              "map": [ # The map of discriminant value to schema to use for parsing..
+                {
+                  "type_value": "A String",
+                  "$ref": "A String",
+                },
+              ],
+              "discriminant": "A String", # The name of the type discriminant property.
+            },
+            "maximum": "A String", # The maximum value of this parameter.
+            "id": "A String", # Unique identifier for this schema.
+            "enumDescriptions": [ # The descriptions for the enums. Each position maps to the corresponding value in the "enum" array.
+              "A String",
+            ],
+            "minimum": "A String", # The minimum value of this parameter.
+            "readOnly": True or False, # The value is read-only, generated by the service. The value cannot be modified by the client. If the value is included in a POST, PUT, or PATCH request, it is ignored by the service.
+            "location": "A String", # Whether this parameter goes in the query or the path for REST requests.
+            "pattern": "A String", # The regular expression this parameter must conform to. Uses Java 6 regex format: http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html
+            "additionalProperties": # Object with schema name: JsonSchema # If this is a schema for an object, this property is the schema for any additional properties with dynamic keys on this object.
+            "repeated": True or False, # Whether this parameter may appear multiple times.
+            "annotations": { # Additional information about this property.
+              "required": [ # A list of methods for which this property is required on requests.
+                "A String",
+              ],
+            },
+            "$ref": "A String", # A reference to another schema. The value of this property is the "id" of another schema.
+          },
+        },
+        "supportsMediaUpload": True or False, # Whether this method supports media uploads.
+        "etagRequired": True or False, # Whether this method requires an ETag to be specified. The ETag is sent as an HTTP If-Match or If-None-Match header.
+        "mediaUpload": { # Media upload parameters.
+          "maxSize": "A String", # Maximum size of a media upload, such as "1MB", "2GB" or "3TB".
+          "protocols": { # Supported upload protocols.
+            "simple": { # Supports uploading as a single HTTP request.
+              "path": "A String", # The URI path to be used for upload. Should be used in conjunction with the basePath property at the api-level.
+              "multipart": true, # True if this endpoint supports upload multipart media.
+            },
+            "resumable": { # Supports the Resumable Media Upload protocol.
+              "path": "A String", # The URI path to be used for upload. Should be used in conjunction with the basePath property at the api-level.
+              "multipart": true, # True if this endpoint supports uploading multipart media.
+            },
+          },
+          "accept": [ # MIME Media Ranges for acceptable media uploads to this method.
+            "A String",
+          ],
+        },
+        "request": { # The schema for the request.
+          "parameterName": "A String", # parameter name.
+          "$ref": "A String", # Schema ID for the request schema.
+        },
+        "response": { # The schema for the response.
+          "$ref": "A String", # Schema ID for the response schema.
+        },
+        "httpMethod": "A String", # HTTP method used by this method.
+        "supportsSubscription": True or False, # Whether this method supports subscriptions.
+        "parameterOrder": [ # Ordered list of required parameters, serves as a hint to clients on how to structure their method signatures. The array is ordered such that the "most-significant" parameter appears first.
+          "A String",
+        ],
+        "path": "A String", # The URI path of this REST method. Should be used in conjunction with the basePath property at the api-level.
+        "id": "A String", # A unique ID for this method. This property can be used to match methods between different versions of Discovery.
+        "supportsMediaDownload": True or False, # Whether this method supports media downloads.
+      },
+    },
+    "labels": [ # Labels for the status of this API, such as labs or deprecated.
+      "A String",
+    ],
+    "ownerName": "A String", # The name of the owner of this API. See ownerDomain.
+    "batchPath": "batch", # The path for REST batch requests.
+    "id": "A String", # The ID of this API.
+    "features": [ # A list of supported features for this API.
+      "A String",
+    ],
+    "ownerDomain": "A String", # The domain of the owner of this API. Together with the ownerName and a packagePath values, this can be used to generate a library for this API which would have a unique fully qualified name.
+    "rootUrl": "A String", # The root URL under which all API services live.
+    "parameters": { # Common parameters that apply across all apis.
+      "a_key": { # Description of a single parameter.
+        "properties": { # If this is a schema for an object, list the schema for each property of this object.
+          "a_key": # Object with schema name: JsonSchema # A single property of this object. The value is itself a JSON Schema object describing this property.
+        },
+        "required": True or False, # Whether the parameter is required.
+        "type": "A String", # The value type for this schema. A list of values can be found here: http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.1
+        "description": "A String", # A description of this object.
+        "format": "A String", # An additional regular expression or key that helps constrain the value. For more details see: http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.23
+        "default": "A String", # The default value of this property (if one exists).
+        "items": # Object with schema name: JsonSchema # If this is a schema for an array, this property is the schema for each element in the array.
+        "enum": [ # Values this parameter may take (if it is an enum).
+          "A String",
+        ],
+        "variant": { # In a variant data type, the value of one property is used to determine how to interpret the entire entity. Its value must exist in a map of descriminant values to schema names.
+          "map": [ # The map of discriminant value to schema to use for parsing..
+            {
+              "type_value": "A String",
+              "$ref": "A String",
+            },
+          ],
+          "discriminant": "A String", # The name of the type discriminant property.
+        },
+        "maximum": "A String", # The maximum value of this parameter.
+        "id": "A String", # Unique identifier for this schema.
+        "enumDescriptions": [ # The descriptions for the enums. Each position maps to the corresponding value in the "enum" array.
+          "A String",
+        ],
+        "minimum": "A String", # The minimum value of this parameter.
+        "readOnly": True or False, # The value is read-only, generated by the service. The value cannot be modified by the client. If the value is included in a POST, PUT, or PATCH request, it is ignored by the service.
+        "location": "A String", # Whether this parameter goes in the query or the path for REST requests.
+        "pattern": "A String", # The regular expression this parameter must conform to. Uses Java 6 regex format: http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html
+        "additionalProperties": # Object with schema name: JsonSchema # If this is a schema for an object, this property is the schema for any additional properties with dynamic keys on this object.
+        "repeated": True or False, # Whether this parameter may appear multiple times.
+        "annotations": { # Additional information about this property.
+          "required": [ # A list of methods for which this property is required on requests.
+            "A String",
+          ],
+        },
+        "$ref": "A String", # A reference to another schema. The value of this property is the "id" of another schema.
+      },
+    },
+    "icons": { # Links to 16x16 and 32x32 icons representing the API.
+      "x32": "A String", # The URL of the 32x32 icon.
+      "x16": "A String", # The URL of the 16x16 icon.
+    },
+    "baseUrl": "A String", # [DEPRECATED] The base URL for REST requests.
+    "etag": "A String", # The ETag for this response.
+    "version": "A String", # The version of this API.
+    "servicePath": "A String", # The base path for all REST requests.
+    "schemas": { # The schemas for this API.
+      "a_key": { # An individual schema description.
+        "properties": { # If this is a schema for an object, list the schema for each property of this object.
+          "a_key": # Object with schema name: JsonSchema # A single property of this object. The value is itself a JSON Schema object describing this property.
+        },
+        "required": True or False, # Whether the parameter is required.
+        "type": "A String", # The value type for this schema. A list of values can be found here: http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.1
+        "description": "A String", # A description of this object.
+        "format": "A String", # An additional regular expression or key that helps constrain the value. For more details see: http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.23
+        "default": "A String", # The default value of this property (if one exists).
+        "items": # Object with schema name: JsonSchema # If this is a schema for an array, this property is the schema for each element in the array.
+        "enum": [ # Values this parameter may take (if it is an enum).
+          "A String",
+        ],
+        "variant": { # In a variant data type, the value of one property is used to determine how to interpret the entire entity. Its value must exist in a map of descriminant values to schema names.
+          "map": [ # The map of discriminant value to schema to use for parsing..
+            {
+              "type_value": "A String",
+              "$ref": "A String",
+            },
+          ],
+          "discriminant": "A String", # The name of the type discriminant property.
+        },
+        "maximum": "A String", # The maximum value of this parameter.
+        "id": "A String", # Unique identifier for this schema.
+        "enumDescriptions": [ # The descriptions for the enums. Each position maps to the corresponding value in the "enum" array.
+          "A String",
+        ],
+        "minimum": "A String", # The minimum value of this parameter.
+        "readOnly": True or False, # The value is read-only, generated by the service. The value cannot be modified by the client. If the value is included in a POST, PUT, or PATCH request, it is ignored by the service.
+        "location": "A String", # Whether this parameter goes in the query or the path for REST requests.
+        "pattern": "A String", # The regular expression this parameter must conform to. Uses Java 6 regex format: http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html
+        "additionalProperties": # Object with schema name: JsonSchema # If this is a schema for an object, this property is the schema for any additional properties with dynamic keys on this object.
+        "repeated": True or False, # Whether this parameter may appear multiple times.
+        "annotations": { # Additional information about this property.
+          "required": [ # A list of methods for which this property is required on requests.
+            "A String",
+          ],
+        },
+        "$ref": "A String", # A reference to another schema. The value of this property is the "id" of another schema.
+      },
+    },
+    "resources": { # The resources in this API.
+      "a_key": { # An individual resource description. Contains methods and sub-resources related to this resource.
+        "methods": { # Methods on this resource.
+          "a_key": { # Description for any methods on this resource.
+            "scopes": [ # OAuth 2.0 scopes applicable to this method.
+              "A String",
+            ],
+            "description": "A String", # Description of this method.
+            "parameters": { # Details for all parameters in this method.
+              "a_key": { # Details for a single parameter in this method.
+                "properties": { # If this is a schema for an object, list the schema for each property of this object.
+                  "a_key": # Object with schema name: JsonSchema # A single property of this object. The value is itself a JSON Schema object describing this property.
+                },
+                "required": True or False, # Whether the parameter is required.
+                "type": "A String", # The value type for this schema. A list of values can be found here: http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.1
+                "description": "A String", # A description of this object.
+                "format": "A String", # An additional regular expression or key that helps constrain the value. For more details see: http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.23
+                "default": "A String", # The default value of this property (if one exists).
+                "items": # Object with schema name: JsonSchema # If this is a schema for an array, this property is the schema for each element in the array.
+                "enum": [ # Values this parameter may take (if it is an enum).
+                  "A String",
+                ],
+                "variant": { # In a variant data type, the value of one property is used to determine how to interpret the entire entity. Its value must exist in a map of descriminant values to schema names.
+                  "map": [ # The map of discriminant value to schema to use for parsing..
+                    {
+                      "type_value": "A String",
+                      "$ref": "A String",
+                    },
+                  ],
+                  "discriminant": "A String", # The name of the type discriminant property.
+                },
+                "maximum": "A String", # The maximum value of this parameter.
+                "id": "A String", # Unique identifier for this schema.
+                "enumDescriptions": [ # The descriptions for the enums. Each position maps to the corresponding value in the "enum" array.
+                  "A String",
+                ],
+                "minimum": "A String", # The minimum value of this parameter.
+                "readOnly": True or False, # The value is read-only, generated by the service. The value cannot be modified by the client. If the value is included in a POST, PUT, or PATCH request, it is ignored by the service.
+                "location": "A String", # Whether this parameter goes in the query or the path for REST requests.
+                "pattern": "A String", # The regular expression this parameter must conform to. Uses Java 6 regex format: http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html
+                "additionalProperties": # Object with schema name: JsonSchema # If this is a schema for an object, this property is the schema for any additional properties with dynamic keys on this object.
+                "repeated": True or False, # Whether this parameter may appear multiple times.
+                "annotations": { # Additional information about this property.
+                  "required": [ # A list of methods for which this property is required on requests.
+                    "A String",
+                  ],
+                },
+                "$ref": "A String", # A reference to another schema. The value of this property is the "id" of another schema.
+              },
+            },
+            "supportsMediaUpload": True or False, # Whether this method supports media uploads.
+            "etagRequired": True or False, # Whether this method requires an ETag to be specified. The ETag is sent as an HTTP If-Match or If-None-Match header.
+            "mediaUpload": { # Media upload parameters.
+              "maxSize": "A String", # Maximum size of a media upload, such as "1MB", "2GB" or "3TB".
+              "protocols": { # Supported upload protocols.
+                "simple": { # Supports uploading as a single HTTP request.
+                  "path": "A String", # The URI path to be used for upload. Should be used in conjunction with the basePath property at the api-level.
+                  "multipart": true, # True if this endpoint supports upload multipart media.
+                },
+                "resumable": { # Supports the Resumable Media Upload protocol.
+                  "path": "A String", # The URI path to be used for upload. Should be used in conjunction with the basePath property at the api-level.
+                  "multipart": true, # True if this endpoint supports uploading multipart media.
+                },
+              },
+              "accept": [ # MIME Media Ranges for acceptable media uploads to this method.
+                "A String",
+              ],
+            },
+            "request": { # The schema for the request.
+              "parameterName": "A String", # parameter name.
+              "$ref": "A String", # Schema ID for the request schema.
+            },
+            "response": { # The schema for the response.
+              "$ref": "A String", # Schema ID for the response schema.
+            },
+            "httpMethod": "A String", # HTTP method used by this method.
+            "supportsSubscription": True or False, # Whether this method supports subscriptions.
+            "parameterOrder": [ # Ordered list of required parameters, serves as a hint to clients on how to structure their method signatures. The array is ordered such that the "most-significant" parameter appears first.
+              "A String",
+            ],
+            "path": "A String", # The URI path of this REST method. Should be used in conjunction with the basePath property at the api-level.
+            "id": "A String", # A unique ID for this method. This property can be used to match methods between different versions of Discovery.
+            "supportsMediaDownload": True or False, # Whether this method supports media downloads.
+          },
+        },
+        "resources": { # Sub-resources on this resource.
+          "a_key": # Object with schema name: RestResource # Description for any sub-resources on this resource.
+        },
+      },
+    },
+    "revision": "A String", # The version of this API.
+    "description": "A String", # The description of this API.
+    "canonicalName": "A String", # Indicates how the API name should be capitalized and split into various parts. Useful for generating pretty class names.
+    "auth": { # Authentication information.
+      "oauth2": { # OAuth 2.0 authentication information.
+        "scopes": { # Available OAuth 2.0 scopes.
+          "a_key": { # The scope value.
+            "description": "A String", # Description of scope.
+          },
+        },
+      },
+    },
+    "packagePath": "A String", # The package of the owner of this API. See ownerDomain.
+    "kind": "discovery#restDescription", # The kind for this response.
+    "name": "A String", # The name of this API.
+    "basePath": "A String", # [DEPRECATED] The base path for REST requests.
+    "title": "A String", # The title of this API.
+    "discoveryVersion": "v1", # Indicate the version of the Discovery API used to generate this doc.
+    "documentationLink": "A String", # A link to human readable documentation for the API.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name=None, preferred=None)</code>
+  <pre>Retrieve the list of APIs supported at this endpoint.
+
+Args:
+  name: string, Only include APIs with the given name.
+  preferred: boolean, Return only the preferred version of an API.
+
+Returns:
+  An object of the form:
+
+    {
+    "items": [ # The individual directory entries. One entry per api/version pair.
+      {
+        "kind": "discovery#directoryItem", # The kind for this response.
+        "labels": [ # Labels for the status of this API, such as labs or deprecated.
+          "A String",
+        ],
+        "description": "A String", # The description of this API.
+        "icons": { # Links to 16x16 and 32x32 icons representing the API.
+          "x32": "A String", # The URL of the 32x32 icon.
+          "x16": "A String", # The URL of the 16x16 icon.
+        },
+        "discoveryRestUrl": "A String", # The URL for the discovery REST document.
+        "preferred": True or False, # True if this version is the preferred version to use.
+        "name": "A String", # The name of the API.
+        "discoveryLink": "A String", # A link to the discovery document.
+        "version": "A String", # The version of the API.
+        "title": "A String", # The title of this API.
+        "id": "A String", # The id of this API.
+        "documentationLink": "A String", # A link to human readable documentation for the API.
+      },
+    ],
+    "discoveryVersion": "v1", # Indicate the version of the Discovery API used to generate this doc.
+    "kind": "discovery#directoryList", # The kind for this response.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/discovery_v1.html b/docs/dyn/discovery_v1.html
new file mode 100644
index 0000000..e4ac00f
--- /dev/null
+++ b/docs/dyn/discovery_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="discovery_v1.html">APIs Discovery Service</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="discovery_v1.apis.html">apis()</a></code>
+</p>
+<p class="firstline">Returns the apis Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dns_v1beta1.changes.html b/docs/dyn/dns_v1beta1.changes.html
new file mode 100644
index 0000000..4980ef8
--- /dev/null
+++ b/docs/dyn/dns_v1beta1.changes.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="dns_v1beta1.html">Google Cloud DNS API</a> . <a href="dns_v1beta1.changes.html">changes</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#create">create(project, managedZone, body)</a></code></p>
+<p class="firstline">Atomically update the ResourceRecordSet collection.</p>
+<p class="toc_element">
+  <code><a href="#get">get(project, managedZone, changeId)</a></code></p>
+<p class="firstline">Fetch the representation of an existing Change.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, managedZone, pageToken=None, maxResults=None, sortBy=None, sortOrder=None)</a></code></p>
+<p class="firstline">Enumerate Changes to a ResourceRecordSet collection.</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, managedZone, body)</code>
+  <pre>Atomically update the ResourceRecordSet collection.
+
+Args:
+  project: string, Identifies the project addressed by this request. (required)
+  managedZone: string, Identifies the managed zone addressed by this request. Can be the managed zone name or id. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An atomic update to a collection of ResourceRecordSets.
+    "deletions": [ # Which ResourceRecordSets to remove? Must match existing data exactly.
+      { # A unit of data that will be returned by the DNS servers.
+        "rrdatas": [ # As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1)
+          "A String",
+        ],
+        "kind": "dns#resourceRecordSet", # Identifies what kind of resource this is. Value: the fixed string "dns#resourceRecordSet".
+        "type": "A String", # One of A, AAAA, SOA, MX, NS, TXT
+        "name": "A String", # For example, www.example.com.
+        "ttl": 42, # Number of seconds that this ResourceRecordSet can be cached by resolvers.
+      },
+    ],
+    "status": "A String", # Status of the operation. Can be one of the following: "PENDING" or "DONE" (output only).
+    "kind": "dns#change", # Identifies what kind of resource this is. Value: the fixed string "dns#change".
+    "startTime": "A String", # The time that this operation was started by the server. This is in RFC3339 text format.
+    "additions": [ # Which ResourceRecordSets to add?
+      { # A unit of data that will be returned by the DNS servers.
+        "rrdatas": [ # As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1)
+          "A String",
+        ],
+        "kind": "dns#resourceRecordSet", # Identifies what kind of resource this is. Value: the fixed string "dns#resourceRecordSet".
+        "type": "A String", # One of A, AAAA, SOA, MX, NS, TXT
+        "name": "A String", # For example, www.example.com.
+        "ttl": 42, # Number of seconds that this ResourceRecordSet can be cached by resolvers.
+      },
+    ],
+    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An atomic update to a collection of ResourceRecordSets.
+      "deletions": [ # Which ResourceRecordSets to remove? Must match existing data exactly.
+        { # A unit of data that will be returned by the DNS servers.
+          "rrdatas": [ # As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1)
+            "A String",
+          ],
+          "kind": "dns#resourceRecordSet", # Identifies what kind of resource this is. Value: the fixed string "dns#resourceRecordSet".
+          "type": "A String", # One of A, AAAA, SOA, MX, NS, TXT
+          "name": "A String", # For example, www.example.com.
+          "ttl": 42, # Number of seconds that this ResourceRecordSet can be cached by resolvers.
+        },
+      ],
+      "status": "A String", # Status of the operation. Can be one of the following: "PENDING" or "DONE" (output only).
+      "kind": "dns#change", # Identifies what kind of resource this is. Value: the fixed string "dns#change".
+      "startTime": "A String", # The time that this operation was started by the server. This is in RFC3339 text format.
+      "additions": [ # Which ResourceRecordSets to add?
+        { # A unit of data that will be returned by the DNS servers.
+          "rrdatas": [ # As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1)
+            "A String",
+          ],
+          "kind": "dns#resourceRecordSet", # Identifies what kind of resource this is. Value: the fixed string "dns#resourceRecordSet".
+          "type": "A String", # One of A, AAAA, SOA, MX, NS, TXT
+          "name": "A String", # For example, www.example.com.
+          "ttl": 42, # Number of seconds that this ResourceRecordSet can be cached by resolvers.
+        },
+      ],
+      "id": "A String", # Unique identifier for the resource; defined by the server (output only).
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, managedZone, changeId)</code>
+  <pre>Fetch the representation of an existing Change.
+
+Args:
+  project: string, Identifies the project addressed by this request. (required)
+  managedZone: string, Identifies the managed zone addressed by this request. Can be the managed zone name or id. (required)
+  changeId: string, The identifier of the requested change, from a previous ResourceRecordSetsChangeResponse. (required)
+
+Returns:
+  An object of the form:
+
+    { # An atomic update to a collection of ResourceRecordSets.
+      "deletions": [ # Which ResourceRecordSets to remove? Must match existing data exactly.
+        { # A unit of data that will be returned by the DNS servers.
+          "rrdatas": [ # As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1)
+            "A String",
+          ],
+          "kind": "dns#resourceRecordSet", # Identifies what kind of resource this is. Value: the fixed string "dns#resourceRecordSet".
+          "type": "A String", # One of A, AAAA, SOA, MX, NS, TXT
+          "name": "A String", # For example, www.example.com.
+          "ttl": 42, # Number of seconds that this ResourceRecordSet can be cached by resolvers.
+        },
+      ],
+      "status": "A String", # Status of the operation. Can be one of the following: "PENDING" or "DONE" (output only).
+      "kind": "dns#change", # Identifies what kind of resource this is. Value: the fixed string "dns#change".
+      "startTime": "A String", # The time that this operation was started by the server. This is in RFC3339 text format.
+      "additions": [ # Which ResourceRecordSets to add?
+        { # A unit of data that will be returned by the DNS servers.
+          "rrdatas": [ # As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1)
+            "A String",
+          ],
+          "kind": "dns#resourceRecordSet", # Identifies what kind of resource this is. Value: the fixed string "dns#resourceRecordSet".
+          "type": "A String", # One of A, AAAA, SOA, MX, NS, TXT
+          "name": "A String", # For example, www.example.com.
+          "ttl": 42, # Number of seconds that this ResourceRecordSet can be cached by resolvers.
+        },
+      ],
+      "id": "A String", # Unique identifier for the resource; defined by the server (output only).
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, managedZone, pageToken=None, maxResults=None, sortBy=None, sortOrder=None)</code>
+  <pre>Enumerate Changes to a ResourceRecordSet collection.
+
+Args:
+  project: string, Identifies the project addressed by this request. (required)
+  managedZone: string, Identifies the managed zone addressed by this request. Can be the managed zone name or id. (required)
+  pageToken: string, Optional. A tag returned by a previous list request that was truncated. Use this parameter to continue a previous list request.
+  maxResults: integer, Optional. Maximum number of results to be returned. If unspecified, the server will decide how many results to return.
+  sortBy: string, Sorting criterion. The only supported value is change sequence.
+    Allowed values
+      changeSequence - 
+  sortOrder: string, Sorting order direction: 'ascending' or 'descending'.
+
+Returns:
+  An object of the form:
+
+    { # The response to a request to enumerate Changes to a ResourceRecordSets collection.
+    "nextPageToken": "A String", # The presence of this field indicates that there exist more results following your last page of results in pagination order. To fetch them, make another list request using this value as your pagination token.
+        #
+        # In this way you can retrieve the complete contents of even very large collections one page at a time. However, if the contents of the collection change between the first and last paginated list request, the set of all elements returned will be an inconsistent view of the collection. There is no way to retrieve a "snapshot" of collections larger than the maximum page size.
+    "kind": "dns#changesListResponse", # Type of resource.
+    "changes": [ # The requested changes.
+      { # An atomic update to a collection of ResourceRecordSets.
+          "deletions": [ # Which ResourceRecordSets to remove? Must match existing data exactly.
+            { # A unit of data that will be returned by the DNS servers.
+              "rrdatas": [ # As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1)
+                "A String",
+              ],
+              "kind": "dns#resourceRecordSet", # Identifies what kind of resource this is. Value: the fixed string "dns#resourceRecordSet".
+              "type": "A String", # One of A, AAAA, SOA, MX, NS, TXT
+              "name": "A String", # For example, www.example.com.
+              "ttl": 42, # Number of seconds that this ResourceRecordSet can be cached by resolvers.
+            },
+          ],
+          "status": "A String", # Status of the operation. Can be one of the following: "PENDING" or "DONE" (output only).
+          "kind": "dns#change", # Identifies what kind of resource this is. Value: the fixed string "dns#change".
+          "startTime": "A String", # The time that this operation was started by the server. This is in RFC3339 text format.
+          "additions": [ # Which ResourceRecordSets to add?
+            { # A unit of data that will be returned by the DNS servers.
+              "rrdatas": [ # As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1)
+                "A String",
+              ],
+              "kind": "dns#resourceRecordSet", # Identifies what kind of resource this is. Value: the fixed string "dns#resourceRecordSet".
+              "type": "A String", # One of A, AAAA, SOA, MX, NS, TXT
+              "name": "A String", # For example, www.example.com.
+              "ttl": 42, # Number of seconds that this ResourceRecordSet can be cached by resolvers.
+            },
+          ],
+          "id": "A String", # Unique identifier for the resource; defined by the server (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/dns_v1beta1.html b/docs/dyn/dns_v1beta1.html
new file mode 100644
index 0000000..1d0e2aa
--- /dev/null
+++ b/docs/dyn/dns_v1beta1.html
@@ -0,0 +1,97 @@
+<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="dns_v1beta1.html">Google Cloud DNS API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="dns_v1beta1.changes.html">changes()</a></code>
+</p>
+<p class="firstline">Returns the changes Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dns_v1beta1.managedZones.html">managedZones()</a></code>
+</p>
+<p class="firstline">Returns the managedZones Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dns_v1beta1.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dns_v1beta1.resourceRecordSets.html">resourceRecordSets()</a></code>
+</p>
+<p class="firstline">Returns the resourceRecordSets Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dns_v1beta1.managedZones.html b/docs/dyn/dns_v1beta1.managedZones.html
new file mode 100644
index 0000000..3a6ef99
--- /dev/null
+++ b/docs/dyn/dns_v1beta1.managedZones.html
@@ -0,0 +1,212 @@
+<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="dns_v1beta1.html">Google Cloud DNS API</a> . <a href="dns_v1beta1.managedZones.html">managedZones</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 ManagedZone.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(project, managedZone)</a></code></p>
+<p class="firstline">Delete a previously created ManagedZone.</p>
+<p class="toc_element">
+  <code><a href="#get">get(project, managedZone)</a></code></p>
+<p class="firstline">Fetch the representation of an existing ManagedZone.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Enumerate ManagedZones that have been created but not yet deleted.</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 ManagedZone.
+
+Args:
+  project: string, Identifies the project addressed by this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # 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.
+    "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.
+    "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.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # 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.
+      "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.
+      "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.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(project, managedZone)</code>
+  <pre>Delete a previously created ManagedZone.
+
+Args:
+  project: string, Identifies the project addressed by this request. (required)
+  managedZone: string, Identifies the managed zone addressed by this request. Can be the managed zone name or id. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, managedZone)</code>
+  <pre>Fetch the representation of an existing ManagedZone.
+
+Args:
+  project: string, Identifies the project addressed by this request. (required)
+  managedZone: string, Identifies the managed zone addressed by this request. Can be the managed zone name or id. (required)
+
+Returns:
+  An object of the form:
+
+    { # 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.
+      "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.
+      "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.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, pageToken=None, maxResults=None)</code>
+  <pre>Enumerate ManagedZones that have been created but not yet deleted.
+
+Args:
+  project: string, Identifies the project addressed by this request. (required)
+  pageToken: string, Optional. A tag returned by a previous list request that was truncated. Use this parameter to continue a previous list request.
+  maxResults: integer, Optional. Maximum number of results to be returned. If unspecified, the server will decide how many results to return.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # The presence of this field indicates that there exist more results following your last page of results in pagination order. To fetch them, make another list request using this value as your page token.
+        #
+        # In this way you can retrieve the complete contents of even very large collections one page at a time. However, if the contents of the collection change between the first and last paginated list request, the set of all elements returned will be an inconsistent view of the collection. There is no way to retrieve a consistent snapshot of a collection larger than the maximum page size.
+    "kind": "dns#managedZonesListResponse", # Type of resource.
+    "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.
+          "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.
+          "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.
+        },
+    ],
+  }</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/dns_v1beta1.projects.html b/docs/dyn/dns_v1beta1.projects.html
new file mode 100644
index 0000000..e8d3de5
--- /dev/null
+++ b/docs/dyn/dns_v1beta1.projects.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="dns_v1beta1.html">Google Cloud DNS API</a> . <a href="dns_v1beta1.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(project)</a></code></p>
+<p class="firstline">Fetch the representation of an existing Project.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(project)</code>
+  <pre>Fetch the representation of an existing Project.
+
+Args:
+  project: string, Identifies the project addressed by this request. (required)
+
+Returns:
+  An object of the form:
+
+    { # A project resource. The project is a top level container for resources including Cloud DNS ManagedZones. Projects can be created only in the APIs console.
+    "quota": { # Limits associated with a Project. # Quotas assigned to this project (output only).
+      "kind": "dns#quota", # Identifies what kind of resource this is. Value: the fixed string "dns#quota".
+      "rrsetAdditionsPerChange": 42, # Maximum allowed number of ResourceRecordSets to add per ChangesCreateRequest.
+      "totalRrdataSizePerChange": 42, # Maximum allowed size for total rrdata in one ChangesCreateRequest in bytes.
+      "resourceRecordsPerRrset": 42, # Maximum allowed number of ResourceRecords per ResourceRecordSet.
+      "rrsetsPerManagedZone": 42, # Maximum allowed number of ResourceRecordSets per zone in the project.
+      "rrsetDeletionsPerChange": 42, # Maximum allowed number of ResourceRecordSets to delete per ChangesCreateRequest.
+      "managedZones": 42, # Maximum allowed number of managed zones in the project.
+    },
+    "kind": "dns#project", # Identifies what kind of resource this is. Value: the fixed string "dns#project".
+    "id": "A String", # User assigned unique identifier for the resource (output only).
+    "number": "A String", # Unique numeric identifier for the resource; defined by the server (output only).
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dns_v1beta1.resourceRecordSets.html b/docs/dyn/dns_v1beta1.resourceRecordSets.html
new file mode 100644
index 0000000..e01903b
--- /dev/null
+++ b/docs/dyn/dns_v1beta1.resourceRecordSets.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="dns_v1beta1.html">Google Cloud DNS API</a> . <a href="dns_v1beta1.resourceRecordSets.html">resourceRecordSets</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(project, managedZone, name=None, pageToken=None, maxResults=None, type=None)</a></code></p>
+<p class="firstline">Enumerate ResourceRecordSets that have been created but not yet deleted.</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, managedZone, name=None, pageToken=None, maxResults=None, type=None)</code>
+  <pre>Enumerate ResourceRecordSets that have been created but not yet deleted.
+
+Args:
+  project: string, Identifies the project addressed by this request. (required)
+  managedZone: string, Identifies the managed zone addressed by this request. Can be the managed zone name or id. (required)
+  name: string, Restricts the list to return only records with this fully qualified domain name.
+  pageToken: string, Optional. A tag returned by a previous list request that was truncated. Use this parameter to continue a previous list request.
+  maxResults: integer, Optional. Maximum number of results to be returned. If unspecified, the server will decide how many results to return.
+  type: string, Restricts the list to return only records of this type. If present, the "name" parameter must also be present.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # The presence of this field indicates that there exist more results following your last page of results in pagination order. To fetch them, make another list request using this value as your pagination token.
+        #
+        # In this way you can retrieve the complete contents of even very large collections one page at a time. However, if the contents of the collection change between the first and last paginated list request, the set of all elements returned will be an inconsistent view of the collection. There is no way to retrieve a consistent snapshot of a collection larger than the maximum page size.
+    "rrsets": [ # The resource record set resources.
+      { # A unit of data that will be returned by the DNS servers.
+        "rrdatas": [ # As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1)
+          "A String",
+        ],
+        "kind": "dns#resourceRecordSet", # Identifies what kind of resource this is. Value: the fixed string "dns#resourceRecordSet".
+        "type": "A String", # One of A, AAAA, SOA, MX, NS, TXT
+        "name": "A String", # For example, www.example.com.
+        "ttl": 42, # Number of seconds that this ResourceRecordSet can be cached by resolvers.
+      },
+    ],
+    "kind": "dns#resourceRecordSetsListResponse", # Type of resource.
+  }</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/doubleclickbidmanager_v1.html b/docs/dyn/doubleclickbidmanager_v1.html
new file mode 100644
index 0000000..db1129a
--- /dev/null
+++ b/docs/dyn/doubleclickbidmanager_v1.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="doubleclickbidmanager_v1.html">DoubleClick Bid Manager API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="doubleclickbidmanager_v1.lineitems.html">lineitems()</a></code>
+</p>
+<p class="firstline">Returns the lineitems Resource.</p>
+
+<p class="toc_element">
+  <code><a href="doubleclickbidmanager_v1.queries.html">queries()</a></code>
+</p>
+<p class="firstline">Returns the queries Resource.</p>
+
+<p class="toc_element">
+  <code><a href="doubleclickbidmanager_v1.reports.html">reports()</a></code>
+</p>
+<p class="firstline">Returns the reports Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/doubleclickbidmanager_v1.lineitems.html b/docs/dyn/doubleclickbidmanager_v1.lineitems.html
new file mode 100644
index 0000000..821d7d6
--- /dev/null
+++ b/docs/dyn/doubleclickbidmanager_v1.lineitems.html
@@ -0,0 +1,148 @@
+<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="doubleclickbidmanager_v1.html">DoubleClick Bid Manager API</a> . <a href="doubleclickbidmanager_v1.lineitems.html">lineitems</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#downloadlineitems">downloadlineitems(body)</a></code></p>
+<p class="firstline">Retrieves line items in CSV format.</p>
+<p class="toc_element">
+  <code><a href="#uploadlineitems">uploadlineitems(body)</a></code></p>
+<p class="firstline">Uploads line items in CSV format.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="downloadlineitems">downloadlineitems(body)</code>
+  <pre>Retrieves line items in CSV format.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request to fetch stored line items.
+    "filterType": "A String", # Filter type used to filter line items to fetch.
+    "filterIds": [ # Ids of the specified filter type used to filter line items to fetch. If omitted, all the line items will be returned.
+      "A String",
+    ],
+    "format": "A String", # Format in which the line items will be returned. Default to CSV.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Download line items response.
+    "lineItems": "A String", # Retrieved line items in CSV format. Refer to  Entity Write File Format for more information on file format.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="uploadlineitems">uploadlineitems(body)</code>
+  <pre>Uploads line items in CSV format.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request to upload line items.
+    "lineItems": "A String", # Line items in CSV to upload. Refer to  Entity Write File Format for more information on file format.
+    "dryRun": True or False, # Set to true to get upload status without actually persisting the line items.
+    "format": "A String", # Format the line items are in. Default to CSV.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Upload line items response.
+    "uploadStatus": { # Represents the status of upload. # Status of upload.
+      "errors": [ # Reasons why upload can't be completed.
+        "A String",
+      ],
+      "rowStatus": [ # Per-row upload status.
+        { # Represents the upload status of a row in the request.
+          "errors": [ # Reasons why the entity can't be uploaded.
+            "A String",
+          ],
+          "entityName": "A String", # Entity name.
+          "changed": True or False, # Whether the stored entity is changed as a result of upload.
+          "rowNumber": 42, # Row number.
+          "persisted": True or False, # Whether the entity is persisted.
+          "entityId": "A String", # Entity Id.
+        },
+      ],
+    },
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/doubleclickbidmanager_v1.queries.html b/docs/dyn/doubleclickbidmanager_v1.queries.html
new file mode 100644
index 0000000..b37081e
--- /dev/null
+++ b/docs/dyn/doubleclickbidmanager_v1.queries.html
@@ -0,0 +1,336 @@
+<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="doubleclickbidmanager_v1.html">DoubleClick Bid Manager API</a> . <a href="doubleclickbidmanager_v1.queries.html">queries</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#createquery">createquery(body)</a></code></p>
+<p class="firstline">Creates a query.</p>
+<p class="toc_element">
+  <code><a href="#deletequery">deletequery(queryId)</a></code></p>
+<p class="firstline">Deletes a stored query as well as the associated stored reports.</p>
+<p class="toc_element">
+  <code><a href="#getquery">getquery(queryId)</a></code></p>
+<p class="firstline">Retrieves a stored query.</p>
+<p class="toc_element">
+  <code><a href="#listqueries">listqueries()</a></code></p>
+<p class="firstline">Retrieves stored queries.</p>
+<p class="toc_element">
+  <code><a href="#runquery">runquery(queryId, body)</a></code></p>
+<p class="firstline">Runs a stored query to generate a report.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="createquery">createquery(body)</code>
+  <pre>Creates a query.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a query.
+  "kind": "doubleclickbidmanager#query", # Identifies what kind of resource this is. Value: the fixed string "doubleclickbidmanager#query".
+  "schedule": { # Information on how frequently and when to run a query. # Information on how often and when to run a query.
+    "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.
+  },
+  "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.
+  "queryId": "A String", # Query ID.
+  "params": { # Parameters of a query or report. # Query parameters.
+    "metrics": [ # Metrics to include as columns in your report.
+      "A String",
+    ],
+    "includeInviteData": True or False, # Whether to include data from Invite Media.
+    "type": "A String", # Report type.
+    "groupBys": [ # Data is grouped by the filters listed in this field.
+      "A String",
+    ],
+    "filters": [ # Filters used to match traffic data in your report.
+      { # Filter used to match traffic data in your report.
+        "type": "A String", # Filter type.
+        "value": "A String", # Filter value.
+      },
+    ],
+  },
+  "reportDataStartTimeMs": "A String", # The starting time for the data that is shown in the report. Note, reportDataStartTimeMs is required if metadata.dataRange is CUSTOM_DATES and ignored otherwise.
+  "metadata": { # Query metadata. # Query metadata.
+    "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.
+    "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.
+      "A String",
+    ],
+    "reportCount": 42, # Number of reports that have been generated for the query.
+    "running": True or False, # Whether the latest report is currently running.
+    "latestReportRunTimeMs": "A String", # The time when the latest report started to run.
+    "title": "A String", # Query title. It is used to name the reports generated from this query.
+  },
+}
+
+
+Returns:
+  An object of the form:
+
+    { # Represents a query.
+    "kind": "doubleclickbidmanager#query", # Identifies what kind of resource this is. Value: the fixed string "doubleclickbidmanager#query".
+    "schedule": { # Information on how frequently and when to run a query. # Information on how often and when to run a query.
+      "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.
+    },
+    "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.
+    "queryId": "A String", # Query ID.
+    "params": { # Parameters of a query or report. # Query parameters.
+      "metrics": [ # Metrics to include as columns in your report.
+        "A String",
+      ],
+      "includeInviteData": True or False, # Whether to include data from Invite Media.
+      "type": "A String", # Report type.
+      "groupBys": [ # Data is grouped by the filters listed in this field.
+        "A String",
+      ],
+      "filters": [ # Filters used to match traffic data in your report.
+        { # Filter used to match traffic data in your report.
+          "type": "A String", # Filter type.
+          "value": "A String", # Filter value.
+        },
+      ],
+    },
+    "reportDataStartTimeMs": "A String", # The starting time for the data that is shown in the report. Note, reportDataStartTimeMs is required if metadata.dataRange is CUSTOM_DATES and ignored otherwise.
+    "metadata": { # Query metadata. # Query metadata.
+      "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.
+      "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.
+        "A String",
+      ],
+      "reportCount": 42, # Number of reports that have been generated for the query.
+      "running": True or False, # Whether the latest report is currently running.
+      "latestReportRunTimeMs": "A String", # The time when the latest report started to run.
+      "title": "A String", # Query title. It is used to name the reports generated from this query.
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="deletequery">deletequery(queryId)</code>
+  <pre>Deletes a stored query as well as the associated stored reports.
+
+Args:
+  queryId: string, Query ID to delete. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getquery">getquery(queryId)</code>
+  <pre>Retrieves a stored query.
+
+Args:
+  queryId: string, Query ID to retrieve. (required)
+
+Returns:
+  An object of the form:
+
+    { # Represents a query.
+    "kind": "doubleclickbidmanager#query", # Identifies what kind of resource this is. Value: the fixed string "doubleclickbidmanager#query".
+    "schedule": { # Information on how frequently and when to run a query. # Information on how often and when to run a query.
+      "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.
+    },
+    "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.
+    "queryId": "A String", # Query ID.
+    "params": { # Parameters of a query or report. # Query parameters.
+      "metrics": [ # Metrics to include as columns in your report.
+        "A String",
+      ],
+      "includeInviteData": True or False, # Whether to include data from Invite Media.
+      "type": "A String", # Report type.
+      "groupBys": [ # Data is grouped by the filters listed in this field.
+        "A String",
+      ],
+      "filters": [ # Filters used to match traffic data in your report.
+        { # Filter used to match traffic data in your report.
+          "type": "A String", # Filter type.
+          "value": "A String", # Filter value.
+        },
+      ],
+    },
+    "reportDataStartTimeMs": "A String", # The starting time for the data that is shown in the report. Note, reportDataStartTimeMs is required if metadata.dataRange is CUSTOM_DATES and ignored otherwise.
+    "metadata": { # Query metadata. # Query metadata.
+      "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.
+      "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.
+        "A String",
+      ],
+      "reportCount": 42, # Number of reports that have been generated for the query.
+      "running": True or False, # Whether the latest report is currently running.
+      "latestReportRunTimeMs": "A String", # The time when the latest report started to run.
+      "title": "A String", # Query title. It is used to name the reports generated from this query.
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="listqueries">listqueries()</code>
+  <pre>Retrieves stored queries.
+
+Args:
+
+Returns:
+  An object of the form:
+
+    { # List queries response.
+    "kind": "doubleclickbidmanager#listQueriesResponse", # Identifies what kind of resource this is. Value: the fixed string "doubleclickbidmanager#listQueriesResponse".
+    "queries": [ # Retrieved queries.
+      { # Represents a query.
+        "kind": "doubleclickbidmanager#query", # Identifies what kind of resource this is. Value: the fixed string "doubleclickbidmanager#query".
+        "schedule": { # Information on how frequently and when to run a query. # Information on how often and when to run a query.
+          "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.
+        },
+        "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.
+        "queryId": "A String", # Query ID.
+        "params": { # Parameters of a query or report. # Query parameters.
+          "metrics": [ # Metrics to include as columns in your report.
+            "A String",
+          ],
+          "includeInviteData": True or False, # Whether to include data from Invite Media.
+          "type": "A String", # Report type.
+          "groupBys": [ # Data is grouped by the filters listed in this field.
+            "A String",
+          ],
+          "filters": [ # Filters used to match traffic data in your report.
+            { # Filter used to match traffic data in your report.
+              "type": "A String", # Filter type.
+              "value": "A String", # Filter value.
+            },
+          ],
+        },
+        "reportDataStartTimeMs": "A String", # The starting time for the data that is shown in the report. Note, reportDataStartTimeMs is required if metadata.dataRange is CUSTOM_DATES and ignored otherwise.
+        "metadata": { # Query metadata. # Query metadata.
+          "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.
+          "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.
+            "A String",
+          ],
+          "reportCount": 42, # Number of reports that have been generated for the query.
+          "running": True or False, # Whether the latest report is currently running.
+          "latestReportRunTimeMs": "A String", # The time when the latest report started to run.
+          "title": "A String", # Query title. It is used to name the reports generated from this query.
+        },
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="runquery">runquery(queryId, body)</code>
+  <pre>Runs a stored query to generate a report.
+
+Args:
+  queryId: string, Query ID to run. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request to run a stored query to generate a report.
+    "reportDataEndTimeMs": "A String", # The ending time for the data that is shown in the report. Note, reportDataEndTimeMs is required if dataRange is CUSTOM_DATES and ignored otherwise.
+    "timezoneCode": "A String", # Canonical timezone code for report data time. Defaults to America/New_York.
+    "reportDataStartTimeMs": "A String", # The starting time for the data that is shown in the report. Note, reportDataStartTimeMs is required if dataRange is CUSTOM_DATES and ignored otherwise.
+    "dataRange": "A String", # Report data range used to generate the report.
+  }
+
+</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/doubleclickbidmanager_v1.reports.html b/docs/dyn/doubleclickbidmanager_v1.reports.html
new file mode 100644
index 0000000..6a3b018
--- /dev/null
+++ b/docs/dyn/doubleclickbidmanager_v1.reports.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="doubleclickbidmanager_v1.html">DoubleClick Bid Manager API</a> . <a href="doubleclickbidmanager_v1.reports.html">reports</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#listreports">listreports(queryId)</a></code></p>
+<p class="firstline">Retrieves stored reports.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="listreports">listreports(queryId)</code>
+  <pre>Retrieves stored reports.
+
+Args:
+  queryId: string, Query ID with which the reports are associated. (required)
+
+Returns:
+  An object of the form:
+
+    { # List reports response.
+    "kind": "doubleclickbidmanager#listReportsResponse", # Identifies what kind of resource this is. Value: the fixed string "doubleclickbidmanager#listReportsResponse".
+    "reports": [ # Retrieved reports.
+      { # Represents a report.
+        "params": { # Parameters of a query or report. # Report parameters.
+          "metrics": [ # Metrics to include as columns in your report.
+            "A String",
+          ],
+          "includeInviteData": True or False, # Whether to include data from Invite Media.
+          "type": "A String", # Report type.
+          "groupBys": [ # Data is grouped by the filters listed in this field.
+            "A String",
+          ],
+          "filters": [ # Filters used to match traffic data in your report.
+            { # Filter used to match traffic data in your report.
+              "type": "A String", # Filter type.
+              "value": "A String", # Filter value.
+            },
+          ],
+        },
+        "key": { # Key used to identify a report. # Key used to identify a report.
+          "queryId": "A String", # Query ID.
+          "reportId": "A String", # Report ID.
+        },
+        "metadata": { # Report metadata. # Report metadata.
+          "status": { # Report status. # Report status.
+            "failure": { # An explanation of a report failure. # If the report failed, this records the cause.
+              "errorCode": "A String", # Error code that shows why the report was not created.
+            },
+            "state": "A String", # The state of the report.
+            "finishTimeMs": "A String", # The time when this report either completed successfully or failed.
+            "format": "A String", # The file type of the report.
+          },
+          "reportDataEndTimeMs": "A String", # The ending time for the data that is shown in the report.
+          "googleCloudStoragePath": "A String", # The path to the location in Google Cloud Storage where the report is stored.
+          "reportDataStartTimeMs": "A String", # The starting time for the data that is shown in the report.
+        },
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/doubleclicksearch_v2.conversion.html b/docs/dyn/doubleclicksearch_v2.conversion.html
new file mode 100644
index 0000000..02ed825
--- /dev/null
+++ b/docs/dyn/doubleclicksearch_v2.conversion.html
@@ -0,0 +1,486 @@
+<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="doubleclicksearch_v2.html">DoubleClick Search API</a> . <a href="doubleclicksearch_v2.conversion.html">conversion</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(agencyId, advertiserId, engineAccountId, endDate, rowCount, startDate, startRow, adGroupId=None, campaignId=None, adId=None, criterionId=None)</a></code></p>
+<p class="firstline">Retrieves a list of conversions from a DoubleClick Search engine account.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(body)</a></code></p>
+<p class="firstline">Inserts a batch of new conversions into DoubleClick Search.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(advertiserId, agencyId, endDate, engineAccountId, rowCount, startDate, startRow, body)</a></code></p>
+<p class="firstline">Updates a batch of conversions in DoubleClick Search. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(body)</a></code></p>
+<p class="firstline">Updates a batch of conversions in DoubleClick Search.</p>
+<p class="toc_element">
+  <code><a href="#updateAvailability">updateAvailability(body)</a></code></p>
+<p class="firstline">Updates the availabilities of a batch of floodlight activities in DoubleClick Search.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(agencyId, advertiserId, engineAccountId, endDate, rowCount, startDate, startRow, adGroupId=None, campaignId=None, adId=None, criterionId=None)</code>
+  <pre>Retrieves a list of conversions from a DoubleClick Search engine account.
+
+Args:
+  agencyId: string, Numeric ID of the agency. (required)
+  advertiserId: string, Numeric ID of the advertiser. (required)
+  engineAccountId: string, Numeric ID of the engine account. (required)
+  endDate: integer, Last date (inclusive) on which to retrieve conversions. Format is yyyymmdd. (required)
+  rowCount: integer, The number of conversions to return per call. (required)
+  startDate: integer, First date (inclusive) on which to retrieve conversions. Format is yyyymmdd. (required)
+  startRow: integer, The 0-based starting index for retrieving conversions results. (required)
+  adGroupId: string, Numeric ID of the ad group.
+  campaignId: string, Numeric ID of the campaign.
+  adId: string, Numeric ID of the ad.
+  criterionId: string, Numeric ID of the criterion.
+
+Returns:
+  An object of the form:
+
+    { # A list of conversions.
+      "conversion": [ # The conversions being requested.
+        { # A conversion containing data relevant to DoubleClick Search.
+          "customDimension": [ # Custom dimensions for the conversion, which can be used to filter data in a report.
+            { # A message containing the custome dimension.
+              "name": "A String", # Custom dimension name.
+              "value": "A String", # Custom dimension value.
+            },
+          ],
+          "adGroupId": "A String", # DS ad group ID.
+          "dsConversionId": "A String", # DS conversion ID.
+          "campaignId": "A String", # DS campaign ID.
+          "revenueMicros": "A String", # The revenue amount of this TRANSACTION conversion, in micros.
+          "advertiserId": "A String", # DS advertiser ID.
+          "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.
+          "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.
+          "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.
+          "segmentationId": "A String", # The numeric segmentation identifier (for example, DoubleClick Search Floodlight activity ID).
+          "agencyId": "A String", # DS agency ID.
+          "quantityMillis": "A String", # The quantity of this conversion, in millis.
+          "criterionId": "A String", # DS criterion (keyword) ID.
+          "segmentationType": "A String", # The segmentation type of this conversion (for example, FLOODLIGHT).
+          "customMetric": [ # Custom metrics for the conversion.
+            { # A message containing the custome metric.
+              "name": "A String", # Custom metric name.
+              "value": 3.14, # Custom metric numeric value.
+            },
+          ],
+          "engineAccountId": "A String", # DS engine account ID.
+          "type": "A String", # The type of the conversion, that is, either ACTION or TRANSACTION. An ACTION conversion is an action by the user that has no monetarily quantifiable value, while a TRANSACTION conversion is an action that does have a monetarily quantifiable value. Examples are email list signups (ACTION) versus ecommerce purchases (TRANSACTION).
+          "segmentationName": "A String", # The friendly segmentation identifier (for example, DoubleClick Search Floodlight activity name).
+        },
+      ],
+      "kind": "doubleclicksearch#conversionList", # Identifies this as a ConversionList resource. Value: the fixed string doubleclicksearch#conversionList.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(body)</code>
+  <pre>Inserts a batch of new conversions into DoubleClick Search.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A list of conversions.
+    "conversion": [ # The conversions being requested.
+      { # A conversion containing data relevant to DoubleClick Search.
+        "customDimension": [ # Custom dimensions for the conversion, which can be used to filter data in a report.
+          { # A message containing the custome dimension.
+            "name": "A String", # Custom dimension name.
+            "value": "A String", # Custom dimension value.
+          },
+        ],
+        "adGroupId": "A String", # DS ad group ID.
+        "dsConversionId": "A String", # DS conversion ID.
+        "campaignId": "A String", # DS campaign ID.
+        "revenueMicros": "A String", # The revenue amount of this TRANSACTION conversion, in micros.
+        "advertiserId": "A String", # DS advertiser ID.
+        "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.
+        "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.
+        "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.
+        "segmentationId": "A String", # The numeric segmentation identifier (for example, DoubleClick Search Floodlight activity ID).
+        "agencyId": "A String", # DS agency ID.
+        "quantityMillis": "A String", # The quantity of this conversion, in millis.
+        "criterionId": "A String", # DS criterion (keyword) ID.
+        "segmentationType": "A String", # The segmentation type of this conversion (for example, FLOODLIGHT).
+        "customMetric": [ # Custom metrics for the conversion.
+          { # A message containing the custome metric.
+            "name": "A String", # Custom metric name.
+            "value": 3.14, # Custom metric numeric value.
+          },
+        ],
+        "engineAccountId": "A String", # DS engine account ID.
+        "type": "A String", # The type of the conversion, that is, either ACTION or TRANSACTION. An ACTION conversion is an action by the user that has no monetarily quantifiable value, while a TRANSACTION conversion is an action that does have a monetarily quantifiable value. Examples are email list signups (ACTION) versus ecommerce purchases (TRANSACTION).
+        "segmentationName": "A String", # The friendly segmentation identifier (for example, DoubleClick Search Floodlight activity name).
+      },
+    ],
+    "kind": "doubleclicksearch#conversionList", # Identifies this as a ConversionList resource. Value: the fixed string doubleclicksearch#conversionList.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A list of conversions.
+      "conversion": [ # The conversions being requested.
+        { # A conversion containing data relevant to DoubleClick Search.
+          "customDimension": [ # Custom dimensions for the conversion, which can be used to filter data in a report.
+            { # A message containing the custome dimension.
+              "name": "A String", # Custom dimension name.
+              "value": "A String", # Custom dimension value.
+            },
+          ],
+          "adGroupId": "A String", # DS ad group ID.
+          "dsConversionId": "A String", # DS conversion ID.
+          "campaignId": "A String", # DS campaign ID.
+          "revenueMicros": "A String", # The revenue amount of this TRANSACTION conversion, in micros.
+          "advertiserId": "A String", # DS advertiser ID.
+          "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.
+          "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.
+          "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.
+          "segmentationId": "A String", # The numeric segmentation identifier (for example, DoubleClick Search Floodlight activity ID).
+          "agencyId": "A String", # DS agency ID.
+          "quantityMillis": "A String", # The quantity of this conversion, in millis.
+          "criterionId": "A String", # DS criterion (keyword) ID.
+          "segmentationType": "A String", # The segmentation type of this conversion (for example, FLOODLIGHT).
+          "customMetric": [ # Custom metrics for the conversion.
+            { # A message containing the custome metric.
+              "name": "A String", # Custom metric name.
+              "value": 3.14, # Custom metric numeric value.
+            },
+          ],
+          "engineAccountId": "A String", # DS engine account ID.
+          "type": "A String", # The type of the conversion, that is, either ACTION or TRANSACTION. An ACTION conversion is an action by the user that has no monetarily quantifiable value, while a TRANSACTION conversion is an action that does have a monetarily quantifiable value. Examples are email list signups (ACTION) versus ecommerce purchases (TRANSACTION).
+          "segmentationName": "A String", # The friendly segmentation identifier (for example, DoubleClick Search Floodlight activity name).
+        },
+      ],
+      "kind": "doubleclicksearch#conversionList", # Identifies this as a ConversionList resource. Value: the fixed string doubleclicksearch#conversionList.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(advertiserId, agencyId, endDate, engineAccountId, rowCount, startDate, startRow, body)</code>
+  <pre>Updates a batch of conversions in DoubleClick Search. This method supports patch semantics.
+
+Args:
+  advertiserId: string, Numeric ID of the advertiser. (required)
+  agencyId: string, Numeric ID of the agency. (required)
+  endDate: integer, Last date (inclusive) on which to retrieve conversions. Format is yyyymmdd. (required)
+  engineAccountId: string, Numeric ID of the engine account. (required)
+  rowCount: integer, The number of conversions to return per call. (required)
+  startDate: integer, First date (inclusive) on which to retrieve conversions. Format is yyyymmdd. (required)
+  startRow: integer, The 0-based starting index for retrieving conversions results. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A list of conversions.
+    "conversion": [ # The conversions being requested.
+      { # A conversion containing data relevant to DoubleClick Search.
+        "customDimension": [ # Custom dimensions for the conversion, which can be used to filter data in a report.
+          { # A message containing the custome dimension.
+            "name": "A String", # Custom dimension name.
+            "value": "A String", # Custom dimension value.
+          },
+        ],
+        "adGroupId": "A String", # DS ad group ID.
+        "dsConversionId": "A String", # DS conversion ID.
+        "campaignId": "A String", # DS campaign ID.
+        "revenueMicros": "A String", # The revenue amount of this TRANSACTION conversion, in micros.
+        "advertiserId": "A String", # DS advertiser ID.
+        "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.
+        "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.
+        "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.
+        "segmentationId": "A String", # The numeric segmentation identifier (for example, DoubleClick Search Floodlight activity ID).
+        "agencyId": "A String", # DS agency ID.
+        "quantityMillis": "A String", # The quantity of this conversion, in millis.
+        "criterionId": "A String", # DS criterion (keyword) ID.
+        "segmentationType": "A String", # The segmentation type of this conversion (for example, FLOODLIGHT).
+        "customMetric": [ # Custom metrics for the conversion.
+          { # A message containing the custome metric.
+            "name": "A String", # Custom metric name.
+            "value": 3.14, # Custom metric numeric value.
+          },
+        ],
+        "engineAccountId": "A String", # DS engine account ID.
+        "type": "A String", # The type of the conversion, that is, either ACTION or TRANSACTION. An ACTION conversion is an action by the user that has no monetarily quantifiable value, while a TRANSACTION conversion is an action that does have a monetarily quantifiable value. Examples are email list signups (ACTION) versus ecommerce purchases (TRANSACTION).
+        "segmentationName": "A String", # The friendly segmentation identifier (for example, DoubleClick Search Floodlight activity name).
+      },
+    ],
+    "kind": "doubleclicksearch#conversionList", # Identifies this as a ConversionList resource. Value: the fixed string doubleclicksearch#conversionList.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A list of conversions.
+      "conversion": [ # The conversions being requested.
+        { # A conversion containing data relevant to DoubleClick Search.
+          "customDimension": [ # Custom dimensions for the conversion, which can be used to filter data in a report.
+            { # A message containing the custome dimension.
+              "name": "A String", # Custom dimension name.
+              "value": "A String", # Custom dimension value.
+            },
+          ],
+          "adGroupId": "A String", # DS ad group ID.
+          "dsConversionId": "A String", # DS conversion ID.
+          "campaignId": "A String", # DS campaign ID.
+          "revenueMicros": "A String", # The revenue amount of this TRANSACTION conversion, in micros.
+          "advertiserId": "A String", # DS advertiser ID.
+          "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.
+          "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.
+          "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.
+          "segmentationId": "A String", # The numeric segmentation identifier (for example, DoubleClick Search Floodlight activity ID).
+          "agencyId": "A String", # DS agency ID.
+          "quantityMillis": "A String", # The quantity of this conversion, in millis.
+          "criterionId": "A String", # DS criterion (keyword) ID.
+          "segmentationType": "A String", # The segmentation type of this conversion (for example, FLOODLIGHT).
+          "customMetric": [ # Custom metrics for the conversion.
+            { # A message containing the custome metric.
+              "name": "A String", # Custom metric name.
+              "value": 3.14, # Custom metric numeric value.
+            },
+          ],
+          "engineAccountId": "A String", # DS engine account ID.
+          "type": "A String", # The type of the conversion, that is, either ACTION or TRANSACTION. An ACTION conversion is an action by the user that has no monetarily quantifiable value, while a TRANSACTION conversion is an action that does have a monetarily quantifiable value. Examples are email list signups (ACTION) versus ecommerce purchases (TRANSACTION).
+          "segmentationName": "A String", # The friendly segmentation identifier (for example, DoubleClick Search Floodlight activity name).
+        },
+      ],
+      "kind": "doubleclicksearch#conversionList", # Identifies this as a ConversionList resource. Value: the fixed string doubleclicksearch#conversionList.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(body)</code>
+  <pre>Updates a batch of conversions in DoubleClick Search.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A list of conversions.
+    "conversion": [ # The conversions being requested.
+      { # A conversion containing data relevant to DoubleClick Search.
+        "customDimension": [ # Custom dimensions for the conversion, which can be used to filter data in a report.
+          { # A message containing the custome dimension.
+            "name": "A String", # Custom dimension name.
+            "value": "A String", # Custom dimension value.
+          },
+        ],
+        "adGroupId": "A String", # DS ad group ID.
+        "dsConversionId": "A String", # DS conversion ID.
+        "campaignId": "A String", # DS campaign ID.
+        "revenueMicros": "A String", # The revenue amount of this TRANSACTION conversion, in micros.
+        "advertiserId": "A String", # DS advertiser ID.
+        "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.
+        "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.
+        "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.
+        "segmentationId": "A String", # The numeric segmentation identifier (for example, DoubleClick Search Floodlight activity ID).
+        "agencyId": "A String", # DS agency ID.
+        "quantityMillis": "A String", # The quantity of this conversion, in millis.
+        "criterionId": "A String", # DS criterion (keyword) ID.
+        "segmentationType": "A String", # The segmentation type of this conversion (for example, FLOODLIGHT).
+        "customMetric": [ # Custom metrics for the conversion.
+          { # A message containing the custome metric.
+            "name": "A String", # Custom metric name.
+            "value": 3.14, # Custom metric numeric value.
+          },
+        ],
+        "engineAccountId": "A String", # DS engine account ID.
+        "type": "A String", # The type of the conversion, that is, either ACTION or TRANSACTION. An ACTION conversion is an action by the user that has no monetarily quantifiable value, while a TRANSACTION conversion is an action that does have a monetarily quantifiable value. Examples are email list signups (ACTION) versus ecommerce purchases (TRANSACTION).
+        "segmentationName": "A String", # The friendly segmentation identifier (for example, DoubleClick Search Floodlight activity name).
+      },
+    ],
+    "kind": "doubleclicksearch#conversionList", # Identifies this as a ConversionList resource. Value: the fixed string doubleclicksearch#conversionList.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A list of conversions.
+      "conversion": [ # The conversions being requested.
+        { # A conversion containing data relevant to DoubleClick Search.
+          "customDimension": [ # Custom dimensions for the conversion, which can be used to filter data in a report.
+            { # A message containing the custome dimension.
+              "name": "A String", # Custom dimension name.
+              "value": "A String", # Custom dimension value.
+            },
+          ],
+          "adGroupId": "A String", # DS ad group ID.
+          "dsConversionId": "A String", # DS conversion ID.
+          "campaignId": "A String", # DS campaign ID.
+          "revenueMicros": "A String", # The revenue amount of this TRANSACTION conversion, in micros.
+          "advertiserId": "A String", # DS advertiser ID.
+          "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.
+          "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.
+          "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.
+          "segmentationId": "A String", # The numeric segmentation identifier (for example, DoubleClick Search Floodlight activity ID).
+          "agencyId": "A String", # DS agency ID.
+          "quantityMillis": "A String", # The quantity of this conversion, in millis.
+          "criterionId": "A String", # DS criterion (keyword) ID.
+          "segmentationType": "A String", # The segmentation type of this conversion (for example, FLOODLIGHT).
+          "customMetric": [ # Custom metrics for the conversion.
+            { # A message containing the custome metric.
+              "name": "A String", # Custom metric name.
+              "value": 3.14, # Custom metric numeric value.
+            },
+          ],
+          "engineAccountId": "A String", # DS engine account ID.
+          "type": "A String", # The type of the conversion, that is, either ACTION or TRANSACTION. An ACTION conversion is an action by the user that has no monetarily quantifiable value, while a TRANSACTION conversion is an action that does have a monetarily quantifiable value. Examples are email list signups (ACTION) versus ecommerce purchases (TRANSACTION).
+          "segmentationName": "A String", # The friendly segmentation identifier (for example, DoubleClick Search Floodlight activity name).
+        },
+      ],
+      "kind": "doubleclicksearch#conversionList", # Identifies this as a ConversionList resource. Value: the fixed string doubleclicksearch#conversionList.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="updateAvailability">updateAvailability(body)</code>
+  <pre>Updates the availabilities of a batch of floodlight activities in DoubleClick Search.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The request to update availability.
+    "availabilities": [ # The availabilities being requested.
+      { # A message containing availability data relevant to DoubleClick Search.
+        "segmentationId": "A String", # The numeric segmentation identifier (for example, DoubleClick Search Floodlight activity ID).
+        "agencyId": "A String", # DS agency ID.
+        "segmentationName": "A String", # The friendly segmentation identifier (for example, DoubleClick Search Floodlight activity name).
+        "availabilityTimestamp": "A String", # The time by which all conversions have been uploaded, in epoch millis UTC.
+        "advertiserId": "A String", # DS advertiser ID.
+        "segmentationType": "A String", # The segmentation type that this availability is for (its default value is FLOODLIGHT).
+      },
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # The response to a update availability request.
+    "availabilities": [ # The availabilities being returned.
+      { # A message containing availability data relevant to DoubleClick Search.
+        "segmentationId": "A String", # The numeric segmentation identifier (for example, DoubleClick Search Floodlight activity ID).
+        "agencyId": "A String", # DS agency ID.
+        "segmentationName": "A String", # The friendly segmentation identifier (for example, DoubleClick Search Floodlight activity name).
+        "availabilityTimestamp": "A String", # The time by which all conversions have been uploaded, in epoch millis UTC.
+        "advertiserId": "A String", # DS advertiser ID.
+        "segmentationType": "A String", # The segmentation type that this availability is for (its default value is FLOODLIGHT).
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/doubleclicksearch_v2.html b/docs/dyn/doubleclicksearch_v2.html
new file mode 100644
index 0000000..02fd66d
--- /dev/null
+++ b/docs/dyn/doubleclicksearch_v2.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="doubleclicksearch_v2.html">DoubleClick Search API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="doubleclicksearch_v2.conversion.html">conversion()</a></code>
+</p>
+<p class="firstline">Returns the conversion Resource.</p>
+
+<p class="toc_element">
+  <code><a href="doubleclicksearch_v2.reports.html">reports()</a></code>
+</p>
+<p class="firstline">Returns the reports Resource.</p>
+
+<p class="toc_element">
+  <code><a href="doubleclicksearch_v2.savedColumns.html">savedColumns()</a></code>
+</p>
+<p class="firstline">Returns the savedColumns Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/doubleclicksearch_v2.reports.html b/docs/dyn/doubleclicksearch_v2.reports.html
new file mode 100644
index 0000000..8b02daf
--- /dev/null
+++ b/docs/dyn/doubleclicksearch_v2.reports.html
@@ -0,0 +1,497 @@
+<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="doubleclicksearch_v2.html">DoubleClick Search API</a> . <a href="doubleclicksearch_v2.reports.html">reports</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#generate">generate(body)</a></code></p>
+<p class="firstline">Generates and returns a report immediately.</p>
+<p class="toc_element">
+  <code><a href="#get">get(reportId)</a></code></p>
+<p class="firstline">Polls for the status of a report request.</p>
+<p class="toc_element">
+  <code><a href="#getFile">getFile(reportId, reportFragment)</a></code></p>
+<p class="firstline">Downloads a report file.</p>
+<p class="toc_element">
+  <code><a href="#getFile_media">getFile_media(reportId, reportFragment)</a></code></p>
+<p class="firstline">Downloads a report file.</p>
+<p class="toc_element">
+  <code><a href="#request">request(body)</a></code></p>
+<p class="firstline">Inserts a report request into the reporting system.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="generate">generate(body)</code>
+  <pre>Generates and returns a report immediately.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A request object used to create a DoubleClick Search report.
+    "orderBy": [ # Synchronous report only. A list of columns and directions defining sorting to be performed on the report rows.
+      {
+        "column": { # Column to perform the sort on. This can be a DoubleClick Search-defined column or a saved column.
+          "columnName": "A String", # Name of a DoubleClick Search column to sort by.
+          "savedColumnName": "A String", # Name of a saved column to sort by.
+        },
+        "sortOrder": "A String", # The sort direction, which is either ascending or descending.
+      },
+    ],
+    "reportScope": { # The reportScope is a set of IDs that are used to determine which subset of entities will be returned in the report. The full lineage of IDs from the lowest scoped level desired up through agency is required.
+      "adGroupId": "A String", # DS ad group ID.
+      "agencyId": "A String", # DS agency ID.
+      "engineAccountId": "A String", # DS engine account ID.
+      "campaignId": "A String", # DS campaign ID.
+      "advertiserId": "A String", # DS advertiser ID.
+      "keywordId": "A String", # DS keyword ID.
+      "adId": "A String", # DS ad ID.
+    },
+    "maxRowsPerFile": 42, # Asynchronous report only. The maximum number of rows per report file. A large report is split into many files based on this field. Acceptable values are 1000000 to 100000000, inclusive.
+    "statisticsCurrency": "A String", # Specifies the currency in which monetary will be returned. Possible values are: usd, agency (valid if the report is scoped to agency or lower), advertiser (valid if the report is scoped to * advertiser or lower), or account (valid if the report is scoped to engine account or lower).
+    "timeRange": { # If metrics are requested in a report, this argument will be used to restrict the metrics to a specific time range.
+      "changedMetricsSinceTimestamp": "A String", # Inclusive UTC timestamp in RFC format, e.g., 2013-07-16T10:16:23.555Z. See additional references on how changed metrics reports work.
+      "endDate": "A String", # Inclusive date in YYYY-MM-DD format.
+      "changedAttributesSinceTimestamp": "A String", # Inclusive UTC timestamp in RFC format, e.g., 2013-07-16T10:16:23.555Z. See additional references on how changed attribute reports work.
+      "startDate": "A String", # Inclusive date in YYYY-MM-DD format.
+    },
+    "startRow": 0, # Synchronous report only. Zero-based index of the first row to return. Acceptable values are 0 to 50000, inclusive. Defaults to 0.
+    "rowCount": 10000, # Synchronous report only. The maxinum number of rows to return; additional rows are dropped. Acceptable values are 0 to 10000, inclusive. Defaults to 10000.
+    "reportType": "A String", # Determines the type of rows that are returned in the report. For example, if you specify reportType: keyword, each row in the report will contain data about a keyword. See the Types of Reports reference for the columns that are available for each type.
+    "verifySingleTimeZone": false, # If true, the report would only be created if all the requested stat data are sourced from a single timezone. Defaults to false.
+    "filters": [ # A list of filters to be applied to the report.
+      {
+        "column": { # Column to perform the filter on. This can be a DoubleClick Search column or a saved column.
+          "columnName": "A String", # Name of a DoubleClick Search column to filter on.
+          "savedColumnName": "A String", # Name of a saved column to filter on.
+        },
+        "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.
+          "",
+        ],
+      },
+    ],
+    "downloadFormat": "A String", # Format that the report should be returned in. Currently csv or tsv is supported.
+    "includeDeletedEntities": false, # Determines if removed entities should be included in the report. Defaults to false. Deprecated, please use includeRemovedEntities instead.
+    "columns": [ # The columns to include in the report. This includes both DoubleClick Search columns and saved columns. For DoubleClick Search columns, only the columnName parameter is required. For saved columns only the savedColumnName parameter is required. Both columnName and savedColumnName cannot be set in the same stanza.
+      {
+        "startDate": "A String", # Inclusive date in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with endDate.
+        "endDate": "A String", # Inclusive day in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with startDate.
+        "savedColumnName": "A String", # Name of a saved column to include in the report. The report must be scoped at advertiser or lower, and this saved column must already be created in the DoubleClick Search UI.
+        "groupByColumn": false, # Synchronous report only. Set to true to group by this column. Defaults to false.
+        "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.
+      },
+    ],
+    "includeRemovedEntities": false, # Determines if removed entities should be included in the report. Defaults to false.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A DoubleClick Search report. This object contains the report request, some report metadata such as currency code, and the generated report rows or report files.
+    "files": [ # Asynchronous report only. Contains a list of generated report files once the report has succesfully completed.
+      {
+        "url": "A String", # Use this url to download the report file.
+        "byteCount": "A String", # The size of this report file in bytes.
+      },
+    ],
+    "kind": "doubleclicksearch#report", # Identifies this as a Report resource. Value: the fixed string doubleclicksearch#report.
+    "rows": [ # Synchronous report only. Generated report rows.
+      { # A row in a DoubleClick Search report.
+        "a_key": "", # Indicates the columns that are represented in this row. That is, each key corresponds to a column with a non-empty cell in this row.
+      },
+    ],
+    "request": { # A request object used to create a DoubleClick Search report. # The request that created the report. Optional fields not specified in the original request are filled with default values.
+        "orderBy": [ # Synchronous report only. A list of columns and directions defining sorting to be performed on the report rows.
+          {
+            "column": { # Column to perform the sort on. This can be a DoubleClick Search-defined column or a saved column.
+              "columnName": "A String", # Name of a DoubleClick Search column to sort by.
+              "savedColumnName": "A String", # Name of a saved column to sort by.
+            },
+            "sortOrder": "A String", # The sort direction, which is either ascending or descending.
+          },
+        ],
+        "reportScope": { # The reportScope is a set of IDs that are used to determine which subset of entities will be returned in the report. The full lineage of IDs from the lowest scoped level desired up through agency is required.
+          "adGroupId": "A String", # DS ad group ID.
+          "agencyId": "A String", # DS agency ID.
+          "engineAccountId": "A String", # DS engine account ID.
+          "campaignId": "A String", # DS campaign ID.
+          "advertiserId": "A String", # DS advertiser ID.
+          "keywordId": "A String", # DS keyword ID.
+          "adId": "A String", # DS ad ID.
+        },
+        "maxRowsPerFile": 42, # Asynchronous report only. The maximum number of rows per report file. A large report is split into many files based on this field. Acceptable values are 1000000 to 100000000, inclusive.
+        "statisticsCurrency": "A String", # Specifies the currency in which monetary will be returned. Possible values are: usd, agency (valid if the report is scoped to agency or lower), advertiser (valid if the report is scoped to * advertiser or lower), or account (valid if the report is scoped to engine account or lower).
+        "timeRange": { # If metrics are requested in a report, this argument will be used to restrict the metrics to a specific time range.
+          "changedMetricsSinceTimestamp": "A String", # Inclusive UTC timestamp in RFC format, e.g., 2013-07-16T10:16:23.555Z. See additional references on how changed metrics reports work.
+          "endDate": "A String", # Inclusive date in YYYY-MM-DD format.
+          "changedAttributesSinceTimestamp": "A String", # Inclusive UTC timestamp in RFC format, e.g., 2013-07-16T10:16:23.555Z. See additional references on how changed attribute reports work.
+          "startDate": "A String", # Inclusive date in YYYY-MM-DD format.
+        },
+        "startRow": 0, # Synchronous report only. Zero-based index of the first row to return. Acceptable values are 0 to 50000, inclusive. Defaults to 0.
+        "rowCount": 10000, # Synchronous report only. The maxinum number of rows to return; additional rows are dropped. Acceptable values are 0 to 10000, inclusive. Defaults to 10000.
+        "reportType": "A String", # Determines the type of rows that are returned in the report. For example, if you specify reportType: keyword, each row in the report will contain data about a keyword. See the Types of Reports reference for the columns that are available for each type.
+        "verifySingleTimeZone": false, # If true, the report would only be created if all the requested stat data are sourced from a single timezone. Defaults to false.
+        "filters": [ # A list of filters to be applied to the report.
+          {
+            "column": { # Column to perform the filter on. This can be a DoubleClick Search column or a saved column.
+              "columnName": "A String", # Name of a DoubleClick Search column to filter on.
+              "savedColumnName": "A String", # Name of a saved column to filter on.
+            },
+            "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.
+              "",
+            ],
+          },
+        ],
+        "downloadFormat": "A String", # Format that the report should be returned in. Currently csv or tsv is supported.
+        "includeDeletedEntities": false, # Determines if removed entities should be included in the report. Defaults to false. Deprecated, please use includeRemovedEntities instead.
+        "columns": [ # The columns to include in the report. This includes both DoubleClick Search columns and saved columns. For DoubleClick Search columns, only the columnName parameter is required. For saved columns only the savedColumnName parameter is required. Both columnName and savedColumnName cannot be set in the same stanza.
+          {
+            "startDate": "A String", # Inclusive date in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with endDate.
+            "endDate": "A String", # Inclusive day in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with startDate.
+            "savedColumnName": "A String", # Name of a saved column to include in the report. The report must be scoped at advertiser or lower, and this saved column must already be created in the DoubleClick Search UI.
+            "groupByColumn": false, # Synchronous report only. Set to true to group by this column. Defaults to false.
+            "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.
+          },
+        ],
+        "includeRemovedEntities": false, # Determines if removed entities should be included in the report. Defaults to false.
+      },
+    "isReportReady": True or False, # Asynchronous report only. True if and only if the report has completed successfully and the report files are ready to be downloaded.
+    "rowCount": 42, # The number of report rows generated by the report, not including headers.
+    "statisticsTimeZone": "A String", # If all statistics of the report are sourced from the same time zone, this would be it. Otherwise the field is unset.
+    "statisticsCurrencyCode": "A String", # The currency code of all monetary values produced in the report, including values that are set by users (e.g., keyword bid settings) and metrics (e.g., cost and revenue). The currency code of a report is determined by the statisticsCurrency field of the report request.
+    "id": "A String", # Asynchronous report only. Id of the report.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(reportId)</code>
+  <pre>Polls for the status of a report request.
+
+Args:
+  reportId: string, ID of the report request being polled. (required)
+
+Returns:
+  An object of the form:
+
+    { # A DoubleClick Search report. This object contains the report request, some report metadata such as currency code, and the generated report rows or report files.
+    "files": [ # Asynchronous report only. Contains a list of generated report files once the report has succesfully completed.
+      {
+        "url": "A String", # Use this url to download the report file.
+        "byteCount": "A String", # The size of this report file in bytes.
+      },
+    ],
+    "kind": "doubleclicksearch#report", # Identifies this as a Report resource. Value: the fixed string doubleclicksearch#report.
+    "rows": [ # Synchronous report only. Generated report rows.
+      { # A row in a DoubleClick Search report.
+        "a_key": "", # Indicates the columns that are represented in this row. That is, each key corresponds to a column with a non-empty cell in this row.
+      },
+    ],
+    "request": { # A request object used to create a DoubleClick Search report. # The request that created the report. Optional fields not specified in the original request are filled with default values.
+        "orderBy": [ # Synchronous report only. A list of columns and directions defining sorting to be performed on the report rows.
+          {
+            "column": { # Column to perform the sort on. This can be a DoubleClick Search-defined column or a saved column.
+              "columnName": "A String", # Name of a DoubleClick Search column to sort by.
+              "savedColumnName": "A String", # Name of a saved column to sort by.
+            },
+            "sortOrder": "A String", # The sort direction, which is either ascending or descending.
+          },
+        ],
+        "reportScope": { # The reportScope is a set of IDs that are used to determine which subset of entities will be returned in the report. The full lineage of IDs from the lowest scoped level desired up through agency is required.
+          "adGroupId": "A String", # DS ad group ID.
+          "agencyId": "A String", # DS agency ID.
+          "engineAccountId": "A String", # DS engine account ID.
+          "campaignId": "A String", # DS campaign ID.
+          "advertiserId": "A String", # DS advertiser ID.
+          "keywordId": "A String", # DS keyword ID.
+          "adId": "A String", # DS ad ID.
+        },
+        "maxRowsPerFile": 42, # Asynchronous report only. The maximum number of rows per report file. A large report is split into many files based on this field. Acceptable values are 1000000 to 100000000, inclusive.
+        "statisticsCurrency": "A String", # Specifies the currency in which monetary will be returned. Possible values are: usd, agency (valid if the report is scoped to agency or lower), advertiser (valid if the report is scoped to * advertiser or lower), or account (valid if the report is scoped to engine account or lower).
+        "timeRange": { # If metrics are requested in a report, this argument will be used to restrict the metrics to a specific time range.
+          "changedMetricsSinceTimestamp": "A String", # Inclusive UTC timestamp in RFC format, e.g., 2013-07-16T10:16:23.555Z. See additional references on how changed metrics reports work.
+          "endDate": "A String", # Inclusive date in YYYY-MM-DD format.
+          "changedAttributesSinceTimestamp": "A String", # Inclusive UTC timestamp in RFC format, e.g., 2013-07-16T10:16:23.555Z. See additional references on how changed attribute reports work.
+          "startDate": "A String", # Inclusive date in YYYY-MM-DD format.
+        },
+        "startRow": 0, # Synchronous report only. Zero-based index of the first row to return. Acceptable values are 0 to 50000, inclusive. Defaults to 0.
+        "rowCount": 10000, # Synchronous report only. The maxinum number of rows to return; additional rows are dropped. Acceptable values are 0 to 10000, inclusive. Defaults to 10000.
+        "reportType": "A String", # Determines the type of rows that are returned in the report. For example, if you specify reportType: keyword, each row in the report will contain data about a keyword. See the Types of Reports reference for the columns that are available for each type.
+        "verifySingleTimeZone": false, # If true, the report would only be created if all the requested stat data are sourced from a single timezone. Defaults to false.
+        "filters": [ # A list of filters to be applied to the report.
+          {
+            "column": { # Column to perform the filter on. This can be a DoubleClick Search column or a saved column.
+              "columnName": "A String", # Name of a DoubleClick Search column to filter on.
+              "savedColumnName": "A String", # Name of a saved column to filter on.
+            },
+            "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.
+              "",
+            ],
+          },
+        ],
+        "downloadFormat": "A String", # Format that the report should be returned in. Currently csv or tsv is supported.
+        "includeDeletedEntities": false, # Determines if removed entities should be included in the report. Defaults to false. Deprecated, please use includeRemovedEntities instead.
+        "columns": [ # The columns to include in the report. This includes both DoubleClick Search columns and saved columns. For DoubleClick Search columns, only the columnName parameter is required. For saved columns only the savedColumnName parameter is required. Both columnName and savedColumnName cannot be set in the same stanza.
+          {
+            "startDate": "A String", # Inclusive date in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with endDate.
+            "endDate": "A String", # Inclusive day in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with startDate.
+            "savedColumnName": "A String", # Name of a saved column to include in the report. The report must be scoped at advertiser or lower, and this saved column must already be created in the DoubleClick Search UI.
+            "groupByColumn": false, # Synchronous report only. Set to true to group by this column. Defaults to false.
+            "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.
+          },
+        ],
+        "includeRemovedEntities": false, # Determines if removed entities should be included in the report. Defaults to false.
+      },
+    "isReportReady": True or False, # Asynchronous report only. True if and only if the report has completed successfully and the report files are ready to be downloaded.
+    "rowCount": 42, # The number of report rows generated by the report, not including headers.
+    "statisticsTimeZone": "A String", # If all statistics of the report are sourced from the same time zone, this would be it. Otherwise the field is unset.
+    "statisticsCurrencyCode": "A String", # The currency code of all monetary values produced in the report, including values that are set by users (e.g., keyword bid settings) and metrics (e.g., cost and revenue). The currency code of a report is determined by the statisticsCurrency field of the report request.
+    "id": "A String", # Asynchronous report only. Id of the report.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getFile">getFile(reportId, reportFragment)</code>
+  <pre>Downloads a report file.
+
+Args:
+  reportId: string, ID of the report. (required)
+  reportFragment: integer, The index of the report fragment to download. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getFile_media">getFile_media(reportId, reportFragment)</code>
+  <pre>Downloads a report file.
+
+Args:
+  reportId: string, ID of the report. (required)
+  reportFragment: integer, The index of the report fragment to download. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="request">request(body)</code>
+  <pre>Inserts a report request into the reporting system.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A request object used to create a DoubleClick Search report.
+    "orderBy": [ # Synchronous report only. A list of columns and directions defining sorting to be performed on the report rows.
+      {
+        "column": { # Column to perform the sort on. This can be a DoubleClick Search-defined column or a saved column.
+          "columnName": "A String", # Name of a DoubleClick Search column to sort by.
+          "savedColumnName": "A String", # Name of a saved column to sort by.
+        },
+        "sortOrder": "A String", # The sort direction, which is either ascending or descending.
+      },
+    ],
+    "reportScope": { # The reportScope is a set of IDs that are used to determine which subset of entities will be returned in the report. The full lineage of IDs from the lowest scoped level desired up through agency is required.
+      "adGroupId": "A String", # DS ad group ID.
+      "agencyId": "A String", # DS agency ID.
+      "engineAccountId": "A String", # DS engine account ID.
+      "campaignId": "A String", # DS campaign ID.
+      "advertiserId": "A String", # DS advertiser ID.
+      "keywordId": "A String", # DS keyword ID.
+      "adId": "A String", # DS ad ID.
+    },
+    "maxRowsPerFile": 42, # Asynchronous report only. The maximum number of rows per report file. A large report is split into many files based on this field. Acceptable values are 1000000 to 100000000, inclusive.
+    "statisticsCurrency": "A String", # Specifies the currency in which monetary will be returned. Possible values are: usd, agency (valid if the report is scoped to agency or lower), advertiser (valid if the report is scoped to * advertiser or lower), or account (valid if the report is scoped to engine account or lower).
+    "timeRange": { # If metrics are requested in a report, this argument will be used to restrict the metrics to a specific time range.
+      "changedMetricsSinceTimestamp": "A String", # Inclusive UTC timestamp in RFC format, e.g., 2013-07-16T10:16:23.555Z. See additional references on how changed metrics reports work.
+      "endDate": "A String", # Inclusive date in YYYY-MM-DD format.
+      "changedAttributesSinceTimestamp": "A String", # Inclusive UTC timestamp in RFC format, e.g., 2013-07-16T10:16:23.555Z. See additional references on how changed attribute reports work.
+      "startDate": "A String", # Inclusive date in YYYY-MM-DD format.
+    },
+    "startRow": 0, # Synchronous report only. Zero-based index of the first row to return. Acceptable values are 0 to 50000, inclusive. Defaults to 0.
+    "rowCount": 10000, # Synchronous report only. The maxinum number of rows to return; additional rows are dropped. Acceptable values are 0 to 10000, inclusive. Defaults to 10000.
+    "reportType": "A String", # Determines the type of rows that are returned in the report. For example, if you specify reportType: keyword, each row in the report will contain data about a keyword. See the Types of Reports reference for the columns that are available for each type.
+    "verifySingleTimeZone": false, # If true, the report would only be created if all the requested stat data are sourced from a single timezone. Defaults to false.
+    "filters": [ # A list of filters to be applied to the report.
+      {
+        "column": { # Column to perform the filter on. This can be a DoubleClick Search column or a saved column.
+          "columnName": "A String", # Name of a DoubleClick Search column to filter on.
+          "savedColumnName": "A String", # Name of a saved column to filter on.
+        },
+        "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.
+          "",
+        ],
+      },
+    ],
+    "downloadFormat": "A String", # Format that the report should be returned in. Currently csv or tsv is supported.
+    "includeDeletedEntities": false, # Determines if removed entities should be included in the report. Defaults to false. Deprecated, please use includeRemovedEntities instead.
+    "columns": [ # The columns to include in the report. This includes both DoubleClick Search columns and saved columns. For DoubleClick Search columns, only the columnName parameter is required. For saved columns only the savedColumnName parameter is required. Both columnName and savedColumnName cannot be set in the same stanza.
+      {
+        "startDate": "A String", # Inclusive date in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with endDate.
+        "endDate": "A String", # Inclusive day in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with startDate.
+        "savedColumnName": "A String", # Name of a saved column to include in the report. The report must be scoped at advertiser or lower, and this saved column must already be created in the DoubleClick Search UI.
+        "groupByColumn": false, # Synchronous report only. Set to true to group by this column. Defaults to false.
+        "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.
+      },
+    ],
+    "includeRemovedEntities": false, # Determines if removed entities should be included in the report. Defaults to false.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A DoubleClick Search report. This object contains the report request, some report metadata such as currency code, and the generated report rows or report files.
+    "files": [ # Asynchronous report only. Contains a list of generated report files once the report has succesfully completed.
+      {
+        "url": "A String", # Use this url to download the report file.
+        "byteCount": "A String", # The size of this report file in bytes.
+      },
+    ],
+    "kind": "doubleclicksearch#report", # Identifies this as a Report resource. Value: the fixed string doubleclicksearch#report.
+    "rows": [ # Synchronous report only. Generated report rows.
+      { # A row in a DoubleClick Search report.
+        "a_key": "", # Indicates the columns that are represented in this row. That is, each key corresponds to a column with a non-empty cell in this row.
+      },
+    ],
+    "request": { # A request object used to create a DoubleClick Search report. # The request that created the report. Optional fields not specified in the original request are filled with default values.
+        "orderBy": [ # Synchronous report only. A list of columns and directions defining sorting to be performed on the report rows.
+          {
+            "column": { # Column to perform the sort on. This can be a DoubleClick Search-defined column or a saved column.
+              "columnName": "A String", # Name of a DoubleClick Search column to sort by.
+              "savedColumnName": "A String", # Name of a saved column to sort by.
+            },
+            "sortOrder": "A String", # The sort direction, which is either ascending or descending.
+          },
+        ],
+        "reportScope": { # The reportScope is a set of IDs that are used to determine which subset of entities will be returned in the report. The full lineage of IDs from the lowest scoped level desired up through agency is required.
+          "adGroupId": "A String", # DS ad group ID.
+          "agencyId": "A String", # DS agency ID.
+          "engineAccountId": "A String", # DS engine account ID.
+          "campaignId": "A String", # DS campaign ID.
+          "advertiserId": "A String", # DS advertiser ID.
+          "keywordId": "A String", # DS keyword ID.
+          "adId": "A String", # DS ad ID.
+        },
+        "maxRowsPerFile": 42, # Asynchronous report only. The maximum number of rows per report file. A large report is split into many files based on this field. Acceptable values are 1000000 to 100000000, inclusive.
+        "statisticsCurrency": "A String", # Specifies the currency in which monetary will be returned. Possible values are: usd, agency (valid if the report is scoped to agency or lower), advertiser (valid if the report is scoped to * advertiser or lower), or account (valid if the report is scoped to engine account or lower).
+        "timeRange": { # If metrics are requested in a report, this argument will be used to restrict the metrics to a specific time range.
+          "changedMetricsSinceTimestamp": "A String", # Inclusive UTC timestamp in RFC format, e.g., 2013-07-16T10:16:23.555Z. See additional references on how changed metrics reports work.
+          "endDate": "A String", # Inclusive date in YYYY-MM-DD format.
+          "changedAttributesSinceTimestamp": "A String", # Inclusive UTC timestamp in RFC format, e.g., 2013-07-16T10:16:23.555Z. See additional references on how changed attribute reports work.
+          "startDate": "A String", # Inclusive date in YYYY-MM-DD format.
+        },
+        "startRow": 0, # Synchronous report only. Zero-based index of the first row to return. Acceptable values are 0 to 50000, inclusive. Defaults to 0.
+        "rowCount": 10000, # Synchronous report only. The maxinum number of rows to return; additional rows are dropped. Acceptable values are 0 to 10000, inclusive. Defaults to 10000.
+        "reportType": "A String", # Determines the type of rows that are returned in the report. For example, if you specify reportType: keyword, each row in the report will contain data about a keyword. See the Types of Reports reference for the columns that are available for each type.
+        "verifySingleTimeZone": false, # If true, the report would only be created if all the requested stat data are sourced from a single timezone. Defaults to false.
+        "filters": [ # A list of filters to be applied to the report.
+          {
+            "column": { # Column to perform the filter on. This can be a DoubleClick Search column or a saved column.
+              "columnName": "A String", # Name of a DoubleClick Search column to filter on.
+              "savedColumnName": "A String", # Name of a saved column to filter on.
+            },
+            "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.
+              "",
+            ],
+          },
+        ],
+        "downloadFormat": "A String", # Format that the report should be returned in. Currently csv or tsv is supported.
+        "includeDeletedEntities": false, # Determines if removed entities should be included in the report. Defaults to false. Deprecated, please use includeRemovedEntities instead.
+        "columns": [ # The columns to include in the report. This includes both DoubleClick Search columns and saved columns. For DoubleClick Search columns, only the columnName parameter is required. For saved columns only the savedColumnName parameter is required. Both columnName and savedColumnName cannot be set in the same stanza.
+          {
+            "startDate": "A String", # Inclusive date in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with endDate.
+            "endDate": "A String", # Inclusive day in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with startDate.
+            "savedColumnName": "A String", # Name of a saved column to include in the report. The report must be scoped at advertiser or lower, and this saved column must already be created in the DoubleClick Search UI.
+            "groupByColumn": false, # Synchronous report only. Set to true to group by this column. Defaults to false.
+            "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.
+          },
+        ],
+        "includeRemovedEntities": false, # Determines if removed entities should be included in the report. Defaults to false.
+      },
+    "isReportReady": True or False, # Asynchronous report only. True if and only if the report has completed successfully and the report files are ready to be downloaded.
+    "rowCount": 42, # The number of report rows generated by the report, not including headers.
+    "statisticsTimeZone": "A String", # If all statistics of the report are sourced from the same time zone, this would be it. Otherwise the field is unset.
+    "statisticsCurrencyCode": "A String", # The currency code of all monetary values produced in the report, including values that are set by users (e.g., keyword bid settings) and metrics (e.g., cost and revenue). The currency code of a report is determined by the statisticsCurrency field of the report request.
+    "id": "A String", # Asynchronous report only. Id of the report.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/doubleclicksearch_v2.savedColumns.html b/docs/dyn/doubleclicksearch_v2.savedColumns.html
new file mode 100644
index 0000000..83e366f
--- /dev/null
+++ b/docs/dyn/doubleclicksearch_v2.savedColumns.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="doubleclicksearch_v2.html">DoubleClick Search API</a> . <a href="doubleclicksearch_v2.savedColumns.html">savedColumns</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(agencyId, advertiserId)</a></code></p>
+<p class="firstline">Retrieve the list of saved columns for a specified advertiser.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(agencyId, advertiserId)</code>
+  <pre>Retrieve the list of saved columns for a specified advertiser.
+
+Args:
+  agencyId: string, DS ID of the agency. (required)
+  advertiserId: string, DS ID of the advertiser. (required)
+
+Returns:
+  An object of the form:
+
+    { # A list of saved columns. Advertisers create saved columns to report on Floodlight activities, Google Analytics goals, or custom KPIs. To request reports with saved columns, you'll need the saved column names that are available from this list.
+    "items": [ # The saved columns being requested.
+      { # A saved column
+        "savedColumnName": "A String", # The name of the saved column.
+        "kind": "doubleclicksearch#savedColumn", # Identifies this as a SavedColumn resource. Value: the fixed string doubleclicksearch#savedColumn.
+        "type": "A String", # The type of data this saved column will produce.
+      },
+    ],
+    "kind": "doubleclicksearch#savedColumnList", # Identifies this as a SavedColumnList resource. Value: the fixed string doubleclicksearch#savedColumnList.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/drive_v2.about.html b/docs/dyn/drive_v2.about.html
new file mode 100644
index 0000000..24a3664
--- /dev/null
+++ b/docs/dyn/drive_v2.about.html
@@ -0,0 +1,161 @@
+<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="drive_v2.html">Drive API</a> . <a href="drive_v2.about.html">about</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(includeSubscribed=None, startChangeId=None, maxChangeIdCount=None)</a></code></p>
+<p class="firstline">Gets the information about the current user along with Drive API settings</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(includeSubscribed=None, startChangeId=None, maxChangeIdCount=None)</code>
+  <pre>Gets the information about the current user along with Drive API settings
+
+Args:
+  includeSubscribed: boolean, When calculating the number of remaining change IDs, whether to include shared files and public files the user has opened. When set to false, this counts only change IDs for owned files and any shared or public files that the user has explictly added to a folder in Drive.
+  startChangeId: string, Change ID to start counting from when calculating number of remaining change IDs
+  maxChangeIdCount: string, Maximum number of remaining change IDs to count
+
+Returns:
+  An object of the form:
+
+    { # An item with user information and settings.
+    "kind": "drive#about", # This is always drive#about.
+    "features": [ # List of additional features enabled on this account.
+      {
+        "featureName": "A String", # The name of the feature.
+        "featureRate": 3.14, # The request limit rate for this feature, in queries per second.
+      },
+    ],
+    "quotaBytesUsed": "A String", # The number of quota bytes used by Google Drive.
+    "user": { # The JSON template for a user. # The authenticated user.
+      "picture": { # The user's profile picture.
+        "url": "A String", # A URL that points to a profile picture of this user.
+      },
+      "kind": "drive#user", # This is always drive#user.
+      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+      "displayName": "A String", # A plain text displayable name for this user.
+      "permissionId": "A String", # The user's ID as visible in the permissions collection.
+    },
+    "permissionId": "A String", # The current user's ID as visible in the permissions collection.
+    "maxUploadSizes": [ # List of max upload sizes for each file type. The most specific type takes precedence.
+      {
+        "type": "A String", # The file type.
+        "size": "A String", # The max upload size for this type.
+      },
+    ],
+    "name": "A String", # The name of the current user.
+    "remainingChangeIds": "A String", # The number of remaining change ids.
+    "additionalRoleInfo": [ # Information about supported additional roles per file type. The most specific type takes precedence.
+      {
+        "roleSets": [ # The supported additional roles per primary role.
+          {
+            "primaryRole": "A String", # A primary permission role.
+            "additionalRoles": [ # The supported additional roles with the primary role.
+              "A String",
+            ],
+          },
+        ],
+        "type": "A String", # The content type that this additional role info applies to.
+      },
+    ],
+    "etag": "A String", # The ETag of the item.
+    "importFormats": [ # The allowable import formats.
+      {
+        "source": "A String", # The imported file's content type to convert from.
+        "targets": [ # The possible content types to convert to.
+          "A String",
+        ],
+      },
+    ],
+    "quotaBytesTotal": "A String", # The total number of quota bytes.
+    "rootFolderId": "A String", # The id of the root folder.
+    "largestChangeId": "A String", # The largest change id.
+    "quotaBytesUsedInTrash": "A String", # The number of quota bytes used by trashed items.
+    "exportFormats": [ # The allowable export formats.
+      {
+        "source": "A String", # The content type to convert from.
+        "targets": [ # The possible content types to convert to.
+          "A String",
+        ],
+      },
+    ],
+    "quotaBytesUsedAggregate": "A String", # The number of quota bytes used by all Google apps (Drive, Picasa, etc.).
+    "domainSharingPolicy": "A String", # The domain sharing policy for the current user.
+    "selfLink": "A String", # A link back to this item.
+    "isCurrentAppInstalled": True or False, # A boolean indicating whether the authenticated app is installed by the authenticated user.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/drive_v2.apps.html b/docs/dyn/drive_v2.apps.html
new file mode 100644
index 0000000..cc81146
--- /dev/null
+++ b/docs/dyn/drive_v2.apps.html
@@ -0,0 +1,196 @@
+<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="drive_v2.html">Drive API</a> . <a href="drive_v2.apps.html">apps</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(appId)</a></code></p>
+<p class="firstline">Gets a specific app.</p>
+<p class="toc_element">
+  <code><a href="#list">list()</a></code></p>
+<p class="firstline">Lists a user's installed apps.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(appId)</code>
+  <pre>Gets a specific app.
+
+Args:
+  appId: string, The ID of the app. (required)
+
+Returns:
+  An object of the form:
+
+    { # The apps resource provides a list of the apps that a user has installed, with information about each app's supported MIME types, file extensions, and other details.
+    "secondaryMimeTypes": [ # The list of secondary mime types.
+      "A String",
+    ],
+    "useByDefault": True or False, # Whether the app is selected as the default handler for the types it supports.
+    "installed": True or False, # Whether the app is installed.
+    "productUrl": "A String", # A link to the product listing for this app.
+    "shortDescription": "A String", # A short description of the app.
+    "id": "A String", # The ID of the app.
+    "objectType": "A String", # The type of object this app creates (e.g. Chart). If empty, the app name should be used instead.
+    "primaryFileExtensions": [ # The list of primary file extensions.
+      "A String",
+    ],
+    "primaryMimeTypes": [ # The list of primary mime types.
+      "A String",
+    ],
+    "icons": [ # The various icons for the app.
+      {
+        "category": "A String", # Category of the icon. Allowed values are:
+            # - application - icon for the application
+            # - document - icon for a file associated with the app
+            # - documentShared - icon for a shared file associated with the app
+        "iconUrl": "A String", # URL for the icon.
+        "size": 42, # Size of the icon. Represented as the maximum of the width and height.
+      },
+    ],
+    "authorized": True or False, # Whether the app is authorized to access data on the user's Drive.
+    "openUrlTemplate": "A String", # The template url for opening files with this app. The template will contain {ids} and/or {exportIds} to be replaced by the actual file ids.
+    "productId": "A String", # The ID of the product listing for this app.
+    "longDescription": "A String", # A long description of the app.
+    "supportsCreate": True or False, # Whether this app supports creating new objects.
+    "kind": "drive#app", # This is always drive#app.
+    "name": "A String", # The name of the app.
+    "createUrl": "A String", # The url to create a new file with this app.
+    "createInFolderTemplate": "A String", # The template url to create a new file with this app in a given folder. The template will contain {folderId} to be replaced by the folder to create the new file in.
+    "secondaryFileExtensions": [ # The list of secondary file extensions.
+      "A String",
+    ],
+    "supportsImport": True or False, # Whether this app supports importing Google Docs.
+    "supportsMultiOpen": True or False, # Whether this app supports opening more than one file.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list()</code>
+  <pre>Lists a user's installed apps.
+
+Args:
+
+Returns:
+  An object of the form:
+
+    { # A list of third-party applications which the user has installed or given access to Google Drive.
+    "items": [ # The actual list of apps.
+      { # The apps resource provides a list of the apps that a user has installed, with information about each app's supported MIME types, file extensions, and other details.
+        "secondaryMimeTypes": [ # The list of secondary mime types.
+          "A String",
+        ],
+        "useByDefault": True or False, # Whether the app is selected as the default handler for the types it supports.
+        "installed": True or False, # Whether the app is installed.
+        "productUrl": "A String", # A link to the product listing for this app.
+        "shortDescription": "A String", # A short description of the app.
+        "id": "A String", # The ID of the app.
+        "objectType": "A String", # The type of object this app creates (e.g. Chart). If empty, the app name should be used instead.
+        "primaryFileExtensions": [ # The list of primary file extensions.
+          "A String",
+        ],
+        "primaryMimeTypes": [ # The list of primary mime types.
+          "A String",
+        ],
+        "icons": [ # The various icons for the app.
+          {
+            "category": "A String", # Category of the icon. Allowed values are:
+                # - application - icon for the application
+                # - document - icon for a file associated with the app
+                # - documentShared - icon for a shared file associated with the app
+            "iconUrl": "A String", # URL for the icon.
+            "size": 42, # Size of the icon. Represented as the maximum of the width and height.
+          },
+        ],
+        "authorized": True or False, # Whether the app is authorized to access data on the user's Drive.
+        "openUrlTemplate": "A String", # The template url for opening files with this app. The template will contain {ids} and/or {exportIds} to be replaced by the actual file ids.
+        "productId": "A String", # The ID of the product listing for this app.
+        "longDescription": "A String", # A long description of the app.
+        "supportsCreate": True or False, # Whether this app supports creating new objects.
+        "kind": "drive#app", # This is always drive#app.
+        "name": "A String", # The name of the app.
+        "createUrl": "A String", # The url to create a new file with this app.
+        "createInFolderTemplate": "A String", # The template url to create a new file with this app in a given folder. The template will contain {folderId} to be replaced by the folder to create the new file in.
+        "secondaryFileExtensions": [ # The list of secondary file extensions.
+          "A String",
+        ],
+        "supportsImport": True or False, # Whether this app supports importing Google Docs.
+        "supportsMultiOpen": True or False, # Whether this app supports opening more than one file.
+      },
+    ],
+    "kind": "drive#appList", # This is always drive#appList.
+    "etag": "A String", # The ETag of the list.
+    "selfLink": "A String", # A link back to this list.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/drive_v2.changes.html b/docs/dyn/drive_v2.changes.html
new file mode 100644
index 0000000..ae954b5
--- /dev/null
+++ b/docs/dyn/drive_v2.changes.html
@@ -0,0 +1,506 @@
+<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="drive_v2.html">Drive API</a> . <a href="drive_v2.changes.html">changes</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(changeId)</a></code></p>
+<p class="firstline">Gets a specific change.</p>
+<p class="toc_element">
+  <code><a href="#list">list(includeSubscribed=None, includeDeleted=None, pageToken=None, maxResults=None, startChangeId=None)</a></code></p>
+<p class="firstline">Lists the changes for a user.</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="#watch">watch(body, includeSubscribed=None, includeDeleted=None, pageToken=None, maxResults=None, startChangeId=None)</a></code></p>
+<p class="firstline">Subscribe to changes for a user.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(changeId)</code>
+  <pre>Gets a specific change.
+
+Args:
+  changeId: string, The ID of the change. (required)
+
+Returns:
+  An object of the form:
+
+    { # Representation of a change to a file.
+    "kind": "drive#change", # This is always drive#change.
+    "deleted": True or False, # Whether the file has been deleted.
+    "file": { # The metadata for a file. # The updated state of the file. Present if the file has not been deleted.
+      "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
+      "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
+      "appDataContents": True or False, # Whether this file is in the appdata folder.
+      "thumbnailLink": "A String", # A link to the file's thumbnail.
+      "labels": { # A group of labels for the file.
+        "restricted": True or False, # Whether viewers are prevented from downloading this file.
+        "hidden": True or False, # Deprecated.
+        "viewed": True or False, # Whether this file has been viewed by this user.
+        "starred": True or False, # Whether this file is starred by the user.
+        "trashed": True or False, # Whether this file has been trashed.
+      },
+      "indexableText": { # Indexable text attributes for the file (can only be written)
+        "text": "A String", # The text to be indexed for this file.
+      },
+      "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed. This will only be populated if the file is trashed.
+      "lastModifyingUserName": "A String", # Name of the last user to modify this file.
+      "writersCanShare": True or False, # Whether writers can share the document with other users.
+      "owners": [ # The owner(s) of this file.
+        { # The JSON template for a user.
+          "picture": { # The user's profile picture.
+            "url": "A String", # A URL that points to a profile picture of this user.
+          },
+          "kind": "drive#user", # This is always drive#user.
+          "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+          "displayName": "A String", # A plain text displayable name for this user.
+          "permissionId": "A String", # The user's ID as visible in the permissions collection.
+        },
+      ],
+      "id": "A String", # The ID of the file.
+      "lastModifyingUser": { # The JSON template for a user. # The last user to modify this file.
+        "picture": { # The user's profile picture.
+          "url": "A String", # A URL that points to a profile picture of this user.
+        },
+        "kind": "drive#user", # This is always drive#user.
+        "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+        "displayName": "A String", # A plain text displayable name for this user.
+        "permissionId": "A String", # The user's ID as visible in the permissions collection.
+      },
+      "copyable": True or False, # Whether the file can be copied by the current user.
+      "ownerNames": [ # Name(s) of the owner(s) of this file.
+        "A String",
+      ],
+      "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
+      "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
+      "etag": "A String", # ETag of the file.
+      "parents": [ # Collection of parent folders which contain this file.
+          # Setting this field will put the file in all of the provided folders. On insert, if no folders are provided, the file will be placed in the default root folder.
+        { # A reference to a file's parent.
+          "selfLink": "A String", # A link back to this reference.
+          "kind": "drive#parentReference", # This is always drive#parentReference.
+          "id": "A String", # The ID of the parent.
+          "isRoot": True or False, # Whether or not the parent is the root folder.
+          "parentLink": "A String", # A link to the parent.
+        },
+      ],
+      "exportLinks": { # Links for exporting Google Docs to specific formats.
+        "a_key": "A String", # A mapping from export format to URL
+      },
+      "shared": True or False, # Whether the file has been shared.
+      "thumbnail": { # Thumbnail for the file. Only accepted on upload and for files that are not already thumbnailed by Google.
+        "mimeType": "A String", # The MIME type of the thumbnail.
+        "image": "A String", # The URL-safe Base64 encoded bytes of the thumbnail image.
+      },
+      "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
+        "a_key": "A String",
+      },
+      "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
+        "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
+        "exposureTime": 3.14, # The length of the exposure, in seconds.
+        "cameraMake": "A String", # The make of the camera used to create the photo.
+        "maxApertureValue": 3.14, # The smallest f-number of the lens at the focal length used to create the photo (APEX value).
+        "isoSpeed": 42, # The ISO speed used to create the photo.
+        "focalLength": 3.14, # The focal length used to create the photo, in millimeters.
+        "exposureMode": "A String", # The exposure mode used to create the photo.
+        "colorSpace": "A String", # The color space of the photo.
+        "location": { # Geographic location information stored in the image.
+          "latitude": 3.14, # The latitude stored in the image.
+          "altitude": 3.14, # The altitude stored in the image.
+          "longitude": 3.14, # The longitude stored in the image.
+        },
+        "subjectDistance": 42, # The distance to the subject of the photo, in meters.
+        "height": 42, # The height of the image in pixels.
+        "lens": "A String", # The lens used to create the photo.
+        "date": "A String", # The date and time the photo was taken (EXIF format timestamp).
+        "width": 42, # The width of the image in pixels.
+        "meteringMode": "A String", # The metering mode used to create the photo.
+        "flashUsed": True or False, # Whether a flash was used to create the photo.
+        "aperture": 3.14, # The aperture used to create the photo (f-number).
+        "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
+        "sensor": "A String", # The type of sensor used to create the photo.
+        "whiteBalance": "A String", # The white balance mode used to create the photo.
+        "cameraModel": "A String", # The model of the camera used to create the photo.
+      },
+      "description": "A String", # A short description of the file.
+      "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
+      "editable": True or False, # Whether the file can be edited by the current user.
+      "kind": "drive#file", # The type of file. This is always drive#file.
+      "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
+      "fileSize": "A String", # The size of the file in bytes. This is only populated for files with content stored in Drive.
+      "createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).
+      "properties": [ # The list of properties.
+        { # A key-value pair that is either public or private to an application.
+          "kind": "drive#property", # This is always drive#property.
+          "value": "A String", # The value of this property.
+          "etag": "A String", # ETag of the property.
+          "visibility": "A String", # The visibility of this property.
+          "key": "A String", # The key of this property.
+          "selfLink": "A String", # The link back to this property.
+        },
+      ],
+      "md5Checksum": "A String", # An MD5 checksum for the content of this file. This is populated only for files with content stored in Drive.
+      "iconLink": "A String", # A link to the file's icon.
+      "defaultOpenWithLink": "A String", # A link to open this file with the user's default app for this file. Only populated when the drive.apps.readonly scope is used.
+      "embedLink": "A String", # A link for embedding the file.
+      "alternateLink": "A String", # A link for opening the file in using a relevant Google editor or viewer.
+      "title": "A String", # The title of this file.
+      "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
+      "downloadUrl": "A String", # Short lived download URL for the file. This is only populated for files with content stored in Drive.
+      "userPermission": { # A permission for a file. # The permissions for the authenticated user on this file.
+        "withLink": True or False, # Whether the link is required for this permission.
+        "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is populated when the permission type is "user", "group" or "domain".
+        "name": "A String", # The name for this permission.
+        "kind": "drive#permission", # This is always drive#permission.
+        "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of 'id' or 'value' fields must be specified.
+        "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 '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 populated when the permission type is "user" and the given user's Google+ profile privacy settings allow exposing their email address.
+        "photoLink": "A String", # A link to the profile photo, if available.
+        "role": "A String", # The primary role for this user. Allowed values are:
+            # - owner
+            # - reader
+            # - writer
+        "type": "A String", # The account type. Allowed values are:
+            # - user
+            # - group
+            # - domain
+            # - anyone
+        "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+          "A String",
+        ],
+        "selfLink": "A String", # A link back to this permission.
+      },
+      "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This will only be populated on files with content stored in Drive.
+      "fileExtension": "A String", # The file extension used when downloading this file. This field is read only. To set the extension, include it in the title when creating the file. This is only populated for files with content stored in Drive.
+      "headRevisionId": "A String", # The ID of the file's head revision. This will only be populated for files with content stored in Drive.
+      "selfLink": "A String", # A link back to this file.
+      "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
+    },
+    "modificationDate": "A String", # The time of this modification.
+    "id": "A String", # The ID of the change.
+    "selfLink": "A String", # A link back to this change.
+    "fileId": "A String", # The ID of the file associated with this change.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(includeSubscribed=None, includeDeleted=None, pageToken=None, maxResults=None, startChangeId=None)</code>
+  <pre>Lists the changes for a user.
+
+Args:
+  includeSubscribed: boolean, Whether to include shared files and public files the user has opened. When set to false, the list will include owned files plus any shared or public files the user has explictly added to a folder in Drive.
+  includeDeleted: boolean, Whether to include deleted items.
+  pageToken: string, Page token for changes.
+  maxResults: integer, Maximum number of changes to return.
+  startChangeId: string, Change ID to start listing changes from.
+
+Returns:
+  An object of the form:
+
+    { # A list of changes for a user.
+    "nextPageToken": "A String", # The page token for the next page of changes.
+    "kind": "drive#changeList", # This is always drive#changeList.
+    "items": [ # The actual list of changes.
+      { # Representation of a change to a file.
+        "kind": "drive#change", # This is always drive#change.
+        "deleted": True or False, # Whether the file has been deleted.
+        "file": { # The metadata for a file. # The updated state of the file. Present if the file has not been deleted.
+          "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
+          "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
+          "appDataContents": True or False, # Whether this file is in the appdata folder.
+          "thumbnailLink": "A String", # A link to the file's thumbnail.
+          "labels": { # A group of labels for the file.
+            "restricted": True or False, # Whether viewers are prevented from downloading this file.
+            "hidden": True or False, # Deprecated.
+            "viewed": True or False, # Whether this file has been viewed by this user.
+            "starred": True or False, # Whether this file is starred by the user.
+            "trashed": True or False, # Whether this file has been trashed.
+          },
+          "indexableText": { # Indexable text attributes for the file (can only be written)
+            "text": "A String", # The text to be indexed for this file.
+          },
+          "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed. This will only be populated if the file is trashed.
+          "lastModifyingUserName": "A String", # Name of the last user to modify this file.
+          "writersCanShare": True or False, # Whether writers can share the document with other users.
+          "owners": [ # The owner(s) of this file.
+            { # The JSON template for a user.
+              "picture": { # The user's profile picture.
+                "url": "A String", # A URL that points to a profile picture of this user.
+              },
+              "kind": "drive#user", # This is always drive#user.
+              "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+              "displayName": "A String", # A plain text displayable name for this user.
+              "permissionId": "A String", # The user's ID as visible in the permissions collection.
+            },
+          ],
+          "id": "A String", # The ID of the file.
+          "lastModifyingUser": { # The JSON template for a user. # The last user to modify this file.
+            "picture": { # The user's profile picture.
+              "url": "A String", # A URL that points to a profile picture of this user.
+            },
+            "kind": "drive#user", # This is always drive#user.
+            "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+            "displayName": "A String", # A plain text displayable name for this user.
+            "permissionId": "A String", # The user's ID as visible in the permissions collection.
+          },
+          "copyable": True or False, # Whether the file can be copied by the current user.
+          "ownerNames": [ # Name(s) of the owner(s) of this file.
+            "A String",
+          ],
+          "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
+          "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
+          "etag": "A String", # ETag of the file.
+          "parents": [ # Collection of parent folders which contain this file.
+              # Setting this field will put the file in all of the provided folders. On insert, if no folders are provided, the file will be placed in the default root folder.
+            { # A reference to a file's parent.
+              "selfLink": "A String", # A link back to this reference.
+              "kind": "drive#parentReference", # This is always drive#parentReference.
+              "id": "A String", # The ID of the parent.
+              "isRoot": True or False, # Whether or not the parent is the root folder.
+              "parentLink": "A String", # A link to the parent.
+            },
+          ],
+          "exportLinks": { # Links for exporting Google Docs to specific formats.
+            "a_key": "A String", # A mapping from export format to URL
+          },
+          "shared": True or False, # Whether the file has been shared.
+          "thumbnail": { # Thumbnail for the file. Only accepted on upload and for files that are not already thumbnailed by Google.
+            "mimeType": "A String", # The MIME type of the thumbnail.
+            "image": "A String", # The URL-safe Base64 encoded bytes of the thumbnail image.
+          },
+          "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
+            "a_key": "A String",
+          },
+          "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
+            "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
+            "exposureTime": 3.14, # The length of the exposure, in seconds.
+            "cameraMake": "A String", # The make of the camera used to create the photo.
+            "maxApertureValue": 3.14, # The smallest f-number of the lens at the focal length used to create the photo (APEX value).
+            "isoSpeed": 42, # The ISO speed used to create the photo.
+            "focalLength": 3.14, # The focal length used to create the photo, in millimeters.
+            "exposureMode": "A String", # The exposure mode used to create the photo.
+            "colorSpace": "A String", # The color space of the photo.
+            "location": { # Geographic location information stored in the image.
+              "latitude": 3.14, # The latitude stored in the image.
+              "altitude": 3.14, # The altitude stored in the image.
+              "longitude": 3.14, # The longitude stored in the image.
+            },
+            "subjectDistance": 42, # The distance to the subject of the photo, in meters.
+            "height": 42, # The height of the image in pixels.
+            "lens": "A String", # The lens used to create the photo.
+            "date": "A String", # The date and time the photo was taken (EXIF format timestamp).
+            "width": 42, # The width of the image in pixels.
+            "meteringMode": "A String", # The metering mode used to create the photo.
+            "flashUsed": True or False, # Whether a flash was used to create the photo.
+            "aperture": 3.14, # The aperture used to create the photo (f-number).
+            "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
+            "sensor": "A String", # The type of sensor used to create the photo.
+            "whiteBalance": "A String", # The white balance mode used to create the photo.
+            "cameraModel": "A String", # The model of the camera used to create the photo.
+          },
+          "description": "A String", # A short description of the file.
+          "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
+          "editable": True or False, # Whether the file can be edited by the current user.
+          "kind": "drive#file", # The type of file. This is always drive#file.
+          "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
+          "fileSize": "A String", # The size of the file in bytes. This is only populated for files with content stored in Drive.
+          "createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).
+          "properties": [ # The list of properties.
+            { # A key-value pair that is either public or private to an application.
+              "kind": "drive#property", # This is always drive#property.
+              "value": "A String", # The value of this property.
+              "etag": "A String", # ETag of the property.
+              "visibility": "A String", # The visibility of this property.
+              "key": "A String", # The key of this property.
+              "selfLink": "A String", # The link back to this property.
+            },
+          ],
+          "md5Checksum": "A String", # An MD5 checksum for the content of this file. This is populated only for files with content stored in Drive.
+          "iconLink": "A String", # A link to the file's icon.
+          "defaultOpenWithLink": "A String", # A link to open this file with the user's default app for this file. Only populated when the drive.apps.readonly scope is used.
+          "embedLink": "A String", # A link for embedding the file.
+          "alternateLink": "A String", # A link for opening the file in using a relevant Google editor or viewer.
+          "title": "A String", # The title of this file.
+          "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
+          "downloadUrl": "A String", # Short lived download URL for the file. This is only populated for files with content stored in Drive.
+          "userPermission": { # A permission for a file. # The permissions for the authenticated user on this file.
+            "withLink": True or False, # Whether the link is required for this permission.
+            "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is populated when the permission type is "user", "group" or "domain".
+            "name": "A String", # The name for this permission.
+            "kind": "drive#permission", # This is always drive#permission.
+            "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of 'id' or 'value' fields must be specified.
+            "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 '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 populated when the permission type is "user" and the given user's Google+ profile privacy settings allow exposing their email address.
+            "photoLink": "A String", # A link to the profile photo, if available.
+            "role": "A String", # The primary role for this user. Allowed values are:
+                # - owner
+                # - reader
+                # - writer
+            "type": "A String", # The account type. Allowed values are:
+                # - user
+                # - group
+                # - domain
+                # - anyone
+            "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+              "A String",
+            ],
+            "selfLink": "A String", # A link back to this permission.
+          },
+          "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This will only be populated on files with content stored in Drive.
+          "fileExtension": "A String", # The file extension used when downloading this file. This field is read only. To set the extension, include it in the title when creating the file. This is only populated for files with content stored in Drive.
+          "headRevisionId": "A String", # The ID of the file's head revision. This will only be populated for files with content stored in Drive.
+          "selfLink": "A String", # A link back to this file.
+          "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
+        },
+        "modificationDate": "A String", # The time of this modification.
+        "id": "A String", # The ID of the change.
+        "selfLink": "A String", # A link back to this change.
+        "fileId": "A String", # The ID of the file associated with this change.
+      },
+    ],
+    "nextLink": "A String", # A link to the next page of changes.
+    "etag": "A String", # The ETag of the list.
+    "largestChangeId": "A String", # The current largest change ID.
+    "selfLink": "A String", # A link back to this list.
+  }</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="watch">watch(body, includeSubscribed=None, includeDeleted=None, pageToken=None, maxResults=None, startChangeId=None)</code>
+  <pre>Subscribe to changes for a user.
+
+Args:
+  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.
+  }
+
+  includeSubscribed: boolean, Whether to include shared files and public files the user has opened. When set to false, the list will include owned files plus any shared or public files the user has explictly added to a folder in Drive.
+  includeDeleted: boolean, Whether to include deleted items.
+  pageToken: string, Page token for changes.
+  maxResults: integer, Maximum number of changes to return.
+  startChangeId: string, Change ID to start listing changes from.
+
+Returns:
+  An object of the form:
+
+    { # 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.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/drive_v2.channels.html b/docs/dyn/drive_v2.channels.html
new file mode 100644
index 0000000..d367dee
--- /dev/null
+++ b/docs/dyn/drive_v2.channels.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="drive_v2.html">Drive API</a> . <a href="drive_v2.channels.html">channels</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#stop">stop(body)</a></code></p>
+<p class="firstline">Stop watching resources through this channel</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="stop">stop(body)</code>
+  <pre>Stop watching resources through this channel
+
+Args:
+  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.
+  }
+
+</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/drive_v2.children.html b/docs/dyn/drive_v2.children.html
new file mode 100644
index 0000000..6babcde
--- /dev/null
+++ b/docs/dyn/drive_v2.children.html
@@ -0,0 +1,194 @@
+<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="drive_v2.html">Drive API</a> . <a href="drive_v2.children.html">children</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(folderId, childId)</a></code></p>
+<p class="firstline">Removes a child from a folder.</p>
+<p class="toc_element">
+  <code><a href="#get">get(folderId, childId)</a></code></p>
+<p class="firstline">Gets a specific child reference.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(folderId, body)</a></code></p>
+<p class="firstline">Inserts a file into a folder.</p>
+<p class="toc_element">
+  <code><a href="#list">list(folderId, q=None, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Lists a folder's children.</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(folderId, childId)</code>
+  <pre>Removes a child from a folder.
+
+Args:
+  folderId: string, The ID of the folder. (required)
+  childId: string, The ID of the child. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(folderId, childId)</code>
+  <pre>Gets a specific child reference.
+
+Args:
+  folderId: string, The ID of the folder. (required)
+  childId: string, The ID of the child. (required)
+
+Returns:
+  An object of the form:
+
+    { # A reference to a folder's child.
+      "kind": "drive#childReference", # This is always drive#childReference.
+      "childLink": "A String", # A link to the child.
+      "id": "A String", # The ID of the child.
+      "selfLink": "A String", # A link back to this reference.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(folderId, body)</code>
+  <pre>Inserts a file into a folder.
+
+Args:
+  folderId: string, The ID of the folder. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A reference to a folder's child.
+    "kind": "drive#childReference", # This is always drive#childReference.
+    "childLink": "A String", # A link to the child.
+    "id": "A String", # The ID of the child.
+    "selfLink": "A String", # A link back to this reference.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A reference to a folder's child.
+      "kind": "drive#childReference", # This is always drive#childReference.
+      "childLink": "A String", # A link to the child.
+      "id": "A String", # The ID of the child.
+      "selfLink": "A String", # A link back to this reference.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(folderId, q=None, pageToken=None, maxResults=None)</code>
+  <pre>Lists a folder's children.
+
+Args:
+  folderId: string, The ID of the folder. (required)
+  q: string, Query string for searching children.
+  pageToken: string, Page token for children.
+  maxResults: integer, Maximum number of children to return.
+
+Returns:
+  An object of the form:
+
+    { # A list of children of a file.
+    "nextPageToken": "A String", # The page token for the next page of children.
+    "kind": "drive#childList", # This is always drive#childList.
+    "items": [ # The actual list of children.
+      { # A reference to a folder's child.
+          "kind": "drive#childReference", # This is always drive#childReference.
+          "childLink": "A String", # A link to the child.
+          "id": "A String", # The ID of the child.
+          "selfLink": "A String", # A link back to this reference.
+        },
+    ],
+    "nextLink": "A String", # A link to the next page of children.
+    "etag": "A String", # The ETag of the list.
+    "selfLink": "A String", # A link back to this list.
+  }</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/drive_v2.comments.html b/docs/dyn/drive_v2.comments.html
new file mode 100644
index 0000000..5d95ed3
--- /dev/null
+++ b/docs/dyn/drive_v2.comments.html
@@ -0,0 +1,627 @@
+<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="drive_v2.html">Drive API</a> . <a href="drive_v2.comments.html">comments</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(fileId, commentId)</a></code></p>
+<p class="firstline">Deletes a comment.</p>
+<p class="toc_element">
+  <code><a href="#get">get(fileId, commentId, includeDeleted=None)</a></code></p>
+<p class="firstline">Gets a comment by ID.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(fileId, body)</a></code></p>
+<p class="firstline">Creates a new comment on the given file.</p>
+<p class="toc_element">
+  <code><a href="#list">list(fileId, includeDeleted=None, pageToken=None, updatedMin=None, maxResults=None)</a></code></p>
+<p class="firstline">Lists a file's comments.</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(fileId, commentId, body)</a></code></p>
+<p class="firstline">Updates an existing comment. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(fileId, commentId, body)</a></code></p>
+<p class="firstline">Updates an existing comment.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(fileId, commentId)</code>
+  <pre>Deletes a comment.
+
+Args:
+  fileId: string, The ID of the file. (required)
+  commentId: string, The ID of the comment. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(fileId, commentId, includeDeleted=None)</code>
+  <pre>Gets a comment by ID.
+
+Args:
+  fileId: string, The ID of the file. (required)
+  commentId: string, The ID of the comment. (required)
+  includeDeleted: boolean, If set, this will succeed when retrieving a deleted comment, and will include any deleted replies.
+
+Returns:
+  An object of the form:
+
+    { # A JSON representation of a comment on a file in Google Drive.
+      "status": "A String", # The status of this comment. Status can be changed by posting a reply to a comment with the desired status.
+          # - "open" - The comment is still open.
+          # - "resolved" - The comment has been resolved by one of its replies.
+      "selfLink": "A String", # A link back to this comment.
+      "kind": "drive#comment", # This is always drive#comment.
+      "author": { # The JSON template for a user. # The user who wrote this comment.
+        "picture": { # The user's profile picture.
+          "url": "A String", # A URL that points to a profile picture of this user.
+        },
+        "kind": "drive#user", # This is always drive#user.
+        "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+        "displayName": "A String", # A plain text displayable name for this user.
+        "permissionId": "A String", # The user's ID as visible in the permissions collection.
+      },
+      "deleted": True or False, # Whether this comment has been deleted. If a comment has been deleted the content will be cleared and this will only represent a comment that once existed.
+      "replies": [ # Replies to this post.
+        { # A JSON representation of a reply to a comment on a file in Google Drive.
+          "kind": "drive#commentReply", # This is always drive#commentReply.
+          "author": { # The JSON template for a user. # The user who wrote this reply.
+            "picture": { # The user's profile picture.
+              "url": "A String", # A URL that points to a profile picture of this user.
+            },
+            "kind": "drive#user", # This is always drive#user.
+            "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+            "displayName": "A String", # A plain text displayable name for this user.
+            "permissionId": "A String", # The user's ID as visible in the permissions collection.
+          },
+          "deleted": True or False, # Whether this reply has been deleted. If a reply has been deleted the content will be cleared and this will only represent a reply that once existed.
+          "htmlContent": "A String", # HTML formatted content for this reply.
+          "content": "A String", # The plain text content used to create this reply. This is not HTML safe and should only be used as a starting point to make edits to a reply's content. This field is required on inserts if no verb is specified (resolve/reopen).
+          "verb": "A String", # The action this reply performed to the parent comment. When creating a new reply this is the action to be perform to the parent comment. Possible values are:
+              # - "resolve" - To resolve a comment.
+              # - "reopen" - To reopen (un-resolve) a comment.
+          "replyId": "A String", # The ID of the reply.
+          "modifiedDate": "A String", # The date when this reply was last modified.
+          "createdDate": "A String", # The date when this reply was first created.
+        },
+      ],
+      "htmlContent": "A String", # HTML formatted content for this comment.
+      "content": "A String", # The plain text content used to create this comment. This is not HTML safe and should only be used as a starting point to make edits to a comment's content.
+      "modifiedDate": "A String", # The date when this comment or any of its replies were last modified.
+      "context": { # The context of the file which is being commented on.
+        "type": "A String", # The MIME type of the context snippet.
+        "value": "A String", # Data representation of the segment of the file being commented on. In the case of a text file for example, this would be the actual text that the comment is about.
+      },
+      "createdDate": "A String", # The date when this comment was first created.
+      "commentId": "A String", # The ID of the comment.
+      "anchor": "A String", # A region of the document represented as a JSON string. See anchor documentation for details on how to define and interpret anchor properties.
+      "fileTitle": "A String", # The title of the file which this comment is addressing.
+      "fileId": "A String", # The file which this comment is addressing.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(fileId, body)</code>
+  <pre>Creates a new comment on the given file.
+
+Args:
+  fileId: string, The ID of the file. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A JSON representation of a comment on a file in Google Drive.
+    "status": "A String", # The status of this comment. Status can be changed by posting a reply to a comment with the desired status.
+        # - "open" - The comment is still open.
+        # - "resolved" - The comment has been resolved by one of its replies.
+    "selfLink": "A String", # A link back to this comment.
+    "kind": "drive#comment", # This is always drive#comment.
+    "author": { # The JSON template for a user. # The user who wrote this comment.
+      "picture": { # The user's profile picture.
+        "url": "A String", # A URL that points to a profile picture of this user.
+      },
+      "kind": "drive#user", # This is always drive#user.
+      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+      "displayName": "A String", # A plain text displayable name for this user.
+      "permissionId": "A String", # The user's ID as visible in the permissions collection.
+    },
+    "deleted": True or False, # Whether this comment has been deleted. If a comment has been deleted the content will be cleared and this will only represent a comment that once existed.
+    "replies": [ # Replies to this post.
+      { # A JSON representation of a reply to a comment on a file in Google Drive.
+        "kind": "drive#commentReply", # This is always drive#commentReply.
+        "author": { # The JSON template for a user. # The user who wrote this reply.
+          "picture": { # The user's profile picture.
+            "url": "A String", # A URL that points to a profile picture of this user.
+          },
+          "kind": "drive#user", # This is always drive#user.
+          "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+          "displayName": "A String", # A plain text displayable name for this user.
+          "permissionId": "A String", # The user's ID as visible in the permissions collection.
+        },
+        "deleted": True or False, # Whether this reply has been deleted. If a reply has been deleted the content will be cleared and this will only represent a reply that once existed.
+        "htmlContent": "A String", # HTML formatted content for this reply.
+        "content": "A String", # The plain text content used to create this reply. This is not HTML safe and should only be used as a starting point to make edits to a reply's content. This field is required on inserts if no verb is specified (resolve/reopen).
+        "verb": "A String", # The action this reply performed to the parent comment. When creating a new reply this is the action to be perform to the parent comment. Possible values are:
+            # - "resolve" - To resolve a comment.
+            # - "reopen" - To reopen (un-resolve) a comment.
+        "replyId": "A String", # The ID of the reply.
+        "modifiedDate": "A String", # The date when this reply was last modified.
+        "createdDate": "A String", # The date when this reply was first created.
+      },
+    ],
+    "htmlContent": "A String", # HTML formatted content for this comment.
+    "content": "A String", # The plain text content used to create this comment. This is not HTML safe and should only be used as a starting point to make edits to a comment's content.
+    "modifiedDate": "A String", # The date when this comment or any of its replies were last modified.
+    "context": { # The context of the file which is being commented on.
+      "type": "A String", # The MIME type of the context snippet.
+      "value": "A String", # Data representation of the segment of the file being commented on. In the case of a text file for example, this would be the actual text that the comment is about.
+    },
+    "createdDate": "A String", # The date when this comment was first created.
+    "commentId": "A String", # The ID of the comment.
+    "anchor": "A String", # A region of the document represented as a JSON string. See anchor documentation for details on how to define and interpret anchor properties.
+    "fileTitle": "A String", # The title of the file which this comment is addressing.
+    "fileId": "A String", # The file which this comment is addressing.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A JSON representation of a comment on a file in Google Drive.
+      "status": "A String", # The status of this comment. Status can be changed by posting a reply to a comment with the desired status.
+          # - "open" - The comment is still open.
+          # - "resolved" - The comment has been resolved by one of its replies.
+      "selfLink": "A String", # A link back to this comment.
+      "kind": "drive#comment", # This is always drive#comment.
+      "author": { # The JSON template for a user. # The user who wrote this comment.
+        "picture": { # The user's profile picture.
+          "url": "A String", # A URL that points to a profile picture of this user.
+        },
+        "kind": "drive#user", # This is always drive#user.
+        "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+        "displayName": "A String", # A plain text displayable name for this user.
+        "permissionId": "A String", # The user's ID as visible in the permissions collection.
+      },
+      "deleted": True or False, # Whether this comment has been deleted. If a comment has been deleted the content will be cleared and this will only represent a comment that once existed.
+      "replies": [ # Replies to this post.
+        { # A JSON representation of a reply to a comment on a file in Google Drive.
+          "kind": "drive#commentReply", # This is always drive#commentReply.
+          "author": { # The JSON template for a user. # The user who wrote this reply.
+            "picture": { # The user's profile picture.
+              "url": "A String", # A URL that points to a profile picture of this user.
+            },
+            "kind": "drive#user", # This is always drive#user.
+            "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+            "displayName": "A String", # A plain text displayable name for this user.
+            "permissionId": "A String", # The user's ID as visible in the permissions collection.
+          },
+          "deleted": True or False, # Whether this reply has been deleted. If a reply has been deleted the content will be cleared and this will only represent a reply that once existed.
+          "htmlContent": "A String", # HTML formatted content for this reply.
+          "content": "A String", # The plain text content used to create this reply. This is not HTML safe and should only be used as a starting point to make edits to a reply's content. This field is required on inserts if no verb is specified (resolve/reopen).
+          "verb": "A String", # The action this reply performed to the parent comment. When creating a new reply this is the action to be perform to the parent comment. Possible values are:
+              # - "resolve" - To resolve a comment.
+              # - "reopen" - To reopen (un-resolve) a comment.
+          "replyId": "A String", # The ID of the reply.
+          "modifiedDate": "A String", # The date when this reply was last modified.
+          "createdDate": "A String", # The date when this reply was first created.
+        },
+      ],
+      "htmlContent": "A String", # HTML formatted content for this comment.
+      "content": "A String", # The plain text content used to create this comment. This is not HTML safe and should only be used as a starting point to make edits to a comment's content.
+      "modifiedDate": "A String", # The date when this comment or any of its replies were last modified.
+      "context": { # The context of the file which is being commented on.
+        "type": "A String", # The MIME type of the context snippet.
+        "value": "A String", # Data representation of the segment of the file being commented on. In the case of a text file for example, this would be the actual text that the comment is about.
+      },
+      "createdDate": "A String", # The date when this comment was first created.
+      "commentId": "A String", # The ID of the comment.
+      "anchor": "A String", # A region of the document represented as a JSON string. See anchor documentation for details on how to define and interpret anchor properties.
+      "fileTitle": "A String", # The title of the file which this comment is addressing.
+      "fileId": "A String", # The file which this comment is addressing.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(fileId, includeDeleted=None, pageToken=None, updatedMin=None, maxResults=None)</code>
+  <pre>Lists a file's comments.
+
+Args:
+  fileId: string, The ID of the file. (required)
+  includeDeleted: boolean, If set, all comments and replies, including deleted comments and replies (with content stripped) will be returned.
+  pageToken: string, The continuation token, 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.
+  updatedMin: string, Only discussions that were updated after this timestamp will be returned. Formatted as an RFC 3339 timestamp.
+  maxResults: integer, The maximum number of discussions to include in the response, used for paging.
+
+Returns:
+  An object of the form:
+
+    { # A JSON representation of a list of comments on a file in Google Drive.
+    "nextPageToken": "A String", # The token to use to request the next page of results.
+    "items": [ # List of comments.
+      { # A JSON representation of a comment on a file in Google Drive.
+          "status": "A String", # The status of this comment. Status can be changed by posting a reply to a comment with the desired status.
+              # - "open" - The comment is still open.
+              # - "resolved" - The comment has been resolved by one of its replies.
+          "selfLink": "A String", # A link back to this comment.
+          "kind": "drive#comment", # This is always drive#comment.
+          "author": { # The JSON template for a user. # The user who wrote this comment.
+            "picture": { # The user's profile picture.
+              "url": "A String", # A URL that points to a profile picture of this user.
+            },
+            "kind": "drive#user", # This is always drive#user.
+            "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+            "displayName": "A String", # A plain text displayable name for this user.
+            "permissionId": "A String", # The user's ID as visible in the permissions collection.
+          },
+          "deleted": True or False, # Whether this comment has been deleted. If a comment has been deleted the content will be cleared and this will only represent a comment that once existed.
+          "replies": [ # Replies to this post.
+            { # A JSON representation of a reply to a comment on a file in Google Drive.
+              "kind": "drive#commentReply", # This is always drive#commentReply.
+              "author": { # The JSON template for a user. # The user who wrote this reply.
+                "picture": { # The user's profile picture.
+                  "url": "A String", # A URL that points to a profile picture of this user.
+                },
+                "kind": "drive#user", # This is always drive#user.
+                "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+                "displayName": "A String", # A plain text displayable name for this user.
+                "permissionId": "A String", # The user's ID as visible in the permissions collection.
+              },
+              "deleted": True or False, # Whether this reply has been deleted. If a reply has been deleted the content will be cleared and this will only represent a reply that once existed.
+              "htmlContent": "A String", # HTML formatted content for this reply.
+              "content": "A String", # The plain text content used to create this reply. This is not HTML safe and should only be used as a starting point to make edits to a reply's content. This field is required on inserts if no verb is specified (resolve/reopen).
+              "verb": "A String", # The action this reply performed to the parent comment. When creating a new reply this is the action to be perform to the parent comment. Possible values are:
+                  # - "resolve" - To resolve a comment.
+                  # - "reopen" - To reopen (un-resolve) a comment.
+              "replyId": "A String", # The ID of the reply.
+              "modifiedDate": "A String", # The date when this reply was last modified.
+              "createdDate": "A String", # The date when this reply was first created.
+            },
+          ],
+          "htmlContent": "A String", # HTML formatted content for this comment.
+          "content": "A String", # The plain text content used to create this comment. This is not HTML safe and should only be used as a starting point to make edits to a comment's content.
+          "modifiedDate": "A String", # The date when this comment or any of its replies were last modified.
+          "context": { # The context of the file which is being commented on.
+            "type": "A String", # The MIME type of the context snippet.
+            "value": "A String", # Data representation of the segment of the file being commented on. In the case of a text file for example, this would be the actual text that the comment is about.
+          },
+          "createdDate": "A String", # The date when this comment was first created.
+          "commentId": "A String", # The ID of the comment.
+          "anchor": "A String", # A region of the document represented as a JSON string. See anchor documentation for details on how to define and interpret anchor properties.
+          "fileTitle": "A String", # The title of the file which this comment is addressing.
+          "fileId": "A String", # The file which this comment is addressing.
+        },
+    ],
+    "kind": "drive#commentList", # This is always drive#commentList.
+    "selfLink": "A String", # A link back to this list.
+    "nextLink": "A String", # A link to the next page of comments.
+  }</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(fileId, commentId, body)</code>
+  <pre>Updates an existing comment. This method supports patch semantics.
+
+Args:
+  fileId: string, The ID of the file. (required)
+  commentId: string, The ID of the comment. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A JSON representation of a comment on a file in Google Drive.
+    "status": "A String", # The status of this comment. Status can be changed by posting a reply to a comment with the desired status.
+        # - "open" - The comment is still open.
+        # - "resolved" - The comment has been resolved by one of its replies.
+    "selfLink": "A String", # A link back to this comment.
+    "kind": "drive#comment", # This is always drive#comment.
+    "author": { # The JSON template for a user. # The user who wrote this comment.
+      "picture": { # The user's profile picture.
+        "url": "A String", # A URL that points to a profile picture of this user.
+      },
+      "kind": "drive#user", # This is always drive#user.
+      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+      "displayName": "A String", # A plain text displayable name for this user.
+      "permissionId": "A String", # The user's ID as visible in the permissions collection.
+    },
+    "deleted": True or False, # Whether this comment has been deleted. If a comment has been deleted the content will be cleared and this will only represent a comment that once existed.
+    "replies": [ # Replies to this post.
+      { # A JSON representation of a reply to a comment on a file in Google Drive.
+        "kind": "drive#commentReply", # This is always drive#commentReply.
+        "author": { # The JSON template for a user. # The user who wrote this reply.
+          "picture": { # The user's profile picture.
+            "url": "A String", # A URL that points to a profile picture of this user.
+          },
+          "kind": "drive#user", # This is always drive#user.
+          "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+          "displayName": "A String", # A plain text displayable name for this user.
+          "permissionId": "A String", # The user's ID as visible in the permissions collection.
+        },
+        "deleted": True or False, # Whether this reply has been deleted. If a reply has been deleted the content will be cleared and this will only represent a reply that once existed.
+        "htmlContent": "A String", # HTML formatted content for this reply.
+        "content": "A String", # The plain text content used to create this reply. This is not HTML safe and should only be used as a starting point to make edits to a reply's content. This field is required on inserts if no verb is specified (resolve/reopen).
+        "verb": "A String", # The action this reply performed to the parent comment. When creating a new reply this is the action to be perform to the parent comment. Possible values are:
+            # - "resolve" - To resolve a comment.
+            # - "reopen" - To reopen (un-resolve) a comment.
+        "replyId": "A String", # The ID of the reply.
+        "modifiedDate": "A String", # The date when this reply was last modified.
+        "createdDate": "A String", # The date when this reply was first created.
+      },
+    ],
+    "htmlContent": "A String", # HTML formatted content for this comment.
+    "content": "A String", # The plain text content used to create this comment. This is not HTML safe and should only be used as a starting point to make edits to a comment's content.
+    "modifiedDate": "A String", # The date when this comment or any of its replies were last modified.
+    "context": { # The context of the file which is being commented on.
+      "type": "A String", # The MIME type of the context snippet.
+      "value": "A String", # Data representation of the segment of the file being commented on. In the case of a text file for example, this would be the actual text that the comment is about.
+    },
+    "createdDate": "A String", # The date when this comment was first created.
+    "commentId": "A String", # The ID of the comment.
+    "anchor": "A String", # A region of the document represented as a JSON string. See anchor documentation for details on how to define and interpret anchor properties.
+    "fileTitle": "A String", # The title of the file which this comment is addressing.
+    "fileId": "A String", # The file which this comment is addressing.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A JSON representation of a comment on a file in Google Drive.
+      "status": "A String", # The status of this comment. Status can be changed by posting a reply to a comment with the desired status.
+          # - "open" - The comment is still open.
+          # - "resolved" - The comment has been resolved by one of its replies.
+      "selfLink": "A String", # A link back to this comment.
+      "kind": "drive#comment", # This is always drive#comment.
+      "author": { # The JSON template for a user. # The user who wrote this comment.
+        "picture": { # The user's profile picture.
+          "url": "A String", # A URL that points to a profile picture of this user.
+        },
+        "kind": "drive#user", # This is always drive#user.
+        "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+        "displayName": "A String", # A plain text displayable name for this user.
+        "permissionId": "A String", # The user's ID as visible in the permissions collection.
+      },
+      "deleted": True or False, # Whether this comment has been deleted. If a comment has been deleted the content will be cleared and this will only represent a comment that once existed.
+      "replies": [ # Replies to this post.
+        { # A JSON representation of a reply to a comment on a file in Google Drive.
+          "kind": "drive#commentReply", # This is always drive#commentReply.
+          "author": { # The JSON template for a user. # The user who wrote this reply.
+            "picture": { # The user's profile picture.
+              "url": "A String", # A URL that points to a profile picture of this user.
+            },
+            "kind": "drive#user", # This is always drive#user.
+            "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+            "displayName": "A String", # A plain text displayable name for this user.
+            "permissionId": "A String", # The user's ID as visible in the permissions collection.
+          },
+          "deleted": True or False, # Whether this reply has been deleted. If a reply has been deleted the content will be cleared and this will only represent a reply that once existed.
+          "htmlContent": "A String", # HTML formatted content for this reply.
+          "content": "A String", # The plain text content used to create this reply. This is not HTML safe and should only be used as a starting point to make edits to a reply's content. This field is required on inserts if no verb is specified (resolve/reopen).
+          "verb": "A String", # The action this reply performed to the parent comment. When creating a new reply this is the action to be perform to the parent comment. Possible values are:
+              # - "resolve" - To resolve a comment.
+              # - "reopen" - To reopen (un-resolve) a comment.
+          "replyId": "A String", # The ID of the reply.
+          "modifiedDate": "A String", # The date when this reply was last modified.
+          "createdDate": "A String", # The date when this reply was first created.
+        },
+      ],
+      "htmlContent": "A String", # HTML formatted content for this comment.
+      "content": "A String", # The plain text content used to create this comment. This is not HTML safe and should only be used as a starting point to make edits to a comment's content.
+      "modifiedDate": "A String", # The date when this comment or any of its replies were last modified.
+      "context": { # The context of the file which is being commented on.
+        "type": "A String", # The MIME type of the context snippet.
+        "value": "A String", # Data representation of the segment of the file being commented on. In the case of a text file for example, this would be the actual text that the comment is about.
+      },
+      "createdDate": "A String", # The date when this comment was first created.
+      "commentId": "A String", # The ID of the comment.
+      "anchor": "A String", # A region of the document represented as a JSON string. See anchor documentation for details on how to define and interpret anchor properties.
+      "fileTitle": "A String", # The title of the file which this comment is addressing.
+      "fileId": "A String", # The file which this comment is addressing.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(fileId, commentId, body)</code>
+  <pre>Updates an existing comment.
+
+Args:
+  fileId: string, The ID of the file. (required)
+  commentId: string, The ID of the comment. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A JSON representation of a comment on a file in Google Drive.
+    "status": "A String", # The status of this comment. Status can be changed by posting a reply to a comment with the desired status.
+        # - "open" - The comment is still open.
+        # - "resolved" - The comment has been resolved by one of its replies.
+    "selfLink": "A String", # A link back to this comment.
+    "kind": "drive#comment", # This is always drive#comment.
+    "author": { # The JSON template for a user. # The user who wrote this comment.
+      "picture": { # The user's profile picture.
+        "url": "A String", # A URL that points to a profile picture of this user.
+      },
+      "kind": "drive#user", # This is always drive#user.
+      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+      "displayName": "A String", # A plain text displayable name for this user.
+      "permissionId": "A String", # The user's ID as visible in the permissions collection.
+    },
+    "deleted": True or False, # Whether this comment has been deleted. If a comment has been deleted the content will be cleared and this will only represent a comment that once existed.
+    "replies": [ # Replies to this post.
+      { # A JSON representation of a reply to a comment on a file in Google Drive.
+        "kind": "drive#commentReply", # This is always drive#commentReply.
+        "author": { # The JSON template for a user. # The user who wrote this reply.
+          "picture": { # The user's profile picture.
+            "url": "A String", # A URL that points to a profile picture of this user.
+          },
+          "kind": "drive#user", # This is always drive#user.
+          "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+          "displayName": "A String", # A plain text displayable name for this user.
+          "permissionId": "A String", # The user's ID as visible in the permissions collection.
+        },
+        "deleted": True or False, # Whether this reply has been deleted. If a reply has been deleted the content will be cleared and this will only represent a reply that once existed.
+        "htmlContent": "A String", # HTML formatted content for this reply.
+        "content": "A String", # The plain text content used to create this reply. This is not HTML safe and should only be used as a starting point to make edits to a reply's content. This field is required on inserts if no verb is specified (resolve/reopen).
+        "verb": "A String", # The action this reply performed to the parent comment. When creating a new reply this is the action to be perform to the parent comment. Possible values are:
+            # - "resolve" - To resolve a comment.
+            # - "reopen" - To reopen (un-resolve) a comment.
+        "replyId": "A String", # The ID of the reply.
+        "modifiedDate": "A String", # The date when this reply was last modified.
+        "createdDate": "A String", # The date when this reply was first created.
+      },
+    ],
+    "htmlContent": "A String", # HTML formatted content for this comment.
+    "content": "A String", # The plain text content used to create this comment. This is not HTML safe and should only be used as a starting point to make edits to a comment's content.
+    "modifiedDate": "A String", # The date when this comment or any of its replies were last modified.
+    "context": { # The context of the file which is being commented on.
+      "type": "A String", # The MIME type of the context snippet.
+      "value": "A String", # Data representation of the segment of the file being commented on. In the case of a text file for example, this would be the actual text that the comment is about.
+    },
+    "createdDate": "A String", # The date when this comment was first created.
+    "commentId": "A String", # The ID of the comment.
+    "anchor": "A String", # A region of the document represented as a JSON string. See anchor documentation for details on how to define and interpret anchor properties.
+    "fileTitle": "A String", # The title of the file which this comment is addressing.
+    "fileId": "A String", # The file which this comment is addressing.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A JSON representation of a comment on a file in Google Drive.
+      "status": "A String", # The status of this comment. Status can be changed by posting a reply to a comment with the desired status.
+          # - "open" - The comment is still open.
+          # - "resolved" - The comment has been resolved by one of its replies.
+      "selfLink": "A String", # A link back to this comment.
+      "kind": "drive#comment", # This is always drive#comment.
+      "author": { # The JSON template for a user. # The user who wrote this comment.
+        "picture": { # The user's profile picture.
+          "url": "A String", # A URL that points to a profile picture of this user.
+        },
+        "kind": "drive#user", # This is always drive#user.
+        "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+        "displayName": "A String", # A plain text displayable name for this user.
+        "permissionId": "A String", # The user's ID as visible in the permissions collection.
+      },
+      "deleted": True or False, # Whether this comment has been deleted. If a comment has been deleted the content will be cleared and this will only represent a comment that once existed.
+      "replies": [ # Replies to this post.
+        { # A JSON representation of a reply to a comment on a file in Google Drive.
+          "kind": "drive#commentReply", # This is always drive#commentReply.
+          "author": { # The JSON template for a user. # The user who wrote this reply.
+            "picture": { # The user's profile picture.
+              "url": "A String", # A URL that points to a profile picture of this user.
+            },
+            "kind": "drive#user", # This is always drive#user.
+            "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+            "displayName": "A String", # A plain text displayable name for this user.
+            "permissionId": "A String", # The user's ID as visible in the permissions collection.
+          },
+          "deleted": True or False, # Whether this reply has been deleted. If a reply has been deleted the content will be cleared and this will only represent a reply that once existed.
+          "htmlContent": "A String", # HTML formatted content for this reply.
+          "content": "A String", # The plain text content used to create this reply. This is not HTML safe and should only be used as a starting point to make edits to a reply's content. This field is required on inserts if no verb is specified (resolve/reopen).
+          "verb": "A String", # The action this reply performed to the parent comment. When creating a new reply this is the action to be perform to the parent comment. Possible values are:
+              # - "resolve" - To resolve a comment.
+              # - "reopen" - To reopen (un-resolve) a comment.
+          "replyId": "A String", # The ID of the reply.
+          "modifiedDate": "A String", # The date when this reply was last modified.
+          "createdDate": "A String", # The date when this reply was first created.
+        },
+      ],
+      "htmlContent": "A String", # HTML formatted content for this comment.
+      "content": "A String", # The plain text content used to create this comment. This is not HTML safe and should only be used as a starting point to make edits to a comment's content.
+      "modifiedDate": "A String", # The date when this comment or any of its replies were last modified.
+      "context": { # The context of the file which is being commented on.
+        "type": "A String", # The MIME type of the context snippet.
+        "value": "A String", # Data representation of the segment of the file being commented on. In the case of a text file for example, this would be the actual text that the comment is about.
+      },
+      "createdDate": "A String", # The date when this comment was first created.
+      "commentId": "A String", # The ID of the comment.
+      "anchor": "A String", # A region of the document represented as a JSON string. See anchor documentation for details on how to define and interpret anchor properties.
+      "fileTitle": "A String", # The title of the file which this comment is addressing.
+      "fileId": "A String", # The file which this comment is addressing.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/drive_v2.files.html b/docs/dyn/drive_v2.files.html
new file mode 100644
index 0000000..01b5f78
--- /dev/null
+++ b/docs/dyn/drive_v2.files.html
@@ -0,0 +1,2322 @@
+<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="drive_v2.html">Drive API</a> . <a href="drive_v2.files.html">files</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#copy">copy(fileId, body, pinned=None, convert=None, visibility=None, ocrLanguage=None, ocr=None, timedTextLanguage=None, timedTextTrackName=None)</a></code></p>
+<p class="firstline">Creates a copy of the specified file.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(fileId)</a></code></p>
+<p class="firstline">Permanently deletes a file by ID. Skips the trash.</p>
+<p class="toc_element">
+  <code><a href="#get">get(fileId, projection=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>
+<p class="firstline">Insert a new file.</p>
+<p class="toc_element">
+  <code><a href="#list">list(q=None, projection=None, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Lists the user's files.</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(fileId, body, newRevision=None, pinned=None, ocrLanguage=None, ocr=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. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#touch">touch(fileId)</a></code></p>
+<p class="firstline">Set the file's updated time to the current server time.</p>
+<p class="toc_element">
+  <code><a href="#trash">trash(fileId)</a></code></p>
+<p class="firstline">Moves a file to the trash.</p>
+<p class="toc_element">
+  <code><a href="#untrash">untrash(fileId)</a></code></p>
+<p class="firstline">Restores a file from the trash.</p>
+<p class="toc_element">
+  <code><a href="#update">update(fileId, body=None, newRevision=None, media_body=None, ocrLanguage=None, ocr=None, pinned=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>
+<p class="firstline">Subscribe to changes on a file</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="copy">copy(fileId, body, pinned=None, convert=None, visibility=None, ocrLanguage=None, ocr=None, timedTextLanguage=None, timedTextTrackName=None)</code>
+  <pre>Creates a copy of the specified file.
+
+Args:
+  fileId: string, The ID of the file to copy. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The metadata for a file.
+  "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
+  "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
+  "appDataContents": True or False, # Whether this file is in the appdata folder.
+  "thumbnailLink": "A String", # A link to the file's thumbnail.
+  "labels": { # A group of labels for the file.
+    "restricted": True or False, # Whether viewers are prevented from downloading this file.
+    "hidden": True or False, # Deprecated.
+    "viewed": True or False, # Whether this file has been viewed by this user.
+    "starred": True or False, # Whether this file is starred by the user.
+    "trashed": True or False, # Whether this file has been trashed.
+  },
+  "indexableText": { # Indexable text attributes for the file (can only be written)
+    "text": "A String", # The text to be indexed for this file.
+  },
+  "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed. This will only be populated if the file is trashed.
+  "lastModifyingUserName": "A String", # Name of the last user to modify this file.
+  "writersCanShare": True or False, # Whether writers can share the document with other users.
+  "owners": [ # The owner(s) of this file.
+    { # The JSON template for a user.
+      "picture": { # The user's profile picture.
+        "url": "A String", # A URL that points to a profile picture of this user.
+      },
+      "kind": "drive#user", # This is always drive#user.
+      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+      "displayName": "A String", # A plain text displayable name for this user.
+      "permissionId": "A String", # The user's ID as visible in the permissions collection.
+    },
+  ],
+  "id": "A String", # The ID of the file.
+  "lastModifyingUser": { # The JSON template for a user. # The last user to modify this file.
+    "picture": { # The user's profile picture.
+      "url": "A String", # A URL that points to a profile picture of this user.
+    },
+    "kind": "drive#user", # This is always drive#user.
+    "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+    "displayName": "A String", # A plain text displayable name for this user.
+    "permissionId": "A String", # The user's ID as visible in the permissions collection.
+  },
+  "copyable": True or False, # Whether the file can be copied by the current user.
+  "ownerNames": [ # Name(s) of the owner(s) of this file.
+    "A String",
+  ],
+  "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
+  "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
+  "etag": "A String", # ETag of the file.
+  "parents": [ # Collection of parent folders which contain this file.
+      # Setting this field will put the file in all of the provided folders. On insert, if no folders are provided, the file will be placed in the default root folder.
+    { # A reference to a file's parent.
+      "selfLink": "A String", # A link back to this reference.
+      "kind": "drive#parentReference", # This is always drive#parentReference.
+      "id": "A String", # The ID of the parent.
+      "isRoot": True or False, # Whether or not the parent is the root folder.
+      "parentLink": "A String", # A link to the parent.
+    },
+  ],
+  "exportLinks": { # Links for exporting Google Docs to specific formats.
+    "a_key": "A String", # A mapping from export format to URL
+  },
+  "shared": True or False, # Whether the file has been shared.
+  "thumbnail": { # Thumbnail for the file. Only accepted on upload and for files that are not already thumbnailed by Google.
+    "mimeType": "A String", # The MIME type of the thumbnail.
+    "image": "A String", # The URL-safe Base64 encoded bytes of the thumbnail image.
+  },
+  "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
+    "a_key": "A String",
+  },
+  "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
+    "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
+    "exposureTime": 3.14, # The length of the exposure, in seconds.
+    "cameraMake": "A String", # The make of the camera used to create the photo.
+    "maxApertureValue": 3.14, # The smallest f-number of the lens at the focal length used to create the photo (APEX value).
+    "isoSpeed": 42, # The ISO speed used to create the photo.
+    "focalLength": 3.14, # The focal length used to create the photo, in millimeters.
+    "exposureMode": "A String", # The exposure mode used to create the photo.
+    "colorSpace": "A String", # The color space of the photo.
+    "location": { # Geographic location information stored in the image.
+      "latitude": 3.14, # The latitude stored in the image.
+      "altitude": 3.14, # The altitude stored in the image.
+      "longitude": 3.14, # The longitude stored in the image.
+    },
+    "subjectDistance": 42, # The distance to the subject of the photo, in meters.
+    "height": 42, # The height of the image in pixels.
+    "lens": "A String", # The lens used to create the photo.
+    "date": "A String", # The date and time the photo was taken (EXIF format timestamp).
+    "width": 42, # The width of the image in pixels.
+    "meteringMode": "A String", # The metering mode used to create the photo.
+    "flashUsed": True or False, # Whether a flash was used to create the photo.
+    "aperture": 3.14, # The aperture used to create the photo (f-number).
+    "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
+    "sensor": "A String", # The type of sensor used to create the photo.
+    "whiteBalance": "A String", # The white balance mode used to create the photo.
+    "cameraModel": "A String", # The model of the camera used to create the photo.
+  },
+  "description": "A String", # A short description of the file.
+  "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
+  "editable": True or False, # Whether the file can be edited by the current user.
+  "kind": "drive#file", # The type of file. This is always drive#file.
+  "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
+  "fileSize": "A String", # The size of the file in bytes. This is only populated for files with content stored in Drive.
+  "createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).
+  "properties": [ # The list of properties.
+    { # A key-value pair that is either public or private to an application.
+      "kind": "drive#property", # This is always drive#property.
+      "value": "A String", # The value of this property.
+      "etag": "A String", # ETag of the property.
+      "visibility": "A String", # The visibility of this property.
+      "key": "A String", # The key of this property.
+      "selfLink": "A String", # The link back to this property.
+    },
+  ],
+  "md5Checksum": "A String", # An MD5 checksum for the content of this file. This is populated only for files with content stored in Drive.
+  "iconLink": "A String", # A link to the file's icon.
+  "defaultOpenWithLink": "A String", # A link to open this file with the user's default app for this file. Only populated when the drive.apps.readonly scope is used.
+  "embedLink": "A String", # A link for embedding the file.
+  "alternateLink": "A String", # A link for opening the file in using a relevant Google editor or viewer.
+  "title": "A String", # The title of this file.
+  "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
+  "downloadUrl": "A String", # Short lived download URL for the file. This is only populated for files with content stored in Drive.
+  "userPermission": { # A permission for a file. # The permissions for the authenticated user on this file.
+    "withLink": True or False, # Whether the link is required for this permission.
+    "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is populated when the permission type is "user", "group" or "domain".
+    "name": "A String", # The name for this permission.
+    "kind": "drive#permission", # This is always drive#permission.
+    "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of 'id' or 'value' fields must be specified.
+    "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 '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 populated when the permission type is "user" and the given user's Google+ profile privacy settings allow exposing their email address.
+    "photoLink": "A String", # A link to the profile photo, if available.
+    "role": "A String", # The primary role for this user. Allowed values are:
+        # - owner
+        # - reader
+        # - writer
+    "type": "A String", # The account type. Allowed values are:
+        # - user
+        # - group
+        # - domain
+        # - anyone
+    "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+      "A String",
+    ],
+    "selfLink": "A String", # A link back to this permission.
+  },
+  "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This will only be populated on files with content stored in Drive.
+  "fileExtension": "A String", # The file extension used when downloading this file. This field is read only. To set the extension, include it in the title when creating the file. This is only populated for files with content stored in Drive.
+  "headRevisionId": "A String", # The ID of the file's head revision. This will only be populated for files with content stored in Drive.
+  "selfLink": "A String", # A link back to this file.
+  "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
+}
+
+  pinned: boolean, Whether to pin the head revision of the new copy.
+  convert: boolean, Whether to convert this file to the corresponding Google Docs format.
+  visibility: string, The visibility of the new file. This parameter is only relevant when the source is not a native Google Doc and convert=false.
+    Allowed values
+      DEFAULT - The visibility of the new file is determined by the user's default visibility/sharing policies.
+      PRIVATE - The new file will be visible to only the owner.
+  ocrLanguage: string, If ocr is true, hints at the language to use. Valid values are ISO 639-1 codes.
+  ocr: boolean, Whether to attempt OCR on .jpg, .png, .gif, or .pdf uploads.
+  timedTextLanguage: string, The language of the timed text.
+  timedTextTrackName: string, The timed text track name.
+
+Returns:
+  An object of the form:
+
+    { # The metadata for a file.
+    "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
+    "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
+    "appDataContents": True or False, # Whether this file is in the appdata folder.
+    "thumbnailLink": "A String", # A link to the file's thumbnail.
+    "labels": { # A group of labels for the file.
+      "restricted": True or False, # Whether viewers are prevented from downloading this file.
+      "hidden": True or False, # Deprecated.
+      "viewed": True or False, # Whether this file has been viewed by this user.
+      "starred": True or False, # Whether this file is starred by the user.
+      "trashed": True or False, # Whether this file has been trashed.
+    },
+    "indexableText": { # Indexable text attributes for the file (can only be written)
+      "text": "A String", # The text to be indexed for this file.
+    },
+    "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed. This will only be populated if the file is trashed.
+    "lastModifyingUserName": "A String", # Name of the last user to modify this file.
+    "writersCanShare": True or False, # Whether writers can share the document with other users.
+    "owners": [ # The owner(s) of this file.
+      { # The JSON template for a user.
+        "picture": { # The user's profile picture.
+          "url": "A String", # A URL that points to a profile picture of this user.
+        },
+        "kind": "drive#user", # This is always drive#user.
+        "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+        "displayName": "A String", # A plain text displayable name for this user.
+        "permissionId": "A String", # The user's ID as visible in the permissions collection.
+      },
+    ],
+    "id": "A String", # The ID of the file.
+    "lastModifyingUser": { # The JSON template for a user. # The last user to modify this file.
+      "picture": { # The user's profile picture.
+        "url": "A String", # A URL that points to a profile picture of this user.
+      },
+      "kind": "drive#user", # This is always drive#user.
+      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+      "displayName": "A String", # A plain text displayable name for this user.
+      "permissionId": "A String", # The user's ID as visible in the permissions collection.
+    },
+    "copyable": True or False, # Whether the file can be copied by the current user.
+    "ownerNames": [ # Name(s) of the owner(s) of this file.
+      "A String",
+    ],
+    "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
+    "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
+    "etag": "A String", # ETag of the file.
+    "parents": [ # Collection of parent folders which contain this file.
+        # Setting this field will put the file in all of the provided folders. On insert, if no folders are provided, the file will be placed in the default root folder.
+      { # A reference to a file's parent.
+        "selfLink": "A String", # A link back to this reference.
+        "kind": "drive#parentReference", # This is always drive#parentReference.
+        "id": "A String", # The ID of the parent.
+        "isRoot": True or False, # Whether or not the parent is the root folder.
+        "parentLink": "A String", # A link to the parent.
+      },
+    ],
+    "exportLinks": { # Links for exporting Google Docs to specific formats.
+      "a_key": "A String", # A mapping from export format to URL
+    },
+    "shared": True or False, # Whether the file has been shared.
+    "thumbnail": { # Thumbnail for the file. Only accepted on upload and for files that are not already thumbnailed by Google.
+      "mimeType": "A String", # The MIME type of the thumbnail.
+      "image": "A String", # The URL-safe Base64 encoded bytes of the thumbnail image.
+    },
+    "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
+      "a_key": "A String",
+    },
+    "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
+      "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
+      "exposureTime": 3.14, # The length of the exposure, in seconds.
+      "cameraMake": "A String", # The make of the camera used to create the photo.
+      "maxApertureValue": 3.14, # The smallest f-number of the lens at the focal length used to create the photo (APEX value).
+      "isoSpeed": 42, # The ISO speed used to create the photo.
+      "focalLength": 3.14, # The focal length used to create the photo, in millimeters.
+      "exposureMode": "A String", # The exposure mode used to create the photo.
+      "colorSpace": "A String", # The color space of the photo.
+      "location": { # Geographic location information stored in the image.
+        "latitude": 3.14, # The latitude stored in the image.
+        "altitude": 3.14, # The altitude stored in the image.
+        "longitude": 3.14, # The longitude stored in the image.
+      },
+      "subjectDistance": 42, # The distance to the subject of the photo, in meters.
+      "height": 42, # The height of the image in pixels.
+      "lens": "A String", # The lens used to create the photo.
+      "date": "A String", # The date and time the photo was taken (EXIF format timestamp).
+      "width": 42, # The width of the image in pixels.
+      "meteringMode": "A String", # The metering mode used to create the photo.
+      "flashUsed": True or False, # Whether a flash was used to create the photo.
+      "aperture": 3.14, # The aperture used to create the photo (f-number).
+      "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
+      "sensor": "A String", # The type of sensor used to create the photo.
+      "whiteBalance": "A String", # The white balance mode used to create the photo.
+      "cameraModel": "A String", # The model of the camera used to create the photo.
+    },
+    "description": "A String", # A short description of the file.
+    "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
+    "editable": True or False, # Whether the file can be edited by the current user.
+    "kind": "drive#file", # The type of file. This is always drive#file.
+    "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
+    "fileSize": "A String", # The size of the file in bytes. This is only populated for files with content stored in Drive.
+    "createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).
+    "properties": [ # The list of properties.
+      { # A key-value pair that is either public or private to an application.
+        "kind": "drive#property", # This is always drive#property.
+        "value": "A String", # The value of this property.
+        "etag": "A String", # ETag of the property.
+        "visibility": "A String", # The visibility of this property.
+        "key": "A String", # The key of this property.
+        "selfLink": "A String", # The link back to this property.
+      },
+    ],
+    "md5Checksum": "A String", # An MD5 checksum for the content of this file. This is populated only for files with content stored in Drive.
+    "iconLink": "A String", # A link to the file's icon.
+    "defaultOpenWithLink": "A String", # A link to open this file with the user's default app for this file. Only populated when the drive.apps.readonly scope is used.
+    "embedLink": "A String", # A link for embedding the file.
+    "alternateLink": "A String", # A link for opening the file in using a relevant Google editor or viewer.
+    "title": "A String", # The title of this file.
+    "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
+    "downloadUrl": "A String", # Short lived download URL for the file. This is only populated for files with content stored in Drive.
+    "userPermission": { # A permission for a file. # The permissions for the authenticated user on this file.
+      "withLink": True or False, # Whether the link is required for this permission.
+      "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is populated when the permission type is "user", "group" or "domain".
+      "name": "A String", # The name for this permission.
+      "kind": "drive#permission", # This is always drive#permission.
+      "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of 'id' or 'value' fields must be specified.
+      "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 '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 populated when the permission type is "user" and the given user's Google+ profile privacy settings allow exposing their email address.
+      "photoLink": "A String", # A link to the profile photo, if available.
+      "role": "A String", # The primary role for this user. Allowed values are:
+          # - owner
+          # - reader
+          # - writer
+      "type": "A String", # The account type. Allowed values are:
+          # - user
+          # - group
+          # - domain
+          # - anyone
+      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+        "A String",
+      ],
+      "selfLink": "A String", # A link back to this permission.
+    },
+    "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This will only be populated on files with content stored in Drive.
+    "fileExtension": "A String", # The file extension used when downloading this file. This field is read only. To set the extension, include it in the title when creating the file. This is only populated for files with content stored in Drive.
+    "headRevisionId": "A String", # The ID of the file's head revision. This will only be populated for files with content stored in Drive.
+    "selfLink": "A String", # A link back to this file.
+    "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(fileId)</code>
+  <pre>Permanently deletes a file by ID. Skips the trash.
+
+Args:
+  fileId: string, The ID of the file to delete. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(fileId, projection=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
+  updateViewedDate: boolean, Whether to update the view date after successfully retrieving the file.
+
+Returns:
+  An object of the form:
+
+    { # The metadata for a file.
+    "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
+    "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
+    "appDataContents": True or False, # Whether this file is in the appdata folder.
+    "thumbnailLink": "A String", # A link to the file's thumbnail.
+    "labels": { # A group of labels for the file.
+      "restricted": True or False, # Whether viewers are prevented from downloading this file.
+      "hidden": True or False, # Deprecated.
+      "viewed": True or False, # Whether this file has been viewed by this user.
+      "starred": True or False, # Whether this file is starred by the user.
+      "trashed": True or False, # Whether this file has been trashed.
+    },
+    "indexableText": { # Indexable text attributes for the file (can only be written)
+      "text": "A String", # The text to be indexed for this file.
+    },
+    "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed. This will only be populated if the file is trashed.
+    "lastModifyingUserName": "A String", # Name of the last user to modify this file.
+    "writersCanShare": True or False, # Whether writers can share the document with other users.
+    "owners": [ # The owner(s) of this file.
+      { # The JSON template for a user.
+        "picture": { # The user's profile picture.
+          "url": "A String", # A URL that points to a profile picture of this user.
+        },
+        "kind": "drive#user", # This is always drive#user.
+        "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+        "displayName": "A String", # A plain text displayable name for this user.
+        "permissionId": "A String", # The user's ID as visible in the permissions collection.
+      },
+    ],
+    "id": "A String", # The ID of the file.
+    "lastModifyingUser": { # The JSON template for a user. # The last user to modify this file.
+      "picture": { # The user's profile picture.
+        "url": "A String", # A URL that points to a profile picture of this user.
+      },
+      "kind": "drive#user", # This is always drive#user.
+      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+      "displayName": "A String", # A plain text displayable name for this user.
+      "permissionId": "A String", # The user's ID as visible in the permissions collection.
+    },
+    "copyable": True or False, # Whether the file can be copied by the current user.
+    "ownerNames": [ # Name(s) of the owner(s) of this file.
+      "A String",
+    ],
+    "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
+    "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
+    "etag": "A String", # ETag of the file.
+    "parents": [ # Collection of parent folders which contain this file.
+        # Setting this field will put the file in all of the provided folders. On insert, if no folders are provided, the file will be placed in the default root folder.
+      { # A reference to a file's parent.
+        "selfLink": "A String", # A link back to this reference.
+        "kind": "drive#parentReference", # This is always drive#parentReference.
+        "id": "A String", # The ID of the parent.
+        "isRoot": True or False, # Whether or not the parent is the root folder.
+        "parentLink": "A String", # A link to the parent.
+      },
+    ],
+    "exportLinks": { # Links for exporting Google Docs to specific formats.
+      "a_key": "A String", # A mapping from export format to URL
+    },
+    "shared": True or False, # Whether the file has been shared.
+    "thumbnail": { # Thumbnail for the file. Only accepted on upload and for files that are not already thumbnailed by Google.
+      "mimeType": "A String", # The MIME type of the thumbnail.
+      "image": "A String", # The URL-safe Base64 encoded bytes of the thumbnail image.
+    },
+    "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
+      "a_key": "A String",
+    },
+    "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
+      "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
+      "exposureTime": 3.14, # The length of the exposure, in seconds.
+      "cameraMake": "A String", # The make of the camera used to create the photo.
+      "maxApertureValue": 3.14, # The smallest f-number of the lens at the focal length used to create the photo (APEX value).
+      "isoSpeed": 42, # The ISO speed used to create the photo.
+      "focalLength": 3.14, # The focal length used to create the photo, in millimeters.
+      "exposureMode": "A String", # The exposure mode used to create the photo.
+      "colorSpace": "A String", # The color space of the photo.
+      "location": { # Geographic location information stored in the image.
+        "latitude": 3.14, # The latitude stored in the image.
+        "altitude": 3.14, # The altitude stored in the image.
+        "longitude": 3.14, # The longitude stored in the image.
+      },
+      "subjectDistance": 42, # The distance to the subject of the photo, in meters.
+      "height": 42, # The height of the image in pixels.
+      "lens": "A String", # The lens used to create the photo.
+      "date": "A String", # The date and time the photo was taken (EXIF format timestamp).
+      "width": 42, # The width of the image in pixels.
+      "meteringMode": "A String", # The metering mode used to create the photo.
+      "flashUsed": True or False, # Whether a flash was used to create the photo.
+      "aperture": 3.14, # The aperture used to create the photo (f-number).
+      "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
+      "sensor": "A String", # The type of sensor used to create the photo.
+      "whiteBalance": "A String", # The white balance mode used to create the photo.
+      "cameraModel": "A String", # The model of the camera used to create the photo.
+    },
+    "description": "A String", # A short description of the file.
+    "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
+    "editable": True or False, # Whether the file can be edited by the current user.
+    "kind": "drive#file", # The type of file. This is always drive#file.
+    "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
+    "fileSize": "A String", # The size of the file in bytes. This is only populated for files with content stored in Drive.
+    "createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).
+    "properties": [ # The list of properties.
+      { # A key-value pair that is either public or private to an application.
+        "kind": "drive#property", # This is always drive#property.
+        "value": "A String", # The value of this property.
+        "etag": "A String", # ETag of the property.
+        "visibility": "A String", # The visibility of this property.
+        "key": "A String", # The key of this property.
+        "selfLink": "A String", # The link back to this property.
+      },
+    ],
+    "md5Checksum": "A String", # An MD5 checksum for the content of this file. This is populated only for files with content stored in Drive.
+    "iconLink": "A String", # A link to the file's icon.
+    "defaultOpenWithLink": "A String", # A link to open this file with the user's default app for this file. Only populated when the drive.apps.readonly scope is used.
+    "embedLink": "A String", # A link for embedding the file.
+    "alternateLink": "A String", # A link for opening the file in using a relevant Google editor or viewer.
+    "title": "A String", # The title of this file.
+    "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
+    "downloadUrl": "A String", # Short lived download URL for the file. This is only populated for files with content stored in Drive.
+    "userPermission": { # A permission for a file. # The permissions for the authenticated user on this file.
+      "withLink": True or False, # Whether the link is required for this permission.
+      "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is populated when the permission type is "user", "group" or "domain".
+      "name": "A String", # The name for this permission.
+      "kind": "drive#permission", # This is always drive#permission.
+      "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of 'id' or 'value' fields must be specified.
+      "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 '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 populated when the permission type is "user" and the given user's Google+ profile privacy settings allow exposing their email address.
+      "photoLink": "A String", # A link to the profile photo, if available.
+      "role": "A String", # The primary role for this user. Allowed values are:
+          # - owner
+          # - reader
+          # - writer
+      "type": "A String", # The account type. Allowed values are:
+          # - user
+          # - group
+          # - domain
+          # - anyone
+      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+        "A String",
+      ],
+      "selfLink": "A String", # A link back to this permission.
+    },
+    "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This will only be populated on files with content stored in Drive.
+    "fileExtension": "A String", # The file extension used when downloading this file. This field is read only. To set the extension, include it in the title when creating the file. This is only populated for files with content stored in Drive.
+    "headRevisionId": "A String", # The ID of the file's head revision. This will only be populated for files with content stored in Drive.
+    "selfLink": "A String", # A link back to this file.
+    "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
+  }</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.
+
+Args:
+  body: object, The request body.
+    The object takes the form of:
+
+{ # The metadata for a file.
+  "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
+  "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
+  "appDataContents": True or False, # Whether this file is in the appdata folder.
+  "thumbnailLink": "A String", # A link to the file's thumbnail.
+  "labels": { # A group of labels for the file.
+    "restricted": True or False, # Whether viewers are prevented from downloading this file.
+    "hidden": True or False, # Deprecated.
+    "viewed": True or False, # Whether this file has been viewed by this user.
+    "starred": True or False, # Whether this file is starred by the user.
+    "trashed": True or False, # Whether this file has been trashed.
+  },
+  "indexableText": { # Indexable text attributes for the file (can only be written)
+    "text": "A String", # The text to be indexed for this file.
+  },
+  "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed. This will only be populated if the file is trashed.
+  "lastModifyingUserName": "A String", # Name of the last user to modify this file.
+  "writersCanShare": True or False, # Whether writers can share the document with other users.
+  "owners": [ # The owner(s) of this file.
+    { # The JSON template for a user.
+      "picture": { # The user's profile picture.
+        "url": "A String", # A URL that points to a profile picture of this user.
+      },
+      "kind": "drive#user", # This is always drive#user.
+      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+      "displayName": "A String", # A plain text displayable name for this user.
+      "permissionId": "A String", # The user's ID as visible in the permissions collection.
+    },
+  ],
+  "id": "A String", # The ID of the file.
+  "lastModifyingUser": { # The JSON template for a user. # The last user to modify this file.
+    "picture": { # The user's profile picture.
+      "url": "A String", # A URL that points to a profile picture of this user.
+    },
+    "kind": "drive#user", # This is always drive#user.
+    "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+    "displayName": "A String", # A plain text displayable name for this user.
+    "permissionId": "A String", # The user's ID as visible in the permissions collection.
+  },
+  "copyable": True or False, # Whether the file can be copied by the current user.
+  "ownerNames": [ # Name(s) of the owner(s) of this file.
+    "A String",
+  ],
+  "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
+  "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
+  "etag": "A String", # ETag of the file.
+  "parents": [ # Collection of parent folders which contain this file.
+      # Setting this field will put the file in all of the provided folders. On insert, if no folders are provided, the file will be placed in the default root folder.
+    { # A reference to a file's parent.
+      "selfLink": "A String", # A link back to this reference.
+      "kind": "drive#parentReference", # This is always drive#parentReference.
+      "id": "A String", # The ID of the parent.
+      "isRoot": True or False, # Whether or not the parent is the root folder.
+      "parentLink": "A String", # A link to the parent.
+    },
+  ],
+  "exportLinks": { # Links for exporting Google Docs to specific formats.
+    "a_key": "A String", # A mapping from export format to URL
+  },
+  "shared": True or False, # Whether the file has been shared.
+  "thumbnail": { # Thumbnail for the file. Only accepted on upload and for files that are not already thumbnailed by Google.
+    "mimeType": "A String", # The MIME type of the thumbnail.
+    "image": "A String", # The URL-safe Base64 encoded bytes of the thumbnail image.
+  },
+  "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
+    "a_key": "A String",
+  },
+  "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
+    "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
+    "exposureTime": 3.14, # The length of the exposure, in seconds.
+    "cameraMake": "A String", # The make of the camera used to create the photo.
+    "maxApertureValue": 3.14, # The smallest f-number of the lens at the focal length used to create the photo (APEX value).
+    "isoSpeed": 42, # The ISO speed used to create the photo.
+    "focalLength": 3.14, # The focal length used to create the photo, in millimeters.
+    "exposureMode": "A String", # The exposure mode used to create the photo.
+    "colorSpace": "A String", # The color space of the photo.
+    "location": { # Geographic location information stored in the image.
+      "latitude": 3.14, # The latitude stored in the image.
+      "altitude": 3.14, # The altitude stored in the image.
+      "longitude": 3.14, # The longitude stored in the image.
+    },
+    "subjectDistance": 42, # The distance to the subject of the photo, in meters.
+    "height": 42, # The height of the image in pixels.
+    "lens": "A String", # The lens used to create the photo.
+    "date": "A String", # The date and time the photo was taken (EXIF format timestamp).
+    "width": 42, # The width of the image in pixels.
+    "meteringMode": "A String", # The metering mode used to create the photo.
+    "flashUsed": True or False, # Whether a flash was used to create the photo.
+    "aperture": 3.14, # The aperture used to create the photo (f-number).
+    "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
+    "sensor": "A String", # The type of sensor used to create the photo.
+    "whiteBalance": "A String", # The white balance mode used to create the photo.
+    "cameraModel": "A String", # The model of the camera used to create the photo.
+  },
+  "description": "A String", # A short description of the file.
+  "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
+  "editable": True or False, # Whether the file can be edited by the current user.
+  "kind": "drive#file", # The type of file. This is always drive#file.
+  "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
+  "fileSize": "A String", # The size of the file in bytes. This is only populated for files with content stored in Drive.
+  "createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).
+  "properties": [ # The list of properties.
+    { # A key-value pair that is either public or private to an application.
+      "kind": "drive#property", # This is always drive#property.
+      "value": "A String", # The value of this property.
+      "etag": "A String", # ETag of the property.
+      "visibility": "A String", # The visibility of this property.
+      "key": "A String", # The key of this property.
+      "selfLink": "A String", # The link back to this property.
+    },
+  ],
+  "md5Checksum": "A String", # An MD5 checksum for the content of this file. This is populated only for files with content stored in Drive.
+  "iconLink": "A String", # A link to the file's icon.
+  "defaultOpenWithLink": "A String", # A link to open this file with the user's default app for this file. Only populated when the drive.apps.readonly scope is used.
+  "embedLink": "A String", # A link for embedding the file.
+  "alternateLink": "A String", # A link for opening the file in using a relevant Google editor or viewer.
+  "title": "A String", # The title of this file.
+  "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
+  "downloadUrl": "A String", # Short lived download URL for the file. This is only populated for files with content stored in Drive.
+  "userPermission": { # A permission for a file. # The permissions for the authenticated user on this file.
+    "withLink": True or False, # Whether the link is required for this permission.
+    "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is populated when the permission type is "user", "group" or "domain".
+    "name": "A String", # The name for this permission.
+    "kind": "drive#permission", # This is always drive#permission.
+    "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of 'id' or 'value' fields must be specified.
+    "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 '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 populated when the permission type is "user" and the given user's Google+ profile privacy settings allow exposing their email address.
+    "photoLink": "A String", # A link to the profile photo, if available.
+    "role": "A String", # The primary role for this user. Allowed values are:
+        # - owner
+        # - reader
+        # - writer
+    "type": "A String", # The account type. Allowed values are:
+        # - user
+        # - group
+        # - domain
+        # - anyone
+    "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+      "A String",
+    ],
+    "selfLink": "A String", # A link back to this permission.
+  },
+  "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This will only be populated on files with content stored in Drive.
+  "fileExtension": "A String", # The file extension used when downloading this file. This field is read only. To set the extension, include it in the title when creating the file. This is only populated for files with content stored in Drive.
+  "headRevisionId": "A String", # The ID of the file's head revision. This will only be populated for files with content stored in Drive.
+  "selfLink": "A String", # A link back to this file.
+  "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
+}
+
+  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
+  convert: boolean, Whether to convert this file to the corresponding Google Docs format.
+  useContentAsIndexableText: boolean, Whether to use the content as indexable text.
+  visibility: string, The visibility of the new file. This parameter is only relevant when convert=false.
+    Allowed values
+      DEFAULT - The visibility of the new file is determined by the user's default visibility/sharing policies.
+      PRIVATE - The new file will be visible to only the owner.
+  ocrLanguage: string, If ocr is true, hints at the language to use. Valid values are ISO 639-1 codes.
+  ocr: boolean, Whether to attempt OCR on .jpg, .png, .gif, or .pdf uploads.
+  timedTextLanguage: string, The language of the timed text.
+  timedTextTrackName: string, The timed text track name.
+  pinned: boolean, Whether to pin the head revision of the uploaded file.
+
+Returns:
+  An object of the form:
+
+    { # The metadata for a file.
+    "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
+    "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
+    "appDataContents": True or False, # Whether this file is in the appdata folder.
+    "thumbnailLink": "A String", # A link to the file's thumbnail.
+    "labels": { # A group of labels for the file.
+      "restricted": True or False, # Whether viewers are prevented from downloading this file.
+      "hidden": True or False, # Deprecated.
+      "viewed": True or False, # Whether this file has been viewed by this user.
+      "starred": True or False, # Whether this file is starred by the user.
+      "trashed": True or False, # Whether this file has been trashed.
+    },
+    "indexableText": { # Indexable text attributes for the file (can only be written)
+      "text": "A String", # The text to be indexed for this file.
+    },
+    "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed. This will only be populated if the file is trashed.
+    "lastModifyingUserName": "A String", # Name of the last user to modify this file.
+    "writersCanShare": True or False, # Whether writers can share the document with other users.
+    "owners": [ # The owner(s) of this file.
+      { # The JSON template for a user.
+        "picture": { # The user's profile picture.
+          "url": "A String", # A URL that points to a profile picture of this user.
+        },
+        "kind": "drive#user", # This is always drive#user.
+        "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+        "displayName": "A String", # A plain text displayable name for this user.
+        "permissionId": "A String", # The user's ID as visible in the permissions collection.
+      },
+    ],
+    "id": "A String", # The ID of the file.
+    "lastModifyingUser": { # The JSON template for a user. # The last user to modify this file.
+      "picture": { # The user's profile picture.
+        "url": "A String", # A URL that points to a profile picture of this user.
+      },
+      "kind": "drive#user", # This is always drive#user.
+      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+      "displayName": "A String", # A plain text displayable name for this user.
+      "permissionId": "A String", # The user's ID as visible in the permissions collection.
+    },
+    "copyable": True or False, # Whether the file can be copied by the current user.
+    "ownerNames": [ # Name(s) of the owner(s) of this file.
+      "A String",
+    ],
+    "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
+    "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
+    "etag": "A String", # ETag of the file.
+    "parents": [ # Collection of parent folders which contain this file.
+        # Setting this field will put the file in all of the provided folders. On insert, if no folders are provided, the file will be placed in the default root folder.
+      { # A reference to a file's parent.
+        "selfLink": "A String", # A link back to this reference.
+        "kind": "drive#parentReference", # This is always drive#parentReference.
+        "id": "A String", # The ID of the parent.
+        "isRoot": True or False, # Whether or not the parent is the root folder.
+        "parentLink": "A String", # A link to the parent.
+      },
+    ],
+    "exportLinks": { # Links for exporting Google Docs to specific formats.
+      "a_key": "A String", # A mapping from export format to URL
+    },
+    "shared": True or False, # Whether the file has been shared.
+    "thumbnail": { # Thumbnail for the file. Only accepted on upload and for files that are not already thumbnailed by Google.
+      "mimeType": "A String", # The MIME type of the thumbnail.
+      "image": "A String", # The URL-safe Base64 encoded bytes of the thumbnail image.
+    },
+    "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
+      "a_key": "A String",
+    },
+    "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
+      "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
+      "exposureTime": 3.14, # The length of the exposure, in seconds.
+      "cameraMake": "A String", # The make of the camera used to create the photo.
+      "maxApertureValue": 3.14, # The smallest f-number of the lens at the focal length used to create the photo (APEX value).
+      "isoSpeed": 42, # The ISO speed used to create the photo.
+      "focalLength": 3.14, # The focal length used to create the photo, in millimeters.
+      "exposureMode": "A String", # The exposure mode used to create the photo.
+      "colorSpace": "A String", # The color space of the photo.
+      "location": { # Geographic location information stored in the image.
+        "latitude": 3.14, # The latitude stored in the image.
+        "altitude": 3.14, # The altitude stored in the image.
+        "longitude": 3.14, # The longitude stored in the image.
+      },
+      "subjectDistance": 42, # The distance to the subject of the photo, in meters.
+      "height": 42, # The height of the image in pixels.
+      "lens": "A String", # The lens used to create the photo.
+      "date": "A String", # The date and time the photo was taken (EXIF format timestamp).
+      "width": 42, # The width of the image in pixels.
+      "meteringMode": "A String", # The metering mode used to create the photo.
+      "flashUsed": True or False, # Whether a flash was used to create the photo.
+      "aperture": 3.14, # The aperture used to create the photo (f-number).
+      "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
+      "sensor": "A String", # The type of sensor used to create the photo.
+      "whiteBalance": "A String", # The white balance mode used to create the photo.
+      "cameraModel": "A String", # The model of the camera used to create the photo.
+    },
+    "description": "A String", # A short description of the file.
+    "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
+    "editable": True or False, # Whether the file can be edited by the current user.
+    "kind": "drive#file", # The type of file. This is always drive#file.
+    "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
+    "fileSize": "A String", # The size of the file in bytes. This is only populated for files with content stored in Drive.
+    "createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).
+    "properties": [ # The list of properties.
+      { # A key-value pair that is either public or private to an application.
+        "kind": "drive#property", # This is always drive#property.
+        "value": "A String", # The value of this property.
+        "etag": "A String", # ETag of the property.
+        "visibility": "A String", # The visibility of this property.
+        "key": "A String", # The key of this property.
+        "selfLink": "A String", # The link back to this property.
+      },
+    ],
+    "md5Checksum": "A String", # An MD5 checksum for the content of this file. This is populated only for files with content stored in Drive.
+    "iconLink": "A String", # A link to the file's icon.
+    "defaultOpenWithLink": "A String", # A link to open this file with the user's default app for this file. Only populated when the drive.apps.readonly scope is used.
+    "embedLink": "A String", # A link for embedding the file.
+    "alternateLink": "A String", # A link for opening the file in using a relevant Google editor or viewer.
+    "title": "A String", # The title of this file.
+    "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
+    "downloadUrl": "A String", # Short lived download URL for the file. This is only populated for files with content stored in Drive.
+    "userPermission": { # A permission for a file. # The permissions for the authenticated user on this file.
+      "withLink": True or False, # Whether the link is required for this permission.
+      "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is populated when the permission type is "user", "group" or "domain".
+      "name": "A String", # The name for this permission.
+      "kind": "drive#permission", # This is always drive#permission.
+      "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of 'id' or 'value' fields must be specified.
+      "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 '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 populated when the permission type is "user" and the given user's Google+ profile privacy settings allow exposing their email address.
+      "photoLink": "A String", # A link to the profile photo, if available.
+      "role": "A String", # The primary role for this user. Allowed values are:
+          # - owner
+          # - reader
+          # - writer
+      "type": "A String", # The account type. Allowed values are:
+          # - user
+          # - group
+          # - domain
+          # - anyone
+      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+        "A String",
+      ],
+      "selfLink": "A String", # A link back to this permission.
+    },
+    "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This will only be populated on files with content stored in Drive.
+    "fileExtension": "A String", # The file extension used when downloading this file. This field is read only. To set the extension, include it in the title when creating the file. This is only populated for files with content stored in Drive.
+    "headRevisionId": "A String", # The ID of the file's head revision. This will only be populated for files with content stored in Drive.
+    "selfLink": "A String", # A link back to this file.
+    "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(q=None, projection=None, pageToken=None, maxResults=None)</code>
+  <pre>Lists the user's files.
+
+Args:
+  q: string, Query string for searching files.
+  projection: string, This parameter is deprecated and has no function.
+    Allowed values
+      BASIC - Deprecated
+      FULL - Deprecated
+  pageToken: string, Page token for files.
+  maxResults: integer, Maximum number of files to return.
+
+Returns:
+  An object of the form:
+
+    { # A list of files.
+    "nextPageToken": "A String", # The page token for the next page of files.
+    "kind": "drive#fileList", # This is always drive#fileList.
+    "items": [ # The actual list of files.
+      { # The metadata for a file.
+        "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
+        "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
+        "appDataContents": True or False, # Whether this file is in the appdata folder.
+        "thumbnailLink": "A String", # A link to the file's thumbnail.
+        "labels": { # A group of labels for the file.
+          "restricted": True or False, # Whether viewers are prevented from downloading this file.
+          "hidden": True or False, # Deprecated.
+          "viewed": True or False, # Whether this file has been viewed by this user.
+          "starred": True or False, # Whether this file is starred by the user.
+          "trashed": True or False, # Whether this file has been trashed.
+        },
+        "indexableText": { # Indexable text attributes for the file (can only be written)
+          "text": "A String", # The text to be indexed for this file.
+        },
+        "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed. This will only be populated if the file is trashed.
+        "lastModifyingUserName": "A String", # Name of the last user to modify this file.
+        "writersCanShare": True or False, # Whether writers can share the document with other users.
+        "owners": [ # The owner(s) of this file.
+          { # The JSON template for a user.
+            "picture": { # The user's profile picture.
+              "url": "A String", # A URL that points to a profile picture of this user.
+            },
+            "kind": "drive#user", # This is always drive#user.
+            "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+            "displayName": "A String", # A plain text displayable name for this user.
+            "permissionId": "A String", # The user's ID as visible in the permissions collection.
+          },
+        ],
+        "id": "A String", # The ID of the file.
+        "lastModifyingUser": { # The JSON template for a user. # The last user to modify this file.
+          "picture": { # The user's profile picture.
+            "url": "A String", # A URL that points to a profile picture of this user.
+          },
+          "kind": "drive#user", # This is always drive#user.
+          "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+          "displayName": "A String", # A plain text displayable name for this user.
+          "permissionId": "A String", # The user's ID as visible in the permissions collection.
+        },
+        "copyable": True or False, # Whether the file can be copied by the current user.
+        "ownerNames": [ # Name(s) of the owner(s) of this file.
+          "A String",
+        ],
+        "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
+        "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
+        "etag": "A String", # ETag of the file.
+        "parents": [ # Collection of parent folders which contain this file.
+            # Setting this field will put the file in all of the provided folders. On insert, if no folders are provided, the file will be placed in the default root folder.
+          { # A reference to a file's parent.
+            "selfLink": "A String", # A link back to this reference.
+            "kind": "drive#parentReference", # This is always drive#parentReference.
+            "id": "A String", # The ID of the parent.
+            "isRoot": True or False, # Whether or not the parent is the root folder.
+            "parentLink": "A String", # A link to the parent.
+          },
+        ],
+        "exportLinks": { # Links for exporting Google Docs to specific formats.
+          "a_key": "A String", # A mapping from export format to URL
+        },
+        "shared": True or False, # Whether the file has been shared.
+        "thumbnail": { # Thumbnail for the file. Only accepted on upload and for files that are not already thumbnailed by Google.
+          "mimeType": "A String", # The MIME type of the thumbnail.
+          "image": "A String", # The URL-safe Base64 encoded bytes of the thumbnail image.
+        },
+        "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
+          "a_key": "A String",
+        },
+        "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
+          "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
+          "exposureTime": 3.14, # The length of the exposure, in seconds.
+          "cameraMake": "A String", # The make of the camera used to create the photo.
+          "maxApertureValue": 3.14, # The smallest f-number of the lens at the focal length used to create the photo (APEX value).
+          "isoSpeed": 42, # The ISO speed used to create the photo.
+          "focalLength": 3.14, # The focal length used to create the photo, in millimeters.
+          "exposureMode": "A String", # The exposure mode used to create the photo.
+          "colorSpace": "A String", # The color space of the photo.
+          "location": { # Geographic location information stored in the image.
+            "latitude": 3.14, # The latitude stored in the image.
+            "altitude": 3.14, # The altitude stored in the image.
+            "longitude": 3.14, # The longitude stored in the image.
+          },
+          "subjectDistance": 42, # The distance to the subject of the photo, in meters.
+          "height": 42, # The height of the image in pixels.
+          "lens": "A String", # The lens used to create the photo.
+          "date": "A String", # The date and time the photo was taken (EXIF format timestamp).
+          "width": 42, # The width of the image in pixels.
+          "meteringMode": "A String", # The metering mode used to create the photo.
+          "flashUsed": True or False, # Whether a flash was used to create the photo.
+          "aperture": 3.14, # The aperture used to create the photo (f-number).
+          "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
+          "sensor": "A String", # The type of sensor used to create the photo.
+          "whiteBalance": "A String", # The white balance mode used to create the photo.
+          "cameraModel": "A String", # The model of the camera used to create the photo.
+        },
+        "description": "A String", # A short description of the file.
+        "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
+        "editable": True or False, # Whether the file can be edited by the current user.
+        "kind": "drive#file", # The type of file. This is always drive#file.
+        "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
+        "fileSize": "A String", # The size of the file in bytes. This is only populated for files with content stored in Drive.
+        "createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).
+        "properties": [ # The list of properties.
+          { # A key-value pair that is either public or private to an application.
+            "kind": "drive#property", # This is always drive#property.
+            "value": "A String", # The value of this property.
+            "etag": "A String", # ETag of the property.
+            "visibility": "A String", # The visibility of this property.
+            "key": "A String", # The key of this property.
+            "selfLink": "A String", # The link back to this property.
+          },
+        ],
+        "md5Checksum": "A String", # An MD5 checksum for the content of this file. This is populated only for files with content stored in Drive.
+        "iconLink": "A String", # A link to the file's icon.
+        "defaultOpenWithLink": "A String", # A link to open this file with the user's default app for this file. Only populated when the drive.apps.readonly scope is used.
+        "embedLink": "A String", # A link for embedding the file.
+        "alternateLink": "A String", # A link for opening the file in using a relevant Google editor or viewer.
+        "title": "A String", # The title of this file.
+        "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
+        "downloadUrl": "A String", # Short lived download URL for the file. This is only populated for files with content stored in Drive.
+        "userPermission": { # A permission for a file. # The permissions for the authenticated user on this file.
+          "withLink": True or False, # Whether the link is required for this permission.
+          "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is populated when the permission type is "user", "group" or "domain".
+          "name": "A String", # The name for this permission.
+          "kind": "drive#permission", # This is always drive#permission.
+          "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of 'id' or 'value' fields must be specified.
+          "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 '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 populated when the permission type is "user" and the given user's Google+ profile privacy settings allow exposing their email address.
+          "photoLink": "A String", # A link to the profile photo, if available.
+          "role": "A String", # The primary role for this user. Allowed values are:
+              # - owner
+              # - reader
+              # - writer
+          "type": "A String", # The account type. Allowed values are:
+              # - user
+              # - group
+              # - domain
+              # - anyone
+          "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+            "A String",
+          ],
+          "selfLink": "A String", # A link back to this permission.
+        },
+        "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This will only be populated on files with content stored in Drive.
+        "fileExtension": "A String", # The file extension used when downloading this file. This field is read only. To set the extension, include it in the title when creating the file. This is only populated for files with content stored in Drive.
+        "headRevisionId": "A String", # The ID of the file's head revision. This will only be populated for files with content stored in Drive.
+        "selfLink": "A String", # A link back to this file.
+        "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
+      },
+    ],
+    "nextLink": "A String", # A link to the next page of files.
+    "etag": "A String", # The ETag of the list.
+    "selfLink": "A String", # A link back to this list.
+  }</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(fileId, body, newRevision=None, pinned=None, ocrLanguage=None, ocr=None, updateViewedDate=None, timedTextTrackName=None, convert=None, useContentAsIndexableText=None, setModifiedDate=None, timedTextLanguage=None)</code>
+  <pre>Updates file metadata and/or content. This method supports patch semantics.
+
+Args:
+  fileId: string, The ID of the file to update. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The metadata for a file.
+  "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
+  "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
+  "appDataContents": True or False, # Whether this file is in the appdata folder.
+  "thumbnailLink": "A String", # A link to the file's thumbnail.
+  "labels": { # A group of labels for the file.
+    "restricted": True or False, # Whether viewers are prevented from downloading this file.
+    "hidden": True or False, # Deprecated.
+    "viewed": True or False, # Whether this file has been viewed by this user.
+    "starred": True or False, # Whether this file is starred by the user.
+    "trashed": True or False, # Whether this file has been trashed.
+  },
+  "indexableText": { # Indexable text attributes for the file (can only be written)
+    "text": "A String", # The text to be indexed for this file.
+  },
+  "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed. This will only be populated if the file is trashed.
+  "lastModifyingUserName": "A String", # Name of the last user to modify this file.
+  "writersCanShare": True or False, # Whether writers can share the document with other users.
+  "owners": [ # The owner(s) of this file.
+    { # The JSON template for a user.
+      "picture": { # The user's profile picture.
+        "url": "A String", # A URL that points to a profile picture of this user.
+      },
+      "kind": "drive#user", # This is always drive#user.
+      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+      "displayName": "A String", # A plain text displayable name for this user.
+      "permissionId": "A String", # The user's ID as visible in the permissions collection.
+    },
+  ],
+  "id": "A String", # The ID of the file.
+  "lastModifyingUser": { # The JSON template for a user. # The last user to modify this file.
+    "picture": { # The user's profile picture.
+      "url": "A String", # A URL that points to a profile picture of this user.
+    },
+    "kind": "drive#user", # This is always drive#user.
+    "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+    "displayName": "A String", # A plain text displayable name for this user.
+    "permissionId": "A String", # The user's ID as visible in the permissions collection.
+  },
+  "copyable": True or False, # Whether the file can be copied by the current user.
+  "ownerNames": [ # Name(s) of the owner(s) of this file.
+    "A String",
+  ],
+  "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
+  "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
+  "etag": "A String", # ETag of the file.
+  "parents": [ # Collection of parent folders which contain this file.
+      # Setting this field will put the file in all of the provided folders. On insert, if no folders are provided, the file will be placed in the default root folder.
+    { # A reference to a file's parent.
+      "selfLink": "A String", # A link back to this reference.
+      "kind": "drive#parentReference", # This is always drive#parentReference.
+      "id": "A String", # The ID of the parent.
+      "isRoot": True or False, # Whether or not the parent is the root folder.
+      "parentLink": "A String", # A link to the parent.
+    },
+  ],
+  "exportLinks": { # Links for exporting Google Docs to specific formats.
+    "a_key": "A String", # A mapping from export format to URL
+  },
+  "shared": True or False, # Whether the file has been shared.
+  "thumbnail": { # Thumbnail for the file. Only accepted on upload and for files that are not already thumbnailed by Google.
+    "mimeType": "A String", # The MIME type of the thumbnail.
+    "image": "A String", # The URL-safe Base64 encoded bytes of the thumbnail image.
+  },
+  "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
+    "a_key": "A String",
+  },
+  "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
+    "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
+    "exposureTime": 3.14, # The length of the exposure, in seconds.
+    "cameraMake": "A String", # The make of the camera used to create the photo.
+    "maxApertureValue": 3.14, # The smallest f-number of the lens at the focal length used to create the photo (APEX value).
+    "isoSpeed": 42, # The ISO speed used to create the photo.
+    "focalLength": 3.14, # The focal length used to create the photo, in millimeters.
+    "exposureMode": "A String", # The exposure mode used to create the photo.
+    "colorSpace": "A String", # The color space of the photo.
+    "location": { # Geographic location information stored in the image.
+      "latitude": 3.14, # The latitude stored in the image.
+      "altitude": 3.14, # The altitude stored in the image.
+      "longitude": 3.14, # The longitude stored in the image.
+    },
+    "subjectDistance": 42, # The distance to the subject of the photo, in meters.
+    "height": 42, # The height of the image in pixels.
+    "lens": "A String", # The lens used to create the photo.
+    "date": "A String", # The date and time the photo was taken (EXIF format timestamp).
+    "width": 42, # The width of the image in pixels.
+    "meteringMode": "A String", # The metering mode used to create the photo.
+    "flashUsed": True or False, # Whether a flash was used to create the photo.
+    "aperture": 3.14, # The aperture used to create the photo (f-number).
+    "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
+    "sensor": "A String", # The type of sensor used to create the photo.
+    "whiteBalance": "A String", # The white balance mode used to create the photo.
+    "cameraModel": "A String", # The model of the camera used to create the photo.
+  },
+  "description": "A String", # A short description of the file.
+  "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
+  "editable": True or False, # Whether the file can be edited by the current user.
+  "kind": "drive#file", # The type of file. This is always drive#file.
+  "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
+  "fileSize": "A String", # The size of the file in bytes. This is only populated for files with content stored in Drive.
+  "createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).
+  "properties": [ # The list of properties.
+    { # A key-value pair that is either public or private to an application.
+      "kind": "drive#property", # This is always drive#property.
+      "value": "A String", # The value of this property.
+      "etag": "A String", # ETag of the property.
+      "visibility": "A String", # The visibility of this property.
+      "key": "A String", # The key of this property.
+      "selfLink": "A String", # The link back to this property.
+    },
+  ],
+  "md5Checksum": "A String", # An MD5 checksum for the content of this file. This is populated only for files with content stored in Drive.
+  "iconLink": "A String", # A link to the file's icon.
+  "defaultOpenWithLink": "A String", # A link to open this file with the user's default app for this file. Only populated when the drive.apps.readonly scope is used.
+  "embedLink": "A String", # A link for embedding the file.
+  "alternateLink": "A String", # A link for opening the file in using a relevant Google editor or viewer.
+  "title": "A String", # The title of this file.
+  "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
+  "downloadUrl": "A String", # Short lived download URL for the file. This is only populated for files with content stored in Drive.
+  "userPermission": { # A permission for a file. # The permissions for the authenticated user on this file.
+    "withLink": True or False, # Whether the link is required for this permission.
+    "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is populated when the permission type is "user", "group" or "domain".
+    "name": "A String", # The name for this permission.
+    "kind": "drive#permission", # This is always drive#permission.
+    "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of 'id' or 'value' fields must be specified.
+    "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 '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 populated when the permission type is "user" and the given user's Google+ profile privacy settings allow exposing their email address.
+    "photoLink": "A String", # A link to the profile photo, if available.
+    "role": "A String", # The primary role for this user. Allowed values are:
+        # - owner
+        # - reader
+        # - writer
+    "type": "A String", # The account type. Allowed values are:
+        # - user
+        # - group
+        # - domain
+        # - anyone
+    "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+      "A String",
+    ],
+    "selfLink": "A String", # A link back to this permission.
+  },
+  "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This will only be populated on files with content stored in Drive.
+  "fileExtension": "A String", # The file extension used when downloading this file. This field is read only. To set the extension, include it in the title when creating the file. This is only populated for files with content stored in Drive.
+  "headRevisionId": "A String", # The ID of the file's head revision. This will only be populated for files with content stored in Drive.
+  "selfLink": "A String", # A link back to this file.
+  "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
+}
+
+  newRevision: boolean, Whether a blob upload should create a new revision. If false, the blob data in the current head revision is replaced. If not set or true, a new blob is created as head revision, and previous revisions are preserved (causing increased use of the user's data storage quota).
+  pinned: boolean, Whether to pin the new revision.
+  ocrLanguage: string, If ocr is true, hints at the language to use. Valid values are ISO 639-1 codes.
+  ocr: boolean, Whether to attempt OCR on .jpg, .png, .gif, or .pdf uploads.
+  updateViewedDate: boolean, Whether to update the view date after successfully updating the file.
+  timedTextTrackName: string, The timed text track name.
+  convert: boolean, Whether to convert this file to the corresponding Google Docs format.
+  useContentAsIndexableText: boolean, Whether to use the content as indexable text.
+  setModifiedDate: boolean, Whether to set the modified date with the supplied modified date.
+  timedTextLanguage: string, The language of the timed text.
+
+Returns:
+  An object of the form:
+
+    { # The metadata for a file.
+    "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
+    "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
+    "appDataContents": True or False, # Whether this file is in the appdata folder.
+    "thumbnailLink": "A String", # A link to the file's thumbnail.
+    "labels": { # A group of labels for the file.
+      "restricted": True or False, # Whether viewers are prevented from downloading this file.
+      "hidden": True or False, # Deprecated.
+      "viewed": True or False, # Whether this file has been viewed by this user.
+      "starred": True or False, # Whether this file is starred by the user.
+      "trashed": True or False, # Whether this file has been trashed.
+    },
+    "indexableText": { # Indexable text attributes for the file (can only be written)
+      "text": "A String", # The text to be indexed for this file.
+    },
+    "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed. This will only be populated if the file is trashed.
+    "lastModifyingUserName": "A String", # Name of the last user to modify this file.
+    "writersCanShare": True or False, # Whether writers can share the document with other users.
+    "owners": [ # The owner(s) of this file.
+      { # The JSON template for a user.
+        "picture": { # The user's profile picture.
+          "url": "A String", # A URL that points to a profile picture of this user.
+        },
+        "kind": "drive#user", # This is always drive#user.
+        "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+        "displayName": "A String", # A plain text displayable name for this user.
+        "permissionId": "A String", # The user's ID as visible in the permissions collection.
+      },
+    ],
+    "id": "A String", # The ID of the file.
+    "lastModifyingUser": { # The JSON template for a user. # The last user to modify this file.
+      "picture": { # The user's profile picture.
+        "url": "A String", # A URL that points to a profile picture of this user.
+      },
+      "kind": "drive#user", # This is always drive#user.
+      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+      "displayName": "A String", # A plain text displayable name for this user.
+      "permissionId": "A String", # The user's ID as visible in the permissions collection.
+    },
+    "copyable": True or False, # Whether the file can be copied by the current user.
+    "ownerNames": [ # Name(s) of the owner(s) of this file.
+      "A String",
+    ],
+    "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
+    "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
+    "etag": "A String", # ETag of the file.
+    "parents": [ # Collection of parent folders which contain this file.
+        # Setting this field will put the file in all of the provided folders. On insert, if no folders are provided, the file will be placed in the default root folder.
+      { # A reference to a file's parent.
+        "selfLink": "A String", # A link back to this reference.
+        "kind": "drive#parentReference", # This is always drive#parentReference.
+        "id": "A String", # The ID of the parent.
+        "isRoot": True or False, # Whether or not the parent is the root folder.
+        "parentLink": "A String", # A link to the parent.
+      },
+    ],
+    "exportLinks": { # Links for exporting Google Docs to specific formats.
+      "a_key": "A String", # A mapping from export format to URL
+    },
+    "shared": True or False, # Whether the file has been shared.
+    "thumbnail": { # Thumbnail for the file. Only accepted on upload and for files that are not already thumbnailed by Google.
+      "mimeType": "A String", # The MIME type of the thumbnail.
+      "image": "A String", # The URL-safe Base64 encoded bytes of the thumbnail image.
+    },
+    "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
+      "a_key": "A String",
+    },
+    "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
+      "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
+      "exposureTime": 3.14, # The length of the exposure, in seconds.
+      "cameraMake": "A String", # The make of the camera used to create the photo.
+      "maxApertureValue": 3.14, # The smallest f-number of the lens at the focal length used to create the photo (APEX value).
+      "isoSpeed": 42, # The ISO speed used to create the photo.
+      "focalLength": 3.14, # The focal length used to create the photo, in millimeters.
+      "exposureMode": "A String", # The exposure mode used to create the photo.
+      "colorSpace": "A String", # The color space of the photo.
+      "location": { # Geographic location information stored in the image.
+        "latitude": 3.14, # The latitude stored in the image.
+        "altitude": 3.14, # The altitude stored in the image.
+        "longitude": 3.14, # The longitude stored in the image.
+      },
+      "subjectDistance": 42, # The distance to the subject of the photo, in meters.
+      "height": 42, # The height of the image in pixels.
+      "lens": "A String", # The lens used to create the photo.
+      "date": "A String", # The date and time the photo was taken (EXIF format timestamp).
+      "width": 42, # The width of the image in pixels.
+      "meteringMode": "A String", # The metering mode used to create the photo.
+      "flashUsed": True or False, # Whether a flash was used to create the photo.
+      "aperture": 3.14, # The aperture used to create the photo (f-number).
+      "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
+      "sensor": "A String", # The type of sensor used to create the photo.
+      "whiteBalance": "A String", # The white balance mode used to create the photo.
+      "cameraModel": "A String", # The model of the camera used to create the photo.
+    },
+    "description": "A String", # A short description of the file.
+    "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
+    "editable": True or False, # Whether the file can be edited by the current user.
+    "kind": "drive#file", # The type of file. This is always drive#file.
+    "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
+    "fileSize": "A String", # The size of the file in bytes. This is only populated for files with content stored in Drive.
+    "createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).
+    "properties": [ # The list of properties.
+      { # A key-value pair that is either public or private to an application.
+        "kind": "drive#property", # This is always drive#property.
+        "value": "A String", # The value of this property.
+        "etag": "A String", # ETag of the property.
+        "visibility": "A String", # The visibility of this property.
+        "key": "A String", # The key of this property.
+        "selfLink": "A String", # The link back to this property.
+      },
+    ],
+    "md5Checksum": "A String", # An MD5 checksum for the content of this file. This is populated only for files with content stored in Drive.
+    "iconLink": "A String", # A link to the file's icon.
+    "defaultOpenWithLink": "A String", # A link to open this file with the user's default app for this file. Only populated when the drive.apps.readonly scope is used.
+    "embedLink": "A String", # A link for embedding the file.
+    "alternateLink": "A String", # A link for opening the file in using a relevant Google editor or viewer.
+    "title": "A String", # The title of this file.
+    "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
+    "downloadUrl": "A String", # Short lived download URL for the file. This is only populated for files with content stored in Drive.
+    "userPermission": { # A permission for a file. # The permissions for the authenticated user on this file.
+      "withLink": True or False, # Whether the link is required for this permission.
+      "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is populated when the permission type is "user", "group" or "domain".
+      "name": "A String", # The name for this permission.
+      "kind": "drive#permission", # This is always drive#permission.
+      "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of 'id' or 'value' fields must be specified.
+      "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 '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 populated when the permission type is "user" and the given user's Google+ profile privacy settings allow exposing their email address.
+      "photoLink": "A String", # A link to the profile photo, if available.
+      "role": "A String", # The primary role for this user. Allowed values are:
+          # - owner
+          # - reader
+          # - writer
+      "type": "A String", # The account type. Allowed values are:
+          # - user
+          # - group
+          # - domain
+          # - anyone
+      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+        "A String",
+      ],
+      "selfLink": "A String", # A link back to this permission.
+    },
+    "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This will only be populated on files with content stored in Drive.
+    "fileExtension": "A String", # The file extension used when downloading this file. This field is read only. To set the extension, include it in the title when creating the file. This is only populated for files with content stored in Drive.
+    "headRevisionId": "A String", # The ID of the file's head revision. This will only be populated for files with content stored in Drive.
+    "selfLink": "A String", # A link back to this file.
+    "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="touch">touch(fileId)</code>
+  <pre>Set the file's updated time to the current server time.
+
+Args:
+  fileId: string, The ID of the file to update. (required)
+
+Returns:
+  An object of the form:
+
+    { # The metadata for a file.
+    "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
+    "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
+    "appDataContents": True or False, # Whether this file is in the appdata folder.
+    "thumbnailLink": "A String", # A link to the file's thumbnail.
+    "labels": { # A group of labels for the file.
+      "restricted": True or False, # Whether viewers are prevented from downloading this file.
+      "hidden": True or False, # Deprecated.
+      "viewed": True or False, # Whether this file has been viewed by this user.
+      "starred": True or False, # Whether this file is starred by the user.
+      "trashed": True or False, # Whether this file has been trashed.
+    },
+    "indexableText": { # Indexable text attributes for the file (can only be written)
+      "text": "A String", # The text to be indexed for this file.
+    },
+    "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed. This will only be populated if the file is trashed.
+    "lastModifyingUserName": "A String", # Name of the last user to modify this file.
+    "writersCanShare": True or False, # Whether writers can share the document with other users.
+    "owners": [ # The owner(s) of this file.
+      { # The JSON template for a user.
+        "picture": { # The user's profile picture.
+          "url": "A String", # A URL that points to a profile picture of this user.
+        },
+        "kind": "drive#user", # This is always drive#user.
+        "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+        "displayName": "A String", # A plain text displayable name for this user.
+        "permissionId": "A String", # The user's ID as visible in the permissions collection.
+      },
+    ],
+    "id": "A String", # The ID of the file.
+    "lastModifyingUser": { # The JSON template for a user. # The last user to modify this file.
+      "picture": { # The user's profile picture.
+        "url": "A String", # A URL that points to a profile picture of this user.
+      },
+      "kind": "drive#user", # This is always drive#user.
+      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+      "displayName": "A String", # A plain text displayable name for this user.
+      "permissionId": "A String", # The user's ID as visible in the permissions collection.
+    },
+    "copyable": True or False, # Whether the file can be copied by the current user.
+    "ownerNames": [ # Name(s) of the owner(s) of this file.
+      "A String",
+    ],
+    "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
+    "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
+    "etag": "A String", # ETag of the file.
+    "parents": [ # Collection of parent folders which contain this file.
+        # Setting this field will put the file in all of the provided folders. On insert, if no folders are provided, the file will be placed in the default root folder.
+      { # A reference to a file's parent.
+        "selfLink": "A String", # A link back to this reference.
+        "kind": "drive#parentReference", # This is always drive#parentReference.
+        "id": "A String", # The ID of the parent.
+        "isRoot": True or False, # Whether or not the parent is the root folder.
+        "parentLink": "A String", # A link to the parent.
+      },
+    ],
+    "exportLinks": { # Links for exporting Google Docs to specific formats.
+      "a_key": "A String", # A mapping from export format to URL
+    },
+    "shared": True or False, # Whether the file has been shared.
+    "thumbnail": { # Thumbnail for the file. Only accepted on upload and for files that are not already thumbnailed by Google.
+      "mimeType": "A String", # The MIME type of the thumbnail.
+      "image": "A String", # The URL-safe Base64 encoded bytes of the thumbnail image.
+    },
+    "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
+      "a_key": "A String",
+    },
+    "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
+      "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
+      "exposureTime": 3.14, # The length of the exposure, in seconds.
+      "cameraMake": "A String", # The make of the camera used to create the photo.
+      "maxApertureValue": 3.14, # The smallest f-number of the lens at the focal length used to create the photo (APEX value).
+      "isoSpeed": 42, # The ISO speed used to create the photo.
+      "focalLength": 3.14, # The focal length used to create the photo, in millimeters.
+      "exposureMode": "A String", # The exposure mode used to create the photo.
+      "colorSpace": "A String", # The color space of the photo.
+      "location": { # Geographic location information stored in the image.
+        "latitude": 3.14, # The latitude stored in the image.
+        "altitude": 3.14, # The altitude stored in the image.
+        "longitude": 3.14, # The longitude stored in the image.
+      },
+      "subjectDistance": 42, # The distance to the subject of the photo, in meters.
+      "height": 42, # The height of the image in pixels.
+      "lens": "A String", # The lens used to create the photo.
+      "date": "A String", # The date and time the photo was taken (EXIF format timestamp).
+      "width": 42, # The width of the image in pixels.
+      "meteringMode": "A String", # The metering mode used to create the photo.
+      "flashUsed": True or False, # Whether a flash was used to create the photo.
+      "aperture": 3.14, # The aperture used to create the photo (f-number).
+      "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
+      "sensor": "A String", # The type of sensor used to create the photo.
+      "whiteBalance": "A String", # The white balance mode used to create the photo.
+      "cameraModel": "A String", # The model of the camera used to create the photo.
+    },
+    "description": "A String", # A short description of the file.
+    "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
+    "editable": True or False, # Whether the file can be edited by the current user.
+    "kind": "drive#file", # The type of file. This is always drive#file.
+    "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
+    "fileSize": "A String", # The size of the file in bytes. This is only populated for files with content stored in Drive.
+    "createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).
+    "properties": [ # The list of properties.
+      { # A key-value pair that is either public or private to an application.
+        "kind": "drive#property", # This is always drive#property.
+        "value": "A String", # The value of this property.
+        "etag": "A String", # ETag of the property.
+        "visibility": "A String", # The visibility of this property.
+        "key": "A String", # The key of this property.
+        "selfLink": "A String", # The link back to this property.
+      },
+    ],
+    "md5Checksum": "A String", # An MD5 checksum for the content of this file. This is populated only for files with content stored in Drive.
+    "iconLink": "A String", # A link to the file's icon.
+    "defaultOpenWithLink": "A String", # A link to open this file with the user's default app for this file. Only populated when the drive.apps.readonly scope is used.
+    "embedLink": "A String", # A link for embedding the file.
+    "alternateLink": "A String", # A link for opening the file in using a relevant Google editor or viewer.
+    "title": "A String", # The title of this file.
+    "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
+    "downloadUrl": "A String", # Short lived download URL for the file. This is only populated for files with content stored in Drive.
+    "userPermission": { # A permission for a file. # The permissions for the authenticated user on this file.
+      "withLink": True or False, # Whether the link is required for this permission.
+      "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is populated when the permission type is "user", "group" or "domain".
+      "name": "A String", # The name for this permission.
+      "kind": "drive#permission", # This is always drive#permission.
+      "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of 'id' or 'value' fields must be specified.
+      "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 '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 populated when the permission type is "user" and the given user's Google+ profile privacy settings allow exposing their email address.
+      "photoLink": "A String", # A link to the profile photo, if available.
+      "role": "A String", # The primary role for this user. Allowed values are:
+          # - owner
+          # - reader
+          # - writer
+      "type": "A String", # The account type. Allowed values are:
+          # - user
+          # - group
+          # - domain
+          # - anyone
+      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+        "A String",
+      ],
+      "selfLink": "A String", # A link back to this permission.
+    },
+    "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This will only be populated on files with content stored in Drive.
+    "fileExtension": "A String", # The file extension used when downloading this file. This field is read only. To set the extension, include it in the title when creating the file. This is only populated for files with content stored in Drive.
+    "headRevisionId": "A String", # The ID of the file's head revision. This will only be populated for files with content stored in Drive.
+    "selfLink": "A String", # A link back to this file.
+    "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="trash">trash(fileId)</code>
+  <pre>Moves a file to the trash.
+
+Args:
+  fileId: string, The ID of the file to trash. (required)
+
+Returns:
+  An object of the form:
+
+    { # The metadata for a file.
+    "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
+    "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
+    "appDataContents": True or False, # Whether this file is in the appdata folder.
+    "thumbnailLink": "A String", # A link to the file's thumbnail.
+    "labels": { # A group of labels for the file.
+      "restricted": True or False, # Whether viewers are prevented from downloading this file.
+      "hidden": True or False, # Deprecated.
+      "viewed": True or False, # Whether this file has been viewed by this user.
+      "starred": True or False, # Whether this file is starred by the user.
+      "trashed": True or False, # Whether this file has been trashed.
+    },
+    "indexableText": { # Indexable text attributes for the file (can only be written)
+      "text": "A String", # The text to be indexed for this file.
+    },
+    "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed. This will only be populated if the file is trashed.
+    "lastModifyingUserName": "A String", # Name of the last user to modify this file.
+    "writersCanShare": True or False, # Whether writers can share the document with other users.
+    "owners": [ # The owner(s) of this file.
+      { # The JSON template for a user.
+        "picture": { # The user's profile picture.
+          "url": "A String", # A URL that points to a profile picture of this user.
+        },
+        "kind": "drive#user", # This is always drive#user.
+        "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+        "displayName": "A String", # A plain text displayable name for this user.
+        "permissionId": "A String", # The user's ID as visible in the permissions collection.
+      },
+    ],
+    "id": "A String", # The ID of the file.
+    "lastModifyingUser": { # The JSON template for a user. # The last user to modify this file.
+      "picture": { # The user's profile picture.
+        "url": "A String", # A URL that points to a profile picture of this user.
+      },
+      "kind": "drive#user", # This is always drive#user.
+      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+      "displayName": "A String", # A plain text displayable name for this user.
+      "permissionId": "A String", # The user's ID as visible in the permissions collection.
+    },
+    "copyable": True or False, # Whether the file can be copied by the current user.
+    "ownerNames": [ # Name(s) of the owner(s) of this file.
+      "A String",
+    ],
+    "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
+    "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
+    "etag": "A String", # ETag of the file.
+    "parents": [ # Collection of parent folders which contain this file.
+        # Setting this field will put the file in all of the provided folders. On insert, if no folders are provided, the file will be placed in the default root folder.
+      { # A reference to a file's parent.
+        "selfLink": "A String", # A link back to this reference.
+        "kind": "drive#parentReference", # This is always drive#parentReference.
+        "id": "A String", # The ID of the parent.
+        "isRoot": True or False, # Whether or not the parent is the root folder.
+        "parentLink": "A String", # A link to the parent.
+      },
+    ],
+    "exportLinks": { # Links for exporting Google Docs to specific formats.
+      "a_key": "A String", # A mapping from export format to URL
+    },
+    "shared": True or False, # Whether the file has been shared.
+    "thumbnail": { # Thumbnail for the file. Only accepted on upload and for files that are not already thumbnailed by Google.
+      "mimeType": "A String", # The MIME type of the thumbnail.
+      "image": "A String", # The URL-safe Base64 encoded bytes of the thumbnail image.
+    },
+    "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
+      "a_key": "A String",
+    },
+    "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
+      "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
+      "exposureTime": 3.14, # The length of the exposure, in seconds.
+      "cameraMake": "A String", # The make of the camera used to create the photo.
+      "maxApertureValue": 3.14, # The smallest f-number of the lens at the focal length used to create the photo (APEX value).
+      "isoSpeed": 42, # The ISO speed used to create the photo.
+      "focalLength": 3.14, # The focal length used to create the photo, in millimeters.
+      "exposureMode": "A String", # The exposure mode used to create the photo.
+      "colorSpace": "A String", # The color space of the photo.
+      "location": { # Geographic location information stored in the image.
+        "latitude": 3.14, # The latitude stored in the image.
+        "altitude": 3.14, # The altitude stored in the image.
+        "longitude": 3.14, # The longitude stored in the image.
+      },
+      "subjectDistance": 42, # The distance to the subject of the photo, in meters.
+      "height": 42, # The height of the image in pixels.
+      "lens": "A String", # The lens used to create the photo.
+      "date": "A String", # The date and time the photo was taken (EXIF format timestamp).
+      "width": 42, # The width of the image in pixels.
+      "meteringMode": "A String", # The metering mode used to create the photo.
+      "flashUsed": True or False, # Whether a flash was used to create the photo.
+      "aperture": 3.14, # The aperture used to create the photo (f-number).
+      "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
+      "sensor": "A String", # The type of sensor used to create the photo.
+      "whiteBalance": "A String", # The white balance mode used to create the photo.
+      "cameraModel": "A String", # The model of the camera used to create the photo.
+    },
+    "description": "A String", # A short description of the file.
+    "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
+    "editable": True or False, # Whether the file can be edited by the current user.
+    "kind": "drive#file", # The type of file. This is always drive#file.
+    "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
+    "fileSize": "A String", # The size of the file in bytes. This is only populated for files with content stored in Drive.
+    "createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).
+    "properties": [ # The list of properties.
+      { # A key-value pair that is either public or private to an application.
+        "kind": "drive#property", # This is always drive#property.
+        "value": "A String", # The value of this property.
+        "etag": "A String", # ETag of the property.
+        "visibility": "A String", # The visibility of this property.
+        "key": "A String", # The key of this property.
+        "selfLink": "A String", # The link back to this property.
+      },
+    ],
+    "md5Checksum": "A String", # An MD5 checksum for the content of this file. This is populated only for files with content stored in Drive.
+    "iconLink": "A String", # A link to the file's icon.
+    "defaultOpenWithLink": "A String", # A link to open this file with the user's default app for this file. Only populated when the drive.apps.readonly scope is used.
+    "embedLink": "A String", # A link for embedding the file.
+    "alternateLink": "A String", # A link for opening the file in using a relevant Google editor or viewer.
+    "title": "A String", # The title of this file.
+    "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
+    "downloadUrl": "A String", # Short lived download URL for the file. This is only populated for files with content stored in Drive.
+    "userPermission": { # A permission for a file. # The permissions for the authenticated user on this file.
+      "withLink": True or False, # Whether the link is required for this permission.
+      "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is populated when the permission type is "user", "group" or "domain".
+      "name": "A String", # The name for this permission.
+      "kind": "drive#permission", # This is always drive#permission.
+      "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of 'id' or 'value' fields must be specified.
+      "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 '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 populated when the permission type is "user" and the given user's Google+ profile privacy settings allow exposing their email address.
+      "photoLink": "A String", # A link to the profile photo, if available.
+      "role": "A String", # The primary role for this user. Allowed values are:
+          # - owner
+          # - reader
+          # - writer
+      "type": "A String", # The account type. Allowed values are:
+          # - user
+          # - group
+          # - domain
+          # - anyone
+      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+        "A String",
+      ],
+      "selfLink": "A String", # A link back to this permission.
+    },
+    "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This will only be populated on files with content stored in Drive.
+    "fileExtension": "A String", # The file extension used when downloading this file. This field is read only. To set the extension, include it in the title when creating the file. This is only populated for files with content stored in Drive.
+    "headRevisionId": "A String", # The ID of the file's head revision. This will only be populated for files with content stored in Drive.
+    "selfLink": "A String", # A link back to this file.
+    "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="untrash">untrash(fileId)</code>
+  <pre>Restores a file from the trash.
+
+Args:
+  fileId: string, The ID of the file to untrash. (required)
+
+Returns:
+  An object of the form:
+
+    { # The metadata for a file.
+    "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
+    "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
+    "appDataContents": True or False, # Whether this file is in the appdata folder.
+    "thumbnailLink": "A String", # A link to the file's thumbnail.
+    "labels": { # A group of labels for the file.
+      "restricted": True or False, # Whether viewers are prevented from downloading this file.
+      "hidden": True or False, # Deprecated.
+      "viewed": True or False, # Whether this file has been viewed by this user.
+      "starred": True or False, # Whether this file is starred by the user.
+      "trashed": True or False, # Whether this file has been trashed.
+    },
+    "indexableText": { # Indexable text attributes for the file (can only be written)
+      "text": "A String", # The text to be indexed for this file.
+    },
+    "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed. This will only be populated if the file is trashed.
+    "lastModifyingUserName": "A String", # Name of the last user to modify this file.
+    "writersCanShare": True or False, # Whether writers can share the document with other users.
+    "owners": [ # The owner(s) of this file.
+      { # The JSON template for a user.
+        "picture": { # The user's profile picture.
+          "url": "A String", # A URL that points to a profile picture of this user.
+        },
+        "kind": "drive#user", # This is always drive#user.
+        "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+        "displayName": "A String", # A plain text displayable name for this user.
+        "permissionId": "A String", # The user's ID as visible in the permissions collection.
+      },
+    ],
+    "id": "A String", # The ID of the file.
+    "lastModifyingUser": { # The JSON template for a user. # The last user to modify this file.
+      "picture": { # The user's profile picture.
+        "url": "A String", # A URL that points to a profile picture of this user.
+      },
+      "kind": "drive#user", # This is always drive#user.
+      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+      "displayName": "A String", # A plain text displayable name for this user.
+      "permissionId": "A String", # The user's ID as visible in the permissions collection.
+    },
+    "copyable": True or False, # Whether the file can be copied by the current user.
+    "ownerNames": [ # Name(s) of the owner(s) of this file.
+      "A String",
+    ],
+    "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
+    "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
+    "etag": "A String", # ETag of the file.
+    "parents": [ # Collection of parent folders which contain this file.
+        # Setting this field will put the file in all of the provided folders. On insert, if no folders are provided, the file will be placed in the default root folder.
+      { # A reference to a file's parent.
+        "selfLink": "A String", # A link back to this reference.
+        "kind": "drive#parentReference", # This is always drive#parentReference.
+        "id": "A String", # The ID of the parent.
+        "isRoot": True or False, # Whether or not the parent is the root folder.
+        "parentLink": "A String", # A link to the parent.
+      },
+    ],
+    "exportLinks": { # Links for exporting Google Docs to specific formats.
+      "a_key": "A String", # A mapping from export format to URL
+    },
+    "shared": True or False, # Whether the file has been shared.
+    "thumbnail": { # Thumbnail for the file. Only accepted on upload and for files that are not already thumbnailed by Google.
+      "mimeType": "A String", # The MIME type of the thumbnail.
+      "image": "A String", # The URL-safe Base64 encoded bytes of the thumbnail image.
+    },
+    "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
+      "a_key": "A String",
+    },
+    "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
+      "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
+      "exposureTime": 3.14, # The length of the exposure, in seconds.
+      "cameraMake": "A String", # The make of the camera used to create the photo.
+      "maxApertureValue": 3.14, # The smallest f-number of the lens at the focal length used to create the photo (APEX value).
+      "isoSpeed": 42, # The ISO speed used to create the photo.
+      "focalLength": 3.14, # The focal length used to create the photo, in millimeters.
+      "exposureMode": "A String", # The exposure mode used to create the photo.
+      "colorSpace": "A String", # The color space of the photo.
+      "location": { # Geographic location information stored in the image.
+        "latitude": 3.14, # The latitude stored in the image.
+        "altitude": 3.14, # The altitude stored in the image.
+        "longitude": 3.14, # The longitude stored in the image.
+      },
+      "subjectDistance": 42, # The distance to the subject of the photo, in meters.
+      "height": 42, # The height of the image in pixels.
+      "lens": "A String", # The lens used to create the photo.
+      "date": "A String", # The date and time the photo was taken (EXIF format timestamp).
+      "width": 42, # The width of the image in pixels.
+      "meteringMode": "A String", # The metering mode used to create the photo.
+      "flashUsed": True or False, # Whether a flash was used to create the photo.
+      "aperture": 3.14, # The aperture used to create the photo (f-number).
+      "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
+      "sensor": "A String", # The type of sensor used to create the photo.
+      "whiteBalance": "A String", # The white balance mode used to create the photo.
+      "cameraModel": "A String", # The model of the camera used to create the photo.
+    },
+    "description": "A String", # A short description of the file.
+    "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
+    "editable": True or False, # Whether the file can be edited by the current user.
+    "kind": "drive#file", # The type of file. This is always drive#file.
+    "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
+    "fileSize": "A String", # The size of the file in bytes. This is only populated for files with content stored in Drive.
+    "createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).
+    "properties": [ # The list of properties.
+      { # A key-value pair that is either public or private to an application.
+        "kind": "drive#property", # This is always drive#property.
+        "value": "A String", # The value of this property.
+        "etag": "A String", # ETag of the property.
+        "visibility": "A String", # The visibility of this property.
+        "key": "A String", # The key of this property.
+        "selfLink": "A String", # The link back to this property.
+      },
+    ],
+    "md5Checksum": "A String", # An MD5 checksum for the content of this file. This is populated only for files with content stored in Drive.
+    "iconLink": "A String", # A link to the file's icon.
+    "defaultOpenWithLink": "A String", # A link to open this file with the user's default app for this file. Only populated when the drive.apps.readonly scope is used.
+    "embedLink": "A String", # A link for embedding the file.
+    "alternateLink": "A String", # A link for opening the file in using a relevant Google editor or viewer.
+    "title": "A String", # The title of this file.
+    "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
+    "downloadUrl": "A String", # Short lived download URL for the file. This is only populated for files with content stored in Drive.
+    "userPermission": { # A permission for a file. # The permissions for the authenticated user on this file.
+      "withLink": True or False, # Whether the link is required for this permission.
+      "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is populated when the permission type is "user", "group" or "domain".
+      "name": "A String", # The name for this permission.
+      "kind": "drive#permission", # This is always drive#permission.
+      "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of 'id' or 'value' fields must be specified.
+      "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 '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 populated when the permission type is "user" and the given user's Google+ profile privacy settings allow exposing their email address.
+      "photoLink": "A String", # A link to the profile photo, if available.
+      "role": "A String", # The primary role for this user. Allowed values are:
+          # - owner
+          # - reader
+          # - writer
+      "type": "A String", # The account type. Allowed values are:
+          # - user
+          # - group
+          # - domain
+          # - anyone
+      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+        "A String",
+      ],
+      "selfLink": "A String", # A link back to this permission.
+    },
+    "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This will only be populated on files with content stored in Drive.
+    "fileExtension": "A String", # The file extension used when downloading this file. This field is read only. To set the extension, include it in the title when creating the file. This is only populated for files with content stored in Drive.
+    "headRevisionId": "A String", # The ID of the file's head revision. This will only be populated for files with content stored in Drive.
+    "selfLink": "A String", # A link back to this file.
+    "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(fileId, body=None, newRevision=None, media_body=None, ocrLanguage=None, ocr=None, pinned=None, updateViewedDate=None, timedTextTrackName=None, convert=None, useContentAsIndexableText=None, setModifiedDate=None, timedTextLanguage=None)</code>
+  <pre>Updates file metadata and/or content.
+
+Args:
+  fileId: string, The ID of the file to update. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # The metadata for a file.
+  "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
+  "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
+  "appDataContents": True or False, # Whether this file is in the appdata folder.
+  "thumbnailLink": "A String", # A link to the file's thumbnail.
+  "labels": { # A group of labels for the file.
+    "restricted": True or False, # Whether viewers are prevented from downloading this file.
+    "hidden": True or False, # Deprecated.
+    "viewed": True or False, # Whether this file has been viewed by this user.
+    "starred": True or False, # Whether this file is starred by the user.
+    "trashed": True or False, # Whether this file has been trashed.
+  },
+  "indexableText": { # Indexable text attributes for the file (can only be written)
+    "text": "A String", # The text to be indexed for this file.
+  },
+  "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed. This will only be populated if the file is trashed.
+  "lastModifyingUserName": "A String", # Name of the last user to modify this file.
+  "writersCanShare": True or False, # Whether writers can share the document with other users.
+  "owners": [ # The owner(s) of this file.
+    { # The JSON template for a user.
+      "picture": { # The user's profile picture.
+        "url": "A String", # A URL that points to a profile picture of this user.
+      },
+      "kind": "drive#user", # This is always drive#user.
+      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+      "displayName": "A String", # A plain text displayable name for this user.
+      "permissionId": "A String", # The user's ID as visible in the permissions collection.
+    },
+  ],
+  "id": "A String", # The ID of the file.
+  "lastModifyingUser": { # The JSON template for a user. # The last user to modify this file.
+    "picture": { # The user's profile picture.
+      "url": "A String", # A URL that points to a profile picture of this user.
+    },
+    "kind": "drive#user", # This is always drive#user.
+    "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+    "displayName": "A String", # A plain text displayable name for this user.
+    "permissionId": "A String", # The user's ID as visible in the permissions collection.
+  },
+  "copyable": True or False, # Whether the file can be copied by the current user.
+  "ownerNames": [ # Name(s) of the owner(s) of this file.
+    "A String",
+  ],
+  "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
+  "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
+  "etag": "A String", # ETag of the file.
+  "parents": [ # Collection of parent folders which contain this file.
+      # Setting this field will put the file in all of the provided folders. On insert, if no folders are provided, the file will be placed in the default root folder.
+    { # A reference to a file's parent.
+      "selfLink": "A String", # A link back to this reference.
+      "kind": "drive#parentReference", # This is always drive#parentReference.
+      "id": "A String", # The ID of the parent.
+      "isRoot": True or False, # Whether or not the parent is the root folder.
+      "parentLink": "A String", # A link to the parent.
+    },
+  ],
+  "exportLinks": { # Links for exporting Google Docs to specific formats.
+    "a_key": "A String", # A mapping from export format to URL
+  },
+  "shared": True or False, # Whether the file has been shared.
+  "thumbnail": { # Thumbnail for the file. Only accepted on upload and for files that are not already thumbnailed by Google.
+    "mimeType": "A String", # The MIME type of the thumbnail.
+    "image": "A String", # The URL-safe Base64 encoded bytes of the thumbnail image.
+  },
+  "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
+    "a_key": "A String",
+  },
+  "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
+    "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
+    "exposureTime": 3.14, # The length of the exposure, in seconds.
+    "cameraMake": "A String", # The make of the camera used to create the photo.
+    "maxApertureValue": 3.14, # The smallest f-number of the lens at the focal length used to create the photo (APEX value).
+    "isoSpeed": 42, # The ISO speed used to create the photo.
+    "focalLength": 3.14, # The focal length used to create the photo, in millimeters.
+    "exposureMode": "A String", # The exposure mode used to create the photo.
+    "colorSpace": "A String", # The color space of the photo.
+    "location": { # Geographic location information stored in the image.
+      "latitude": 3.14, # The latitude stored in the image.
+      "altitude": 3.14, # The altitude stored in the image.
+      "longitude": 3.14, # The longitude stored in the image.
+    },
+    "subjectDistance": 42, # The distance to the subject of the photo, in meters.
+    "height": 42, # The height of the image in pixels.
+    "lens": "A String", # The lens used to create the photo.
+    "date": "A String", # The date and time the photo was taken (EXIF format timestamp).
+    "width": 42, # The width of the image in pixels.
+    "meteringMode": "A String", # The metering mode used to create the photo.
+    "flashUsed": True or False, # Whether a flash was used to create the photo.
+    "aperture": 3.14, # The aperture used to create the photo (f-number).
+    "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
+    "sensor": "A String", # The type of sensor used to create the photo.
+    "whiteBalance": "A String", # The white balance mode used to create the photo.
+    "cameraModel": "A String", # The model of the camera used to create the photo.
+  },
+  "description": "A String", # A short description of the file.
+  "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
+  "editable": True or False, # Whether the file can be edited by the current user.
+  "kind": "drive#file", # The type of file. This is always drive#file.
+  "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
+  "fileSize": "A String", # The size of the file in bytes. This is only populated for files with content stored in Drive.
+  "createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).
+  "properties": [ # The list of properties.
+    { # A key-value pair that is either public or private to an application.
+      "kind": "drive#property", # This is always drive#property.
+      "value": "A String", # The value of this property.
+      "etag": "A String", # ETag of the property.
+      "visibility": "A String", # The visibility of this property.
+      "key": "A String", # The key of this property.
+      "selfLink": "A String", # The link back to this property.
+    },
+  ],
+  "md5Checksum": "A String", # An MD5 checksum for the content of this file. This is populated only for files with content stored in Drive.
+  "iconLink": "A String", # A link to the file's icon.
+  "defaultOpenWithLink": "A String", # A link to open this file with the user's default app for this file. Only populated when the drive.apps.readonly scope is used.
+  "embedLink": "A String", # A link for embedding the file.
+  "alternateLink": "A String", # A link for opening the file in using a relevant Google editor or viewer.
+  "title": "A String", # The title of this file.
+  "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
+  "downloadUrl": "A String", # Short lived download URL for the file. This is only populated for files with content stored in Drive.
+  "userPermission": { # A permission for a file. # The permissions for the authenticated user on this file.
+    "withLink": True or False, # Whether the link is required for this permission.
+    "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is populated when the permission type is "user", "group" or "domain".
+    "name": "A String", # The name for this permission.
+    "kind": "drive#permission", # This is always drive#permission.
+    "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of 'id' or 'value' fields must be specified.
+    "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 '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 populated when the permission type is "user" and the given user's Google+ profile privacy settings allow exposing their email address.
+    "photoLink": "A String", # A link to the profile photo, if available.
+    "role": "A String", # The primary role for this user. Allowed values are:
+        # - owner
+        # - reader
+        # - writer
+    "type": "A String", # The account type. Allowed values are:
+        # - user
+        # - group
+        # - domain
+        # - anyone
+    "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+      "A String",
+    ],
+    "selfLink": "A String", # A link back to this permission.
+  },
+  "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This will only be populated on files with content stored in Drive.
+  "fileExtension": "A String", # The file extension used when downloading this file. This field is read only. To set the extension, include it in the title when creating the file. This is only populated for files with content stored in Drive.
+  "headRevisionId": "A String", # The ID of the file's head revision. This will only be populated for files with content stored in Drive.
+  "selfLink": "A String", # A link back to this file.
+  "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
+}
+
+  newRevision: boolean, Whether a blob upload should create a new revision. If false, the blob data in the current head revision is replaced. If not set or true, a new blob is created as head revision, and previous revisions are preserved (causing increased use of the user's data storage quota).
+  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
+  ocrLanguage: string, If ocr is true, hints at the language to use. Valid values are ISO 639-1 codes.
+  ocr: boolean, Whether to attempt OCR on .jpg, .png, .gif, or .pdf uploads.
+  pinned: boolean, Whether to pin the new revision.
+  updateViewedDate: boolean, Whether to update the view date after successfully updating the file.
+  timedTextTrackName: string, The timed text track name.
+  convert: boolean, Whether to convert this file to the corresponding Google Docs format.
+  useContentAsIndexableText: boolean, Whether to use the content as indexable text.
+  setModifiedDate: boolean, Whether to set the modified date with the supplied modified date.
+  timedTextLanguage: string, The language of the timed text.
+
+Returns:
+  An object of the form:
+
+    { # The metadata for a file.
+    "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
+    "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
+    "appDataContents": True or False, # Whether this file is in the appdata folder.
+    "thumbnailLink": "A String", # A link to the file's thumbnail.
+    "labels": { # A group of labels for the file.
+      "restricted": True or False, # Whether viewers are prevented from downloading this file.
+      "hidden": True or False, # Deprecated.
+      "viewed": True or False, # Whether this file has been viewed by this user.
+      "starred": True or False, # Whether this file is starred by the user.
+      "trashed": True or False, # Whether this file has been trashed.
+    },
+    "indexableText": { # Indexable text attributes for the file (can only be written)
+      "text": "A String", # The text to be indexed for this file.
+    },
+    "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed. This will only be populated if the file is trashed.
+    "lastModifyingUserName": "A String", # Name of the last user to modify this file.
+    "writersCanShare": True or False, # Whether writers can share the document with other users.
+    "owners": [ # The owner(s) of this file.
+      { # The JSON template for a user.
+        "picture": { # The user's profile picture.
+          "url": "A String", # A URL that points to a profile picture of this user.
+        },
+        "kind": "drive#user", # This is always drive#user.
+        "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+        "displayName": "A String", # A plain text displayable name for this user.
+        "permissionId": "A String", # The user's ID as visible in the permissions collection.
+      },
+    ],
+    "id": "A String", # The ID of the file.
+    "lastModifyingUser": { # The JSON template for a user. # The last user to modify this file.
+      "picture": { # The user's profile picture.
+        "url": "A String", # A URL that points to a profile picture of this user.
+      },
+      "kind": "drive#user", # This is always drive#user.
+      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+      "displayName": "A String", # A plain text displayable name for this user.
+      "permissionId": "A String", # The user's ID as visible in the permissions collection.
+    },
+    "copyable": True or False, # Whether the file can be copied by the current user.
+    "ownerNames": [ # Name(s) of the owner(s) of this file.
+      "A String",
+    ],
+    "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
+    "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
+    "etag": "A String", # ETag of the file.
+    "parents": [ # Collection of parent folders which contain this file.
+        # Setting this field will put the file in all of the provided folders. On insert, if no folders are provided, the file will be placed in the default root folder.
+      { # A reference to a file's parent.
+        "selfLink": "A String", # A link back to this reference.
+        "kind": "drive#parentReference", # This is always drive#parentReference.
+        "id": "A String", # The ID of the parent.
+        "isRoot": True or False, # Whether or not the parent is the root folder.
+        "parentLink": "A String", # A link to the parent.
+      },
+    ],
+    "exportLinks": { # Links for exporting Google Docs to specific formats.
+      "a_key": "A String", # A mapping from export format to URL
+    },
+    "shared": True or False, # Whether the file has been shared.
+    "thumbnail": { # Thumbnail for the file. Only accepted on upload and for files that are not already thumbnailed by Google.
+      "mimeType": "A String", # The MIME type of the thumbnail.
+      "image": "A String", # The URL-safe Base64 encoded bytes of the thumbnail image.
+    },
+    "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
+      "a_key": "A String",
+    },
+    "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
+      "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
+      "exposureTime": 3.14, # The length of the exposure, in seconds.
+      "cameraMake": "A String", # The make of the camera used to create the photo.
+      "maxApertureValue": 3.14, # The smallest f-number of the lens at the focal length used to create the photo (APEX value).
+      "isoSpeed": 42, # The ISO speed used to create the photo.
+      "focalLength": 3.14, # The focal length used to create the photo, in millimeters.
+      "exposureMode": "A String", # The exposure mode used to create the photo.
+      "colorSpace": "A String", # The color space of the photo.
+      "location": { # Geographic location information stored in the image.
+        "latitude": 3.14, # The latitude stored in the image.
+        "altitude": 3.14, # The altitude stored in the image.
+        "longitude": 3.14, # The longitude stored in the image.
+      },
+      "subjectDistance": 42, # The distance to the subject of the photo, in meters.
+      "height": 42, # The height of the image in pixels.
+      "lens": "A String", # The lens used to create the photo.
+      "date": "A String", # The date and time the photo was taken (EXIF format timestamp).
+      "width": 42, # The width of the image in pixels.
+      "meteringMode": "A String", # The metering mode used to create the photo.
+      "flashUsed": True or False, # Whether a flash was used to create the photo.
+      "aperture": 3.14, # The aperture used to create the photo (f-number).
+      "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
+      "sensor": "A String", # The type of sensor used to create the photo.
+      "whiteBalance": "A String", # The white balance mode used to create the photo.
+      "cameraModel": "A String", # The model of the camera used to create the photo.
+    },
+    "description": "A String", # A short description of the file.
+    "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
+    "editable": True or False, # Whether the file can be edited by the current user.
+    "kind": "drive#file", # The type of file. This is always drive#file.
+    "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
+    "fileSize": "A String", # The size of the file in bytes. This is only populated for files with content stored in Drive.
+    "createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).
+    "properties": [ # The list of properties.
+      { # A key-value pair that is either public or private to an application.
+        "kind": "drive#property", # This is always drive#property.
+        "value": "A String", # The value of this property.
+        "etag": "A String", # ETag of the property.
+        "visibility": "A String", # The visibility of this property.
+        "key": "A String", # The key of this property.
+        "selfLink": "A String", # The link back to this property.
+      },
+    ],
+    "md5Checksum": "A String", # An MD5 checksum for the content of this file. This is populated only for files with content stored in Drive.
+    "iconLink": "A String", # A link to the file's icon.
+    "defaultOpenWithLink": "A String", # A link to open this file with the user's default app for this file. Only populated when the drive.apps.readonly scope is used.
+    "embedLink": "A String", # A link for embedding the file.
+    "alternateLink": "A String", # A link for opening the file in using a relevant Google editor or viewer.
+    "title": "A String", # The title of this file.
+    "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
+    "downloadUrl": "A String", # Short lived download URL for the file. This is only populated for files with content stored in Drive.
+    "userPermission": { # A permission for a file. # The permissions for the authenticated user on this file.
+      "withLink": True or False, # Whether the link is required for this permission.
+      "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is populated when the permission type is "user", "group" or "domain".
+      "name": "A String", # The name for this permission.
+      "kind": "drive#permission", # This is always drive#permission.
+      "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of 'id' or 'value' fields must be specified.
+      "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 '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 populated when the permission type is "user" and the given user's Google+ profile privacy settings allow exposing their email address.
+      "photoLink": "A String", # A link to the profile photo, if available.
+      "role": "A String", # The primary role for this user. Allowed values are:
+          # - owner
+          # - reader
+          # - writer
+      "type": "A String", # The account type. Allowed values are:
+          # - user
+          # - group
+          # - domain
+          # - anyone
+      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+        "A String",
+      ],
+      "selfLink": "A String", # A link back to this permission.
+    },
+    "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This will only be populated on files with content stored in Drive.
+    "fileExtension": "A String", # The file extension used when downloading this file. This field is read only. To set the extension, include it in the title when creating the file. This is only populated for files with content stored in Drive.
+    "headRevisionId": "A String", # The ID of the file's head revision. This will only be populated for files with content stored in Drive.
+    "selfLink": "A String", # A link back to this file.
+    "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="watch">watch(fileId, body, projection=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
+  updateViewedDate: boolean, Whether to update the view date after successfully retrieving the file.
+
+Returns:
+  An object of the form:
+
+    { # 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.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/drive_v2.html b/docs/dyn/drive_v2.html
new file mode 100644
index 0000000..471c46c
--- /dev/null
+++ b/docs/dyn/drive_v2.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="drive_v2.html">Drive API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="drive_v2.about.html">about()</a></code>
+</p>
+<p class="firstline">Returns the about Resource.</p>
+
+<p class="toc_element">
+  <code><a href="drive_v2.apps.html">apps()</a></code>
+</p>
+<p class="firstline">Returns the apps Resource.</p>
+
+<p class="toc_element">
+  <code><a href="drive_v2.changes.html">changes()</a></code>
+</p>
+<p class="firstline">Returns the changes Resource.</p>
+
+<p class="toc_element">
+  <code><a href="drive_v2.channels.html">channels()</a></code>
+</p>
+<p class="firstline">Returns the channels Resource.</p>
+
+<p class="toc_element">
+  <code><a href="drive_v2.children.html">children()</a></code>
+</p>
+<p class="firstline">Returns the children Resource.</p>
+
+<p class="toc_element">
+  <code><a href="drive_v2.comments.html">comments()</a></code>
+</p>
+<p class="firstline">Returns the comments Resource.</p>
+
+<p class="toc_element">
+  <code><a href="drive_v2.files.html">files()</a></code>
+</p>
+<p class="firstline">Returns the files Resource.</p>
+
+<p class="toc_element">
+  <code><a href="drive_v2.parents.html">parents()</a></code>
+</p>
+<p class="firstline">Returns the parents Resource.</p>
+
+<p class="toc_element">
+  <code><a href="drive_v2.permissions.html">permissions()</a></code>
+</p>
+<p class="firstline">Returns the permissions Resource.</p>
+
+<p class="toc_element">
+  <code><a href="drive_v2.properties.html">properties()</a></code>
+</p>
+<p class="firstline">Returns the properties Resource.</p>
+
+<p class="toc_element">
+  <code><a href="drive_v2.realtime.html">realtime()</a></code>
+</p>
+<p class="firstline">Returns the realtime Resource.</p>
+
+<p class="toc_element">
+  <code><a href="drive_v2.replies.html">replies()</a></code>
+</p>
+<p class="firstline">Returns the replies Resource.</p>
+
+<p class="toc_element">
+  <code><a href="drive_v2.revisions.html">revisions()</a></code>
+</p>
+<p class="firstline">Returns the revisions Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/drive_v2.parents.html b/docs/dyn/drive_v2.parents.html
new file mode 100644
index 0000000..4dc0671
--- /dev/null
+++ b/docs/dyn/drive_v2.parents.html
@@ -0,0 +1,176 @@
+<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="drive_v2.html">Drive API</a> . <a href="drive_v2.parents.html">parents</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(fileId, parentId)</a></code></p>
+<p class="firstline">Removes a parent from a file.</p>
+<p class="toc_element">
+  <code><a href="#get">get(fileId, parentId)</a></code></p>
+<p class="firstline">Gets a specific parent reference.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(fileId, body)</a></code></p>
+<p class="firstline">Adds a parent folder for a file.</p>
+<p class="toc_element">
+  <code><a href="#list">list(fileId)</a></code></p>
+<p class="firstline">Lists a file's parents.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(fileId, parentId)</code>
+  <pre>Removes a parent from a file.
+
+Args:
+  fileId: string, The ID of the file. (required)
+  parentId: string, The ID of the parent. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(fileId, parentId)</code>
+  <pre>Gets a specific parent reference.
+
+Args:
+  fileId: string, The ID of the file. (required)
+  parentId: string, The ID of the parent. (required)
+
+Returns:
+  An object of the form:
+
+    { # A reference to a file's parent.
+    "selfLink": "A String", # A link back to this reference.
+    "kind": "drive#parentReference", # This is always drive#parentReference.
+    "id": "A String", # The ID of the parent.
+    "isRoot": True or False, # Whether or not the parent is the root folder.
+    "parentLink": "A String", # A link to the parent.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(fileId, body)</code>
+  <pre>Adds a parent folder for a file.
+
+Args:
+  fileId: string, The ID of the file. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A reference to a file's parent.
+  "selfLink": "A String", # A link back to this reference.
+  "kind": "drive#parentReference", # This is always drive#parentReference.
+  "id": "A String", # The ID of the parent.
+  "isRoot": True or False, # Whether or not the parent is the root folder.
+  "parentLink": "A String", # A link to the parent.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # A reference to a file's parent.
+    "selfLink": "A String", # A link back to this reference.
+    "kind": "drive#parentReference", # This is always drive#parentReference.
+    "id": "A String", # The ID of the parent.
+    "isRoot": True or False, # Whether or not the parent is the root folder.
+    "parentLink": "A String", # A link to the parent.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(fileId)</code>
+  <pre>Lists a file's parents.
+
+Args:
+  fileId: string, The ID of the file. (required)
+
+Returns:
+  An object of the form:
+
+    { # A list of a file's parents.
+    "items": [ # The actual list of parents.
+      { # A reference to a file's parent.
+        "selfLink": "A String", # A link back to this reference.
+        "kind": "drive#parentReference", # This is always drive#parentReference.
+        "id": "A String", # The ID of the parent.
+        "isRoot": True or False, # Whether or not the parent is the root folder.
+        "parentLink": "A String", # A link to the parent.
+      },
+    ],
+    "kind": "drive#parentList", # This is always drive#parentList.
+    "etag": "A String", # The ETag of the list.
+    "selfLink": "A String", # A link back to this list.
+  }</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
new file mode 100644
index 0000000..9a1743b
--- /dev/null
+++ b/docs/dyn/drive_v2.permissions.html
@@ -0,0 +1,411 @@
+<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="drive_v2.html">Drive API</a> . <a href="drive_v2.permissions.html">permissions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(fileId, permissionId)</a></code></p>
+<p class="firstline">Deletes a permission from a file.</p>
+<p class="toc_element">
+  <code><a href="#get">get(fileId, permissionId)</a></code></p>
+<p class="firstline">Gets a permission by ID.</p>
+<p class="toc_element">
+  <code><a href="#getIdForEmail">getIdForEmail(email)</a></code></p>
+<p class="firstline">Returns the permission ID for an email address.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(fileId, body, sendNotificationEmails=None, emailMessage=None)</a></code></p>
+<p class="firstline">Inserts a permission for a file.</p>
+<p class="toc_element">
+  <code><a href="#list">list(fileId)</a></code></p>
+<p class="firstline">Lists a file's permissions.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(fileId, permissionId, body, transferOwnership=None)</a></code></p>
+<p class="firstline">Updates a permission. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(fileId, permissionId, body, transferOwnership=None)</a></code></p>
+<p class="firstline">Updates a permission.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(fileId, permissionId)</code>
+  <pre>Deletes a permission from a file.
+
+Args:
+  fileId: string, The ID for the file. (required)
+  permissionId: string, The ID for the permission. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(fileId, permissionId)</code>
+  <pre>Gets a permission by ID.
+
+Args:
+  fileId: string, The ID for the file. (required)
+  permissionId: string, The ID for the permission. (required)
+
+Returns:
+  An object of the form:
+
+    { # A permission for a file.
+    "withLink": True or False, # Whether the link is required for this permission.
+    "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is populated when the permission type is "user", "group" or "domain".
+    "name": "A String", # The name for this permission.
+    "kind": "drive#permission", # This is always drive#permission.
+    "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of 'id' or 'value' fields must be specified.
+    "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 '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 populated when the permission type is "user" and the given user's Google+ profile privacy settings allow exposing their email address.
+    "photoLink": "A String", # A link to the profile photo, if available.
+    "role": "A String", # The primary role for this user. Allowed values are:
+        # - owner
+        # - reader
+        # - writer
+    "type": "A String", # The account type. Allowed values are:
+        # - user
+        # - group
+        # - domain
+        # - anyone
+    "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+      "A String",
+    ],
+    "selfLink": "A String", # A link back to this permission.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getIdForEmail">getIdForEmail(email)</code>
+  <pre>Returns the permission ID for an email address.
+
+Args:
+  email: string, The email address for which to return a permission ID (required)
+
+Returns:
+  An object of the form:
+
+    { # An ID for a user or group as seen in Permission items.
+    "kind": "drive#permissionId", # This is always drive#permissionId.
+    "id": "A String", # The permission ID.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(fileId, body, sendNotificationEmails=None, emailMessage=None)</code>
+  <pre>Inserts a permission for a file.
+
+Args:
+  fileId: string, The ID for the file. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A permission for a file.
+  "withLink": True or False, # Whether the link is required for this permission.
+  "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is populated when the permission type is "user", "group" or "domain".
+  "name": "A String", # The name for this permission.
+  "kind": "drive#permission", # This is always drive#permission.
+  "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of 'id' or 'value' fields must be specified.
+  "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 '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 populated when the permission type is "user" and the given user's Google+ profile privacy settings allow exposing their email address.
+  "photoLink": "A String", # A link to the profile photo, if available.
+  "role": "A String", # The primary role for this user. Allowed values are:
+      # - owner
+      # - reader
+      # - writer
+  "type": "A String", # The account type. Allowed values are:
+      # - user
+      # - group
+      # - domain
+      # - anyone
+  "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+    "A String",
+  ],
+  "selfLink": "A String", # A link back to this permission.
+}
+
+  sendNotificationEmails: boolean, Whether to send notification emails when sharing to users or groups.
+  emailMessage: string, A custom message to include in notification emails.
+
+Returns:
+  An object of the form:
+
+    { # A permission for a file.
+    "withLink": True or False, # Whether the link is required for this permission.
+    "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is populated when the permission type is "user", "group" or "domain".
+    "name": "A String", # The name for this permission.
+    "kind": "drive#permission", # This is always drive#permission.
+    "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of 'id' or 'value' fields must be specified.
+    "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 '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 populated when the permission type is "user" and the given user's Google+ profile privacy settings allow exposing their email address.
+    "photoLink": "A String", # A link to the profile photo, if available.
+    "role": "A String", # The primary role for this user. Allowed values are:
+        # - owner
+        # - reader
+        # - writer
+    "type": "A String", # The account type. Allowed values are:
+        # - user
+        # - group
+        # - domain
+        # - anyone
+    "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+      "A String",
+    ],
+    "selfLink": "A String", # A link back to this permission.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(fileId)</code>
+  <pre>Lists a file's permissions.
+
+Args:
+  fileId: string, The ID for the file. (required)
+
+Returns:
+  An object of the form:
+
+    { # A list of permissions associated with a file.
+    "items": [ # The actual list of permissions.
+      { # A permission for a file.
+        "withLink": True or False, # Whether the link is required for this permission.
+        "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is populated when the permission type is "user", "group" or "domain".
+        "name": "A String", # The name for this permission.
+        "kind": "drive#permission", # This is always drive#permission.
+        "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of 'id' or 'value' fields must be specified.
+        "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 '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 populated when the permission type is "user" and the given user's Google+ profile privacy settings allow exposing their email address.
+        "photoLink": "A String", # A link to the profile photo, if available.
+        "role": "A String", # The primary role for this user. Allowed values are:
+            # - owner
+            # - reader
+            # - writer
+        "type": "A String", # The account type. Allowed values are:
+            # - user
+            # - group
+            # - domain
+            # - anyone
+        "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+          "A String",
+        ],
+        "selfLink": "A String", # A link back to this permission.
+      },
+    ],
+    "kind": "drive#permissionList", # This is always drive#permissionList.
+    "etag": "A String", # The ETag of the list.
+    "selfLink": "A String", # A link back to this list.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(fileId, permissionId, body, transferOwnership=None)</code>
+  <pre>Updates a permission. This method supports patch semantics.
+
+Args:
+  fileId: string, The ID for the file. (required)
+  permissionId: string, The ID for the permission. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A permission for a file.
+  "withLink": True or False, # Whether the link is required for this permission.
+  "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is populated when the permission type is "user", "group" or "domain".
+  "name": "A String", # The name for this permission.
+  "kind": "drive#permission", # This is always drive#permission.
+  "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of 'id' or 'value' fields must be specified.
+  "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 '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 populated when the permission type is "user" and the given user's Google+ profile privacy settings allow exposing their email address.
+  "photoLink": "A String", # A link to the profile photo, if available.
+  "role": "A String", # The primary role for this user. Allowed values are:
+      # - owner
+      # - reader
+      # - writer
+  "type": "A String", # The account type. Allowed values are:
+      # - user
+      # - group
+      # - domain
+      # - anyone
+  "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+    "A String",
+  ],
+  "selfLink": "A String", # A link back to this permission.
+}
+
+  transferOwnership: boolean, Whether changing a role to 'owner' should also downgrade the current owners to writers.
+
+Returns:
+  An object of the form:
+
+    { # A permission for a file.
+    "withLink": True or False, # Whether the link is required for this permission.
+    "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is populated when the permission type is "user", "group" or "domain".
+    "name": "A String", # The name for this permission.
+    "kind": "drive#permission", # This is always drive#permission.
+    "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of 'id' or 'value' fields must be specified.
+    "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 '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 populated when the permission type is "user" and the given user's Google+ profile privacy settings allow exposing their email address.
+    "photoLink": "A String", # A link to the profile photo, if available.
+    "role": "A String", # The primary role for this user. Allowed values are:
+        # - owner
+        # - reader
+        # - writer
+    "type": "A String", # The account type. Allowed values are:
+        # - user
+        # - group
+        # - domain
+        # - anyone
+    "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+      "A String",
+    ],
+    "selfLink": "A String", # A link back to this permission.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(fileId, permissionId, body, transferOwnership=None)</code>
+  <pre>Updates a permission.
+
+Args:
+  fileId: string, The ID for the file. (required)
+  permissionId: string, The ID for the permission. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A permission for a file.
+  "withLink": True or False, # Whether the link is required for this permission.
+  "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is populated when the permission type is "user", "group" or "domain".
+  "name": "A String", # The name for this permission.
+  "kind": "drive#permission", # This is always drive#permission.
+  "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of 'id' or 'value' fields must be specified.
+  "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 '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 populated when the permission type is "user" and the given user's Google+ profile privacy settings allow exposing their email address.
+  "photoLink": "A String", # A link to the profile photo, if available.
+  "role": "A String", # The primary role for this user. Allowed values are:
+      # - owner
+      # - reader
+      # - writer
+  "type": "A String", # The account type. Allowed values are:
+      # - user
+      # - group
+      # - domain
+      # - anyone
+  "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+    "A String",
+  ],
+  "selfLink": "A String", # A link back to this permission.
+}
+
+  transferOwnership: boolean, Whether changing a role to 'owner' should also downgrade the current owners to writers.
+
+Returns:
+  An object of the form:
+
+    { # A permission for a file.
+    "withLink": True or False, # Whether the link is required for this permission.
+    "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is populated when the permission type is "user", "group" or "domain".
+    "name": "A String", # The name for this permission.
+    "kind": "drive#permission", # This is always drive#permission.
+    "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of 'id' or 'value' fields must be specified.
+    "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 '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 populated when the permission type is "user" and the given user's Google+ profile privacy settings allow exposing their email address.
+    "photoLink": "A String", # A link to the profile photo, if available.
+    "role": "A String", # The primary role for this user. Allowed values are:
+        # - owner
+        # - reader
+        # - writer
+    "type": "A String", # The account type. Allowed values are:
+        # - user
+        # - group
+        # - domain
+        # - anyone
+    "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
+      "A String",
+    ],
+    "selfLink": "A String", # A link back to this permission.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/drive_v2.properties.html b/docs/dyn/drive_v2.properties.html
new file mode 100644
index 0000000..a5f7e24
--- /dev/null
+++ b/docs/dyn/drive_v2.properties.html
@@ -0,0 +1,256 @@
+<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="drive_v2.html">Drive API</a> . <a href="drive_v2.properties.html">properties</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(fileId, propertyKey, visibility=None)</a></code></p>
+<p class="firstline">Deletes a property.</p>
+<p class="toc_element">
+  <code><a href="#get">get(fileId, propertyKey, visibility=None)</a></code></p>
+<p class="firstline">Gets a property by its key.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(fileId, body)</a></code></p>
+<p class="firstline">Adds a property to a file.</p>
+<p class="toc_element">
+  <code><a href="#list">list(fileId)</a></code></p>
+<p class="firstline">Lists a file's properties.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(fileId, propertyKey, body, visibility=None)</a></code></p>
+<p class="firstline">Updates a property. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(fileId, propertyKey, body, visibility=None)</a></code></p>
+<p class="firstline">Updates a property.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(fileId, propertyKey, visibility=None)</code>
+  <pre>Deletes a property.
+
+Args:
+  fileId: string, The ID of the file. (required)
+  propertyKey: string, The key of the property. (required)
+  visibility: string, The visibility of the property.
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(fileId, propertyKey, visibility=None)</code>
+  <pre>Gets a property by its key.
+
+Args:
+  fileId: string, The ID of the file. (required)
+  propertyKey: string, The key of the property. (required)
+  visibility: string, The visibility of the property.
+
+Returns:
+  An object of the form:
+
+    { # A key-value pair that is either public or private to an application.
+    "kind": "drive#property", # This is always drive#property.
+    "value": "A String", # The value of this property.
+    "etag": "A String", # ETag of the property.
+    "visibility": "A String", # The visibility of this property.
+    "key": "A String", # The key of this property.
+    "selfLink": "A String", # The link back to this property.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(fileId, body)</code>
+  <pre>Adds a property to a file.
+
+Args:
+  fileId: string, The ID of the file. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A key-value pair that is either public or private to an application.
+  "kind": "drive#property", # This is always drive#property.
+  "value": "A String", # The value of this property.
+  "etag": "A String", # ETag of the property.
+  "visibility": "A String", # The visibility of this property.
+  "key": "A String", # The key of this property.
+  "selfLink": "A String", # The link back to this property.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # A key-value pair that is either public or private to an application.
+    "kind": "drive#property", # This is always drive#property.
+    "value": "A String", # The value of this property.
+    "etag": "A String", # ETag of the property.
+    "visibility": "A String", # The visibility of this property.
+    "key": "A String", # The key of this property.
+    "selfLink": "A String", # The link back to this property.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(fileId)</code>
+  <pre>Lists a file's properties.
+
+Args:
+  fileId: string, The ID of the file. (required)
+
+Returns:
+  An object of the form:
+
+    { # A collection of properties, key-value pairs that are either public or private to an application.
+    "items": [ # The list of properties.
+      { # A key-value pair that is either public or private to an application.
+        "kind": "drive#property", # This is always drive#property.
+        "value": "A String", # The value of this property.
+        "etag": "A String", # ETag of the property.
+        "visibility": "A String", # The visibility of this property.
+        "key": "A String", # The key of this property.
+        "selfLink": "A String", # The link back to this property.
+      },
+    ],
+    "kind": "drive#propertyList", # This is always drive#propertyList.
+    "etag": "A String", # The ETag of the list.
+    "selfLink": "A String", # The link back to this list.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(fileId, propertyKey, body, visibility=None)</code>
+  <pre>Updates a property. This method supports patch semantics.
+
+Args:
+  fileId: string, The ID of the file. (required)
+  propertyKey: string, The key of the property. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A key-value pair that is either public or private to an application.
+  "kind": "drive#property", # This is always drive#property.
+  "value": "A String", # The value of this property.
+  "etag": "A String", # ETag of the property.
+  "visibility": "A String", # The visibility of this property.
+  "key": "A String", # The key of this property.
+  "selfLink": "A String", # The link back to this property.
+}
+
+  visibility: string, The visibility of the property.
+
+Returns:
+  An object of the form:
+
+    { # A key-value pair that is either public or private to an application.
+    "kind": "drive#property", # This is always drive#property.
+    "value": "A String", # The value of this property.
+    "etag": "A String", # ETag of the property.
+    "visibility": "A String", # The visibility of this property.
+    "key": "A String", # The key of this property.
+    "selfLink": "A String", # The link back to this property.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(fileId, propertyKey, body, visibility=None)</code>
+  <pre>Updates a property.
+
+Args:
+  fileId: string, The ID of the file. (required)
+  propertyKey: string, The key of the property. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A key-value pair that is either public or private to an application.
+  "kind": "drive#property", # This is always drive#property.
+  "value": "A String", # The value of this property.
+  "etag": "A String", # ETag of the property.
+  "visibility": "A String", # The visibility of this property.
+  "key": "A String", # The key of this property.
+  "selfLink": "A String", # The link back to this property.
+}
+
+  visibility: string, The visibility of the property.
+
+Returns:
+  An object of the form:
+
+    { # A key-value pair that is either public or private to an application.
+    "kind": "drive#property", # This is always drive#property.
+    "value": "A String", # The value of this property.
+    "etag": "A String", # ETag of the property.
+    "visibility": "A String", # The visibility of this property.
+    "key": "A String", # The key of this property.
+    "selfLink": "A String", # The link back to this property.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/drive_v2.realtime.html b/docs/dyn/drive_v2.realtime.html
new file mode 100644
index 0000000..2719319
--- /dev/null
+++ b/docs/dyn/drive_v2.realtime.html
@@ -0,0 +1,116 @@
+<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="drive_v2.html">Drive API</a> . <a href="drive_v2.realtime.html">realtime</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(fileId)</a></code></p>
+<p class="firstline">Exports the contents of the Realtime API data model associated with this file as JSON.</p>
+<p class="toc_element">
+  <code><a href="#get_media">get_media(fileId)</a></code></p>
+<p class="firstline">Exports the contents of the Realtime API data model associated with this file as JSON.</p>
+<p class="toc_element">
+  <code><a href="#update">update(fileId, media_body=None, baseRevision=None)</a></code></p>
+<p class="firstline">Overwrites the Realtime API data model associated with this file with the provided JSON data model.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(fileId)</code>
+  <pre>Exports the contents of the Realtime API data model associated with this file as JSON.
+
+Args:
+  fileId: string, The ID of the file that the Realtime API data model is associated with. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get_media">get_media(fileId)</code>
+  <pre>Exports the contents of the Realtime API data model associated with this file as JSON.
+
+Args:
+  fileId: string, The ID of the file that the Realtime API data model is associated with. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(fileId, media_body=None, baseRevision=None)</code>
+  <pre>Overwrites the Realtime API data model associated with this file with the provided JSON data model.
+
+Args:
+  fileId: string, The ID of the file that the Realtime API data model is associated with. (required)
+  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
+  baseRevision: string, The revision of the model to diff the uploaded model against. If set, the uploaded model is diffed against the provided revision and those differences are merged with any changes made to the model after the provided revision. If not set, the uploaded model replaces the current model on the server.
+</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/drive_v2.replies.html b/docs/dyn/drive_v2.replies.html
new file mode 100644
index 0000000..e393640
--- /dev/null
+++ b/docs/dyn/drive_v2.replies.html
@@ -0,0 +1,384 @@
+<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="drive_v2.html">Drive API</a> . <a href="drive_v2.replies.html">replies</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(fileId, commentId, replyId)</a></code></p>
+<p class="firstline">Deletes a reply.</p>
+<p class="toc_element">
+  <code><a href="#get">get(fileId, commentId, replyId, includeDeleted=None)</a></code></p>
+<p class="firstline">Gets a reply.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(fileId, commentId, body)</a></code></p>
+<p class="firstline">Creates a new reply to the given comment.</p>
+<p class="toc_element">
+  <code><a href="#list">list(fileId, commentId, includeDeleted=None, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Lists all of the replies to a comment.</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(fileId, commentId, replyId, body)</a></code></p>
+<p class="firstline">Updates an existing reply. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(fileId, commentId, replyId, body)</a></code></p>
+<p class="firstline">Updates an existing reply.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(fileId, commentId, replyId)</code>
+  <pre>Deletes a reply.
+
+Args:
+  fileId: string, The ID of the file. (required)
+  commentId: string, The ID of the comment. (required)
+  replyId: string, The ID of the reply. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(fileId, commentId, replyId, includeDeleted=None)</code>
+  <pre>Gets a reply.
+
+Args:
+  fileId: string, The ID of the file. (required)
+  commentId: string, The ID of the comment. (required)
+  replyId: string, The ID of the reply. (required)
+  includeDeleted: boolean, If set, this will succeed when retrieving a deleted reply.
+
+Returns:
+  An object of the form:
+
+    { # A JSON representation of a reply to a comment on a file in Google Drive.
+    "kind": "drive#commentReply", # This is always drive#commentReply.
+    "author": { # The JSON template for a user. # The user who wrote this reply.
+      "picture": { # The user's profile picture.
+        "url": "A String", # A URL that points to a profile picture of this user.
+      },
+      "kind": "drive#user", # This is always drive#user.
+      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+      "displayName": "A String", # A plain text displayable name for this user.
+      "permissionId": "A String", # The user's ID as visible in the permissions collection.
+    },
+    "deleted": True or False, # Whether this reply has been deleted. If a reply has been deleted the content will be cleared and this will only represent a reply that once existed.
+    "htmlContent": "A String", # HTML formatted content for this reply.
+    "content": "A String", # The plain text content used to create this reply. This is not HTML safe and should only be used as a starting point to make edits to a reply's content. This field is required on inserts if no verb is specified (resolve/reopen).
+    "verb": "A String", # The action this reply performed to the parent comment. When creating a new reply this is the action to be perform to the parent comment. Possible values are:
+        # - "resolve" - To resolve a comment.
+        # - "reopen" - To reopen (un-resolve) a comment.
+    "replyId": "A String", # The ID of the reply.
+    "modifiedDate": "A String", # The date when this reply was last modified.
+    "createdDate": "A String", # The date when this reply was first created.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(fileId, commentId, body)</code>
+  <pre>Creates a new reply to the given comment.
+
+Args:
+  fileId: string, The ID of the file. (required)
+  commentId: string, The ID of the comment. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A JSON representation of a reply to a comment on a file in Google Drive.
+  "kind": "drive#commentReply", # This is always drive#commentReply.
+  "author": { # The JSON template for a user. # The user who wrote this reply.
+    "picture": { # The user's profile picture.
+      "url": "A String", # A URL that points to a profile picture of this user.
+    },
+    "kind": "drive#user", # This is always drive#user.
+    "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+    "displayName": "A String", # A plain text displayable name for this user.
+    "permissionId": "A String", # The user's ID as visible in the permissions collection.
+  },
+  "deleted": True or False, # Whether this reply has been deleted. If a reply has been deleted the content will be cleared and this will only represent a reply that once existed.
+  "htmlContent": "A String", # HTML formatted content for this reply.
+  "content": "A String", # The plain text content used to create this reply. This is not HTML safe and should only be used as a starting point to make edits to a reply's content. This field is required on inserts if no verb is specified (resolve/reopen).
+  "verb": "A String", # The action this reply performed to the parent comment. When creating a new reply this is the action to be perform to the parent comment. Possible values are:
+      # - "resolve" - To resolve a comment.
+      # - "reopen" - To reopen (un-resolve) a comment.
+  "replyId": "A String", # The ID of the reply.
+  "modifiedDate": "A String", # The date when this reply was last modified.
+  "createdDate": "A String", # The date when this reply was first created.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # A JSON representation of a reply to a comment on a file in Google Drive.
+    "kind": "drive#commentReply", # This is always drive#commentReply.
+    "author": { # The JSON template for a user. # The user who wrote this reply.
+      "picture": { # The user's profile picture.
+        "url": "A String", # A URL that points to a profile picture of this user.
+      },
+      "kind": "drive#user", # This is always drive#user.
+      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+      "displayName": "A String", # A plain text displayable name for this user.
+      "permissionId": "A String", # The user's ID as visible in the permissions collection.
+    },
+    "deleted": True or False, # Whether this reply has been deleted. If a reply has been deleted the content will be cleared and this will only represent a reply that once existed.
+    "htmlContent": "A String", # HTML formatted content for this reply.
+    "content": "A String", # The plain text content used to create this reply. This is not HTML safe and should only be used as a starting point to make edits to a reply's content. This field is required on inserts if no verb is specified (resolve/reopen).
+    "verb": "A String", # The action this reply performed to the parent comment. When creating a new reply this is the action to be perform to the parent comment. Possible values are:
+        # - "resolve" - To resolve a comment.
+        # - "reopen" - To reopen (un-resolve) a comment.
+    "replyId": "A String", # The ID of the reply.
+    "modifiedDate": "A String", # The date when this reply was last modified.
+    "createdDate": "A String", # The date when this reply was first created.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(fileId, commentId, includeDeleted=None, pageToken=None, maxResults=None)</code>
+  <pre>Lists all of the replies to a comment.
+
+Args:
+  fileId: string, The ID of the file. (required)
+  commentId: string, The ID of the comment. (required)
+  includeDeleted: boolean, If set, all replies, including deleted replies (with content stripped) will be returned.
+  pageToken: string, The continuation token, 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.
+  maxResults: integer, The maximum number of replies to include in the response, used for paging.
+
+Returns:
+  An object of the form:
+
+    { # A JSON representation of a list of replies to a comment on a file in Google Drive.
+    "nextPageToken": "A String", # The token to use to request the next page of results.
+    "items": [ # List of reply.
+      { # A JSON representation of a reply to a comment on a file in Google Drive.
+        "kind": "drive#commentReply", # This is always drive#commentReply.
+        "author": { # The JSON template for a user. # The user who wrote this reply.
+          "picture": { # The user's profile picture.
+            "url": "A String", # A URL that points to a profile picture of this user.
+          },
+          "kind": "drive#user", # This is always drive#user.
+          "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+          "displayName": "A String", # A plain text displayable name for this user.
+          "permissionId": "A String", # The user's ID as visible in the permissions collection.
+        },
+        "deleted": True or False, # Whether this reply has been deleted. If a reply has been deleted the content will be cleared and this will only represent a reply that once existed.
+        "htmlContent": "A String", # HTML formatted content for this reply.
+        "content": "A String", # The plain text content used to create this reply. This is not HTML safe and should only be used as a starting point to make edits to a reply's content. This field is required on inserts if no verb is specified (resolve/reopen).
+        "verb": "A String", # The action this reply performed to the parent comment. When creating a new reply this is the action to be perform to the parent comment. Possible values are:
+            # - "resolve" - To resolve a comment.
+            # - "reopen" - To reopen (un-resolve) a comment.
+        "replyId": "A String", # The ID of the reply.
+        "modifiedDate": "A String", # The date when this reply was last modified.
+        "createdDate": "A String", # The date when this reply was first created.
+      },
+    ],
+    "kind": "drive#commentReplyList", # This is always drive#commentReplyList.
+    "selfLink": "A String", # A link back to this list.
+    "nextLink": "A String", # A link to the next page of replies.
+  }</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(fileId, commentId, replyId, body)</code>
+  <pre>Updates an existing reply. This method supports patch semantics.
+
+Args:
+  fileId: string, The ID of the file. (required)
+  commentId: string, The ID of the comment. (required)
+  replyId: string, The ID of the reply. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A JSON representation of a reply to a comment on a file in Google Drive.
+  "kind": "drive#commentReply", # This is always drive#commentReply.
+  "author": { # The JSON template for a user. # The user who wrote this reply.
+    "picture": { # The user's profile picture.
+      "url": "A String", # A URL that points to a profile picture of this user.
+    },
+    "kind": "drive#user", # This is always drive#user.
+    "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+    "displayName": "A String", # A plain text displayable name for this user.
+    "permissionId": "A String", # The user's ID as visible in the permissions collection.
+  },
+  "deleted": True or False, # Whether this reply has been deleted. If a reply has been deleted the content will be cleared and this will only represent a reply that once existed.
+  "htmlContent": "A String", # HTML formatted content for this reply.
+  "content": "A String", # The plain text content used to create this reply. This is not HTML safe and should only be used as a starting point to make edits to a reply's content. This field is required on inserts if no verb is specified (resolve/reopen).
+  "verb": "A String", # The action this reply performed to the parent comment. When creating a new reply this is the action to be perform to the parent comment. Possible values are:
+      # - "resolve" - To resolve a comment.
+      # - "reopen" - To reopen (un-resolve) a comment.
+  "replyId": "A String", # The ID of the reply.
+  "modifiedDate": "A String", # The date when this reply was last modified.
+  "createdDate": "A String", # The date when this reply was first created.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # A JSON representation of a reply to a comment on a file in Google Drive.
+    "kind": "drive#commentReply", # This is always drive#commentReply.
+    "author": { # The JSON template for a user. # The user who wrote this reply.
+      "picture": { # The user's profile picture.
+        "url": "A String", # A URL that points to a profile picture of this user.
+      },
+      "kind": "drive#user", # This is always drive#user.
+      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+      "displayName": "A String", # A plain text displayable name for this user.
+      "permissionId": "A String", # The user's ID as visible in the permissions collection.
+    },
+    "deleted": True or False, # Whether this reply has been deleted. If a reply has been deleted the content will be cleared and this will only represent a reply that once existed.
+    "htmlContent": "A String", # HTML formatted content for this reply.
+    "content": "A String", # The plain text content used to create this reply. This is not HTML safe and should only be used as a starting point to make edits to a reply's content. This field is required on inserts if no verb is specified (resolve/reopen).
+    "verb": "A String", # The action this reply performed to the parent comment. When creating a new reply this is the action to be perform to the parent comment. Possible values are:
+        # - "resolve" - To resolve a comment.
+        # - "reopen" - To reopen (un-resolve) a comment.
+    "replyId": "A String", # The ID of the reply.
+    "modifiedDate": "A String", # The date when this reply was last modified.
+    "createdDate": "A String", # The date when this reply was first created.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(fileId, commentId, replyId, body)</code>
+  <pre>Updates an existing reply.
+
+Args:
+  fileId: string, The ID of the file. (required)
+  commentId: string, The ID of the comment. (required)
+  replyId: string, The ID of the reply. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A JSON representation of a reply to a comment on a file in Google Drive.
+  "kind": "drive#commentReply", # This is always drive#commentReply.
+  "author": { # The JSON template for a user. # The user who wrote this reply.
+    "picture": { # The user's profile picture.
+      "url": "A String", # A URL that points to a profile picture of this user.
+    },
+    "kind": "drive#user", # This is always drive#user.
+    "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+    "displayName": "A String", # A plain text displayable name for this user.
+    "permissionId": "A String", # The user's ID as visible in the permissions collection.
+  },
+  "deleted": True or False, # Whether this reply has been deleted. If a reply has been deleted the content will be cleared and this will only represent a reply that once existed.
+  "htmlContent": "A String", # HTML formatted content for this reply.
+  "content": "A String", # The plain text content used to create this reply. This is not HTML safe and should only be used as a starting point to make edits to a reply's content. This field is required on inserts if no verb is specified (resolve/reopen).
+  "verb": "A String", # The action this reply performed to the parent comment. When creating a new reply this is the action to be perform to the parent comment. Possible values are:
+      # - "resolve" - To resolve a comment.
+      # - "reopen" - To reopen (un-resolve) a comment.
+  "replyId": "A String", # The ID of the reply.
+  "modifiedDate": "A String", # The date when this reply was last modified.
+  "createdDate": "A String", # The date when this reply was first created.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # A JSON representation of a reply to a comment on a file in Google Drive.
+    "kind": "drive#commentReply", # This is always drive#commentReply.
+    "author": { # The JSON template for a user. # The user who wrote this reply.
+      "picture": { # The user's profile picture.
+        "url": "A String", # A URL that points to a profile picture of this user.
+      },
+      "kind": "drive#user", # This is always drive#user.
+      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+      "displayName": "A String", # A plain text displayable name for this user.
+      "permissionId": "A String", # The user's ID as visible in the permissions collection.
+    },
+    "deleted": True or False, # Whether this reply has been deleted. If a reply has been deleted the content will be cleared and this will only represent a reply that once existed.
+    "htmlContent": "A String", # HTML formatted content for this reply.
+    "content": "A String", # The plain text content used to create this reply. This is not HTML safe and should only be used as a starting point to make edits to a reply's content. This field is required on inserts if no verb is specified (resolve/reopen).
+    "verb": "A String", # The action this reply performed to the parent comment. When creating a new reply this is the action to be perform to the parent comment. Possible values are:
+        # - "resolve" - To resolve a comment.
+        # - "reopen" - To reopen (un-resolve) a comment.
+    "replyId": "A String", # The ID of the reply.
+    "modifiedDate": "A String", # The date when this reply was last modified.
+    "createdDate": "A String", # The date when this reply was first created.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/drive_v2.revisions.html b/docs/dyn/drive_v2.revisions.html
new file mode 100644
index 0000000..1d9645d
--- /dev/null
+++ b/docs/dyn/drive_v2.revisions.html
@@ -0,0 +1,349 @@
+<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="drive_v2.html">Drive API</a> . <a href="drive_v2.revisions.html">revisions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(fileId, revisionId)</a></code></p>
+<p class="firstline">Removes a revision.</p>
+<p class="toc_element">
+  <code><a href="#get">get(fileId, revisionId)</a></code></p>
+<p class="firstline">Gets a specific revision.</p>
+<p class="toc_element">
+  <code><a href="#list">list(fileId)</a></code></p>
+<p class="firstline">Lists a file's revisions.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(fileId, revisionId, body)</a></code></p>
+<p class="firstline">Updates a revision. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(fileId, revisionId, body)</a></code></p>
+<p class="firstline">Updates a revision.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(fileId, revisionId)</code>
+  <pre>Removes a revision.
+
+Args:
+  fileId: string, The ID of the file. (required)
+  revisionId: string, The ID of the revision. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(fileId, revisionId)</code>
+  <pre>Gets a specific revision.
+
+Args:
+  fileId: string, The ID of the file. (required)
+  revisionId: string, The ID of the revision. (required)
+
+Returns:
+  An object of the form:
+
+    { # A revision of a file.
+      "mimeType": "A String", # The MIME type of the revision.
+      "pinned": True or False, # Whether this revision is pinned to prevent automatic purging. This will only be populated and can only be modified on files with content stored in Drive which are not Google Docs. Revisions can also be pinned when they are created through the drive.files.insert/update/copy by using the pinned query parameter.
+      "kind": "drive#revision", # This is always drive#revision.
+      "publishedLink": "A String", # A link to the published revision.
+      "publishedOutsideDomain": True or False, # Whether this revision is published outside the domain. This is only populated and can only be modified for Google Docs.
+      "lastModifyingUser": { # The JSON template for a user. # The last user to modify this revision.
+        "picture": { # The user's profile picture.
+          "url": "A String", # A URL that points to a profile picture of this user.
+        },
+        "kind": "drive#user", # This is always drive#user.
+        "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+        "displayName": "A String", # A plain text displayable name for this user.
+        "permissionId": "A String", # The user's ID as visible in the permissions collection.
+      },
+      "publishAuto": True or False, # Whether subsequent revisions will be automatically republished. This is only populated and can only be modified for Google Docs.
+      "published": True or False, # Whether this revision is published. This is only populated and can only be modified for Google Docs.
+      "downloadUrl": "A String", # Short term download URL for the file. This will only be populated on files with content stored in Drive.
+      "selfLink": "A String", # A link back to this revision.
+      "etag": "A String", # The ETag of the revision.
+      "fileSize": "A String", # The size of the revision in bytes. This will only be populated on files with content stored in Drive.
+      "exportLinks": { # Links for exporting Google Docs to specific formats.
+        "a_key": "A String", # A mapping from export format to URL
+      },
+      "lastModifyingUserName": "A String", # Name of the last user to modify this revision.
+      "originalFilename": "A String", # The original filename when this revision was created. This will only be populated on files with content stored in Drive.
+      "id": "A String", # The ID of the revision.
+      "md5Checksum": "A String", # An MD5 checksum for the content of this revision. This will only be populated on files with content stored in Drive.
+      "modifiedDate": "A String", # Last time this revision was modified (formatted RFC 3339 timestamp).
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(fileId)</code>
+  <pre>Lists a file's revisions.
+
+Args:
+  fileId: string, The ID of the file. (required)
+
+Returns:
+  An object of the form:
+
+    { # A list of revisions of a file.
+    "items": [ # The actual list of revisions.
+      { # A revision of a file.
+          "mimeType": "A String", # The MIME type of the revision.
+          "pinned": True or False, # Whether this revision is pinned to prevent automatic purging. This will only be populated and can only be modified on files with content stored in Drive which are not Google Docs. Revisions can also be pinned when they are created through the drive.files.insert/update/copy by using the pinned query parameter.
+          "kind": "drive#revision", # This is always drive#revision.
+          "publishedLink": "A String", # A link to the published revision.
+          "publishedOutsideDomain": True or False, # Whether this revision is published outside the domain. This is only populated and can only be modified for Google Docs.
+          "lastModifyingUser": { # The JSON template for a user. # The last user to modify this revision.
+            "picture": { # The user's profile picture.
+              "url": "A String", # A URL that points to a profile picture of this user.
+            },
+            "kind": "drive#user", # This is always drive#user.
+            "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+            "displayName": "A String", # A plain text displayable name for this user.
+            "permissionId": "A String", # The user's ID as visible in the permissions collection.
+          },
+          "publishAuto": True or False, # Whether subsequent revisions will be automatically republished. This is only populated and can only be modified for Google Docs.
+          "published": True or False, # Whether this revision is published. This is only populated and can only be modified for Google Docs.
+          "downloadUrl": "A String", # Short term download URL for the file. This will only be populated on files with content stored in Drive.
+          "selfLink": "A String", # A link back to this revision.
+          "etag": "A String", # The ETag of the revision.
+          "fileSize": "A String", # The size of the revision in bytes. This will only be populated on files with content stored in Drive.
+          "exportLinks": { # Links for exporting Google Docs to specific formats.
+            "a_key": "A String", # A mapping from export format to URL
+          },
+          "lastModifyingUserName": "A String", # Name of the last user to modify this revision.
+          "originalFilename": "A String", # The original filename when this revision was created. This will only be populated on files with content stored in Drive.
+          "id": "A String", # The ID of the revision.
+          "md5Checksum": "A String", # An MD5 checksum for the content of this revision. This will only be populated on files with content stored in Drive.
+          "modifiedDate": "A String", # Last time this revision was modified (formatted RFC 3339 timestamp).
+        },
+    ],
+    "kind": "drive#revisionList", # This is always drive#revisionList.
+    "etag": "A String", # The ETag of the list.
+    "selfLink": "A String", # A link back to this list.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(fileId, revisionId, body)</code>
+  <pre>Updates a revision. This method supports patch semantics.
+
+Args:
+  fileId: string, The ID for the file. (required)
+  revisionId: string, The ID for the revision. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A revision of a file.
+    "mimeType": "A String", # The MIME type of the revision.
+    "pinned": True or False, # Whether this revision is pinned to prevent automatic purging. This will only be populated and can only be modified on files with content stored in Drive which are not Google Docs. Revisions can also be pinned when they are created through the drive.files.insert/update/copy by using the pinned query parameter.
+    "kind": "drive#revision", # This is always drive#revision.
+    "publishedLink": "A String", # A link to the published revision.
+    "publishedOutsideDomain": True or False, # Whether this revision is published outside the domain. This is only populated and can only be modified for Google Docs.
+    "lastModifyingUser": { # The JSON template for a user. # The last user to modify this revision.
+      "picture": { # The user's profile picture.
+        "url": "A String", # A URL that points to a profile picture of this user.
+      },
+      "kind": "drive#user", # This is always drive#user.
+      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+      "displayName": "A String", # A plain text displayable name for this user.
+      "permissionId": "A String", # The user's ID as visible in the permissions collection.
+    },
+    "publishAuto": True or False, # Whether subsequent revisions will be automatically republished. This is only populated and can only be modified for Google Docs.
+    "published": True or False, # Whether this revision is published. This is only populated and can only be modified for Google Docs.
+    "downloadUrl": "A String", # Short term download URL for the file. This will only be populated on files with content stored in Drive.
+    "selfLink": "A String", # A link back to this revision.
+    "etag": "A String", # The ETag of the revision.
+    "fileSize": "A String", # The size of the revision in bytes. This will only be populated on files with content stored in Drive.
+    "exportLinks": { # Links for exporting Google Docs to specific formats.
+      "a_key": "A String", # A mapping from export format to URL
+    },
+    "lastModifyingUserName": "A String", # Name of the last user to modify this revision.
+    "originalFilename": "A String", # The original filename when this revision was created. This will only be populated on files with content stored in Drive.
+    "id": "A String", # The ID of the revision.
+    "md5Checksum": "A String", # An MD5 checksum for the content of this revision. This will only be populated on files with content stored in Drive.
+    "modifiedDate": "A String", # Last time this revision was modified (formatted RFC 3339 timestamp).
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A revision of a file.
+      "mimeType": "A String", # The MIME type of the revision.
+      "pinned": True or False, # Whether this revision is pinned to prevent automatic purging. This will only be populated and can only be modified on files with content stored in Drive which are not Google Docs. Revisions can also be pinned when they are created through the drive.files.insert/update/copy by using the pinned query parameter.
+      "kind": "drive#revision", # This is always drive#revision.
+      "publishedLink": "A String", # A link to the published revision.
+      "publishedOutsideDomain": True or False, # Whether this revision is published outside the domain. This is only populated and can only be modified for Google Docs.
+      "lastModifyingUser": { # The JSON template for a user. # The last user to modify this revision.
+        "picture": { # The user's profile picture.
+          "url": "A String", # A URL that points to a profile picture of this user.
+        },
+        "kind": "drive#user", # This is always drive#user.
+        "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+        "displayName": "A String", # A plain text displayable name for this user.
+        "permissionId": "A String", # The user's ID as visible in the permissions collection.
+      },
+      "publishAuto": True or False, # Whether subsequent revisions will be automatically republished. This is only populated and can only be modified for Google Docs.
+      "published": True or False, # Whether this revision is published. This is only populated and can only be modified for Google Docs.
+      "downloadUrl": "A String", # Short term download URL for the file. This will only be populated on files with content stored in Drive.
+      "selfLink": "A String", # A link back to this revision.
+      "etag": "A String", # The ETag of the revision.
+      "fileSize": "A String", # The size of the revision in bytes. This will only be populated on files with content stored in Drive.
+      "exportLinks": { # Links for exporting Google Docs to specific formats.
+        "a_key": "A String", # A mapping from export format to URL
+      },
+      "lastModifyingUserName": "A String", # Name of the last user to modify this revision.
+      "originalFilename": "A String", # The original filename when this revision was created. This will only be populated on files with content stored in Drive.
+      "id": "A String", # The ID of the revision.
+      "md5Checksum": "A String", # An MD5 checksum for the content of this revision. This will only be populated on files with content stored in Drive.
+      "modifiedDate": "A String", # Last time this revision was modified (formatted RFC 3339 timestamp).
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(fileId, revisionId, body)</code>
+  <pre>Updates a revision.
+
+Args:
+  fileId: string, The ID for the file. (required)
+  revisionId: string, The ID for the revision. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A revision of a file.
+    "mimeType": "A String", # The MIME type of the revision.
+    "pinned": True or False, # Whether this revision is pinned to prevent automatic purging. This will only be populated and can only be modified on files with content stored in Drive which are not Google Docs. Revisions can also be pinned when they are created through the drive.files.insert/update/copy by using the pinned query parameter.
+    "kind": "drive#revision", # This is always drive#revision.
+    "publishedLink": "A String", # A link to the published revision.
+    "publishedOutsideDomain": True or False, # Whether this revision is published outside the domain. This is only populated and can only be modified for Google Docs.
+    "lastModifyingUser": { # The JSON template for a user. # The last user to modify this revision.
+      "picture": { # The user's profile picture.
+        "url": "A String", # A URL that points to a profile picture of this user.
+      },
+      "kind": "drive#user", # This is always drive#user.
+      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+      "displayName": "A String", # A plain text displayable name for this user.
+      "permissionId": "A String", # The user's ID as visible in the permissions collection.
+    },
+    "publishAuto": True or False, # Whether subsequent revisions will be automatically republished. This is only populated and can only be modified for Google Docs.
+    "published": True or False, # Whether this revision is published. This is only populated and can only be modified for Google Docs.
+    "downloadUrl": "A String", # Short term download URL for the file. This will only be populated on files with content stored in Drive.
+    "selfLink": "A String", # A link back to this revision.
+    "etag": "A String", # The ETag of the revision.
+    "fileSize": "A String", # The size of the revision in bytes. This will only be populated on files with content stored in Drive.
+    "exportLinks": { # Links for exporting Google Docs to specific formats.
+      "a_key": "A String", # A mapping from export format to URL
+    },
+    "lastModifyingUserName": "A String", # Name of the last user to modify this revision.
+    "originalFilename": "A String", # The original filename when this revision was created. This will only be populated on files with content stored in Drive.
+    "id": "A String", # The ID of the revision.
+    "md5Checksum": "A String", # An MD5 checksum for the content of this revision. This will only be populated on files with content stored in Drive.
+    "modifiedDate": "A String", # Last time this revision was modified (formatted RFC 3339 timestamp).
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A revision of a file.
+      "mimeType": "A String", # The MIME type of the revision.
+      "pinned": True or False, # Whether this revision is pinned to prevent automatic purging. This will only be populated and can only be modified on files with content stored in Drive which are not Google Docs. Revisions can also be pinned when they are created through the drive.files.insert/update/copy by using the pinned query parameter.
+      "kind": "drive#revision", # This is always drive#revision.
+      "publishedLink": "A String", # A link to the published revision.
+      "publishedOutsideDomain": True or False, # Whether this revision is published outside the domain. This is only populated and can only be modified for Google Docs.
+      "lastModifyingUser": { # The JSON template for a user. # The last user to modify this revision.
+        "picture": { # The user's profile picture.
+          "url": "A String", # A URL that points to a profile picture of this user.
+        },
+        "kind": "drive#user", # This is always drive#user.
+        "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
+        "displayName": "A String", # A plain text displayable name for this user.
+        "permissionId": "A String", # The user's ID as visible in the permissions collection.
+      },
+      "publishAuto": True or False, # Whether subsequent revisions will be automatically republished. This is only populated and can only be modified for Google Docs.
+      "published": True or False, # Whether this revision is published. This is only populated and can only be modified for Google Docs.
+      "downloadUrl": "A String", # Short term download URL for the file. This will only be populated on files with content stored in Drive.
+      "selfLink": "A String", # A link back to this revision.
+      "etag": "A String", # The ETag of the revision.
+      "fileSize": "A String", # The size of the revision in bytes. This will only be populated on files with content stored in Drive.
+      "exportLinks": { # Links for exporting Google Docs to specific formats.
+        "a_key": "A String", # A mapping from export format to URL
+      },
+      "lastModifyingUserName": "A String", # Name of the last user to modify this revision.
+      "originalFilename": "A String", # The original filename when this revision was created. This will only be populated on files with content stored in Drive.
+      "id": "A String", # The ID of the revision.
+      "md5Checksum": "A String", # An MD5 checksum for the content of this revision. This will only be populated on files with content stored in Drive.
+      "modifiedDate": "A String", # Last time this revision was modified (formatted RFC 3339 timestamp).
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/freebase_v1.html b/docs/dyn/freebase_v1.html
new file mode 100644
index 0000000..23a63f5
--- /dev/null
+++ b/docs/dyn/freebase_v1.html
@@ -0,0 +1,246 @@
+<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="freebase_v1.html">Freebase Search</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#reconcile">reconcile(lang=None, confidence=None, name=None, prop=None, limit=None, kind=None)</a></code></p>
+<p class="firstline">Reconcile entities to Freebase open data.</p>
+<p class="toc_element">
+  <code><a href="#search">search(domain=None, help=None, query=None, scoring=None, filter=None, prefixed=None, with=None, mid=None, encode=None, limit=None, type=None, as_of_time=None, stemmed=None, format=None, spell=None, exact=None, lang=None, indent=None, cursor=None, callback=None, without=None, output=None, mql_output=None)</a></code></p>
+<p class="firstline">Search Freebase open data.</p>
+<p class="toc_element">
+  <code><a href="#search_media">search_media(domain=None, help=None, query=None, scoring=None, filter=None, prefixed=None, with=None, mid=None, encode=None, limit=None, type=None, as_of_time=None, stemmed=None, format=None, spell=None, exact=None, lang=None, indent=None, cursor=None, callback=None, without=None, output=None, mql_output=None)</a></code></p>
+<p class="firstline">Search Freebase open data.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="reconcile">reconcile(lang=None, confidence=None, name=None, prop=None, limit=None, kind=None)</code>
+  <pre>Reconcile entities to Freebase open data.
+
+Args:
+  lang: string, Languages for names and values. First language is used for display. Default is 'en'. (repeated)
+  confidence: number, Required confidence for a candidate to match. Must be between .5 and 1.0
+  name: string, Name of entity.
+  prop: string, Property values for entity formatted as
+: (repeated)
+  limit: integer, Maximum number of candidates to return.
+  kind: string, Classifications of entity e.g. type, category, title. (repeated)
+
+Returns:
+  An object of the form:
+
+    {
+    "costs": { # Server costs for reconciling.
+      "hits": 42, # Total number of hits found.
+      "ms": 42, # Total milliseconds spent.
+    },
+    "warning": [ # If filled, then there were recoverable problems that affected the request. For example, some of the properties were ignored because they either are not valid Freebase predicates or are not indexed for reconciliation. The candidates returned should be considered valid results, with the caveat that sections of the request were ignored as specified by the warning text.
+      {
+        "reason": "A String", # Code for identifying classes of warnings.
+        "message": "A String", # Warning message to display to the user.
+        "location": "A String", # Location of warning in the request e.g. invalid predicate.
+      },
+    ],
+    "match": { # If filled, this entity is guaranteed to match at requested confidence probability (default 99%).
+      "lang": "A String", # Language code that candidate and notable names are displayed in.
+      "confidence": 3.14, # Percentage likelihood that this candidate is the unique matching entity. Value will be between 0.0 and 1.0
+      "notable": { # Type or profession the candidate is notable for.
+        "id": "A String", # MID of notable category.
+        "name": "A String", # Name of notable category in specified language.
+      },
+      "mid": "A String", # Freebase MID of candidate entity.
+      "name": "A String", # Freebase name of matching entity in specified language.
+    },
+    "candidate": [ # If filled, then the listed candidates are potential matches, and such should be evaluated by a more discerning algorithm or human. The matches are ordered by confidence.
+      {
+        "lang": "A String", # Language code that candidate and notable names are displayed in.
+        "confidence": 3.14, # Percentage likelihood that this candidate is the unique matching entity. Value will be between 0.0 and 1.0
+        "notable": { # Type or profession the candidate is notable for.
+          "id": "A String", # MID of notable category.
+          "name": "A String", # Name of notable category in specified language.
+        },
+        "mid": "A String", # Freebase MID of candidate entity.
+        "name": "A String", # Freebase name of matching entity in specified language.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="search">search(domain=None, help=None, query=None, scoring=None, filter=None, prefixed=None, with=None, mid=None, encode=None, limit=None, type=None, as_of_time=None, stemmed=None, format=None, spell=None, exact=None, lang=None, indent=None, cursor=None, callback=None, without=None, output=None, mql_output=None)</code>
+  <pre>Search Freebase open data.
+
+Args:
+  domain: string, Restrict to topics with this Freebase domain id. (repeated)
+  help: string, The keyword to request help on.
+    Allowed values
+      langs - The language codes served by the service.
+      mappings - The property/path mappings supported by the filter and output request parameters.
+      predicates - The predicates and path-terminating properties supported by the filter and output request parameters.
+  query: string, Query term to search for.
+  scoring: string, Relevance scoring algorithm to use.
+    Allowed values
+      entity - Use freebase and popularity entity ranking.
+      freebase - Use freebase entity ranking.
+      schema - Use schema ranking for properties and types.
+  filter: string, A filter to apply to the query. (repeated)
+  prefixed: boolean, Prefix match against names and aliases.
+  with: string, A rule to match against. (repeated)
+  mid: string, A mid to use instead of a query. (repeated)
+  encode: string, The encoding of the response. You can use this parameter to enable html encoding.
+    Allowed values
+      html - Encode certain characters in the response (such as tags and ambersands) using html encoding.
+      off - No encoding of the response. You should not print the results directly on an web page without html-escaping the content first.
+  limit: integer, Maximum number of results to return.
+  type: string, Restrict to topics with this Freebase type id. (repeated)
+  as_of_time: string, A mql as_of_time value to use with mql_output queries.
+  stemmed: boolean, Query on stemmed names and aliases. May not be used with prefixed.
+  format: string, Structural format of the json response.
+    Allowed values
+      ac - Compact format useful for autocomplete/suggest UIs.
+      classic - [DEPRECATED] Same format as was returned by api.freebase.com.
+      entity - Basic information about the entities.
+      guids - [DEPRECATED] Ordered list of a freebase guids.
+      ids - Ordered list of freebase ids.
+      mids - Ordered list of freebase mids.
+  spell: string, Request 'did you mean' suggestions
+    Allowed values
+      always - Request spelling suggestions for any query at least three characters long.
+      no_results - Request spelling suggestions if no results were found.
+      no_spelling - Don't request spelling suggestions.
+  exact: boolean, Query on exact name and keys only.
+  lang: string, The code of the language to run the query with. Default is 'en'. (repeated)
+  indent: boolean, Whether to indent the json results or not.
+  cursor: integer, The cursor value to use for the next page of results.
+  callback: string, JS method name for JSONP callbacks.
+  without: string, A rule to not match against. (repeated)
+  output: string, An output expression to request data from matches.
+  mql_output: string, The MQL query to run againist the results to extract more data.
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="search_media">search_media(domain=None, help=None, query=None, scoring=None, filter=None, prefixed=None, with=None, mid=None, encode=None, limit=None, type=None, as_of_time=None, stemmed=None, format=None, spell=None, exact=None, lang=None, indent=None, cursor=None, callback=None, without=None, output=None, mql_output=None)</code>
+  <pre>Search Freebase open data.
+
+Args:
+  domain: string, Restrict to topics with this Freebase domain id. (repeated)
+  help: string, The keyword to request help on.
+    Allowed values
+      langs - The language codes served by the service.
+      mappings - The property/path mappings supported by the filter and output request parameters.
+      predicates - The predicates and path-terminating properties supported by the filter and output request parameters.
+  query: string, Query term to search for.
+  scoring: string, Relevance scoring algorithm to use.
+    Allowed values
+      entity - Use freebase and popularity entity ranking.
+      freebase - Use freebase entity ranking.
+      schema - Use schema ranking for properties and types.
+  filter: string, A filter to apply to the query. (repeated)
+  prefixed: boolean, Prefix match against names and aliases.
+  with: string, A rule to match against. (repeated)
+  mid: string, A mid to use instead of a query. (repeated)
+  encode: string, The encoding of the response. You can use this parameter to enable html encoding.
+    Allowed values
+      html - Encode certain characters in the response (such as tags and ambersands) using html encoding.
+      off - No encoding of the response. You should not print the results directly on an web page without html-escaping the content first.
+  limit: integer, Maximum number of results to return.
+  type: string, Restrict to topics with this Freebase type id. (repeated)
+  as_of_time: string, A mql as_of_time value to use with mql_output queries.
+  stemmed: boolean, Query on stemmed names and aliases. May not be used with prefixed.
+  format: string, Structural format of the json response.
+    Allowed values
+      ac - Compact format useful for autocomplete/suggest UIs.
+      classic - [DEPRECATED] Same format as was returned by api.freebase.com.
+      entity - Basic information about the entities.
+      guids - [DEPRECATED] Ordered list of a freebase guids.
+      ids - Ordered list of freebase ids.
+      mids - Ordered list of freebase mids.
+  spell: string, Request 'did you mean' suggestions
+    Allowed values
+      always - Request spelling suggestions for any query at least three characters long.
+      no_results - Request spelling suggestions if no results were found.
+      no_spelling - Don't request spelling suggestions.
+  exact: boolean, Query on exact name and keys only.
+  lang: string, The code of the language to run the query with. Default is 'en'. (repeated)
+  indent: boolean, Whether to indent the json results or not.
+  cursor: integer, The cursor value to use for the next page of results.
+  callback: string, JS method name for JSONP callbacks.
+  without: string, A rule to not match against. (repeated)
+  output: string, An output expression to request data from matches.
+  mql_output: string, The MQL query to run againist the results to extract more data.
+</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/fusiontables_v1.column.html b/docs/dyn/fusiontables_v1.column.html
new file mode 100644
index 0000000..c5ea4c5
--- /dev/null
+++ b/docs/dyn/fusiontables_v1.column.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_v1.html">Fusion Tables API</a> . <a href="fusiontables_v1.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 id, name and type of a column in a table.
+      "kind": "fusiontables#column", # Type name: a template for an individual column.
+      "type": "A String", # Required type of the column.
+      "columnId": 42, # Identifier for the column.
+      "name": "A String", # Required name of the column.
+      "baseColumn": { # Optional 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.
+      },
+    }</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 id, name and type of a column in a table.
+    "kind": "fusiontables#column", # Type name: a template for an individual column.
+    "type": "A String", # Required type of the column.
+    "columnId": 42, # Identifier for the column.
+    "name": "A String", # Required name of the column.
+    "baseColumn": { # Optional 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.
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Specifies the id, name and type of a column in a table.
+      "kind": "fusiontables#column", # Type name: a template for an individual column.
+      "type": "A String", # Required type of the column.
+      "columnId": 42, # Identifier for the column.
+      "name": "A String", # Required name of the column.
+      "baseColumn": { # Optional 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.
+      },
+    }</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. Optional.
+  maxResults: integer, Maximum number of columns to return. Optional. 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 id, name and type of a column in a table.
+          "kind": "fusiontables#column", # Type name: a template for an individual column.
+          "type": "A String", # Required type of the column.
+          "columnId": 42, # Identifier for the column.
+          "name": "A String", # Required name of the column.
+          "baseColumn": { # Optional 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.
+          },
+        },
+    ],
+    "kind": "fusiontables#columnList", # Type name: a list of all tables.
+    "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 id, name and type of a column in a table.
+    "kind": "fusiontables#column", # Type name: a template for an individual column.
+    "type": "A String", # Required type of the column.
+    "columnId": 42, # Identifier for the column.
+    "name": "A String", # Required name of the column.
+    "baseColumn": { # Optional 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.
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Specifies the id, name and type of a column in a table.
+      "kind": "fusiontables#column", # Type name: a template for an individual column.
+      "type": "A String", # Required type of the column.
+      "columnId": 42, # Identifier for the column.
+      "name": "A String", # Required name of the column.
+      "baseColumn": { # Optional 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.
+      },
+    }</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 id, name and type of a column in a table.
+    "kind": "fusiontables#column", # Type name: a template for an individual column.
+    "type": "A String", # Required type of the column.
+    "columnId": 42, # Identifier for the column.
+    "name": "A String", # Required name of the column.
+    "baseColumn": { # Optional 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.
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Specifies the id, name and type of a column in a table.
+      "kind": "fusiontables#column", # Type name: a template for an individual column.
+      "type": "A String", # Required type of the column.
+      "columnId": 42, # Identifier for the column.
+      "name": "A String", # Required name of the column.
+      "baseColumn": { # Optional 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.
+      },
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/fusiontables_v1.html b/docs/dyn/fusiontables_v1.html
new file mode 100644
index 0000000..b5c0ca6
--- /dev/null
+++ b/docs/dyn/fusiontables_v1.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="fusiontables_v1.html">Fusion Tables API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="fusiontables_v1.column.html">column()</a></code>
+</p>
+<p class="firstline">Returns the column Resource.</p>
+
+<p class="toc_element">
+  <code><a href="fusiontables_v1.query.html">query()</a></code>
+</p>
+<p class="firstline">Returns the query Resource.</p>
+
+<p class="toc_element">
+  <code><a href="fusiontables_v1.style.html">style()</a></code>
+</p>
+<p class="firstline">Returns the style Resource.</p>
+
+<p class="toc_element">
+  <code><a href="fusiontables_v1.table.html">table()</a></code>
+</p>
+<p class="firstline">Returns the table Resource.</p>
+
+<p class="toc_element">
+  <code><a href="fusiontables_v1.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_v1.query.html b/docs/dyn/fusiontables_v1.query.html
new file mode 100644
index 0000000..a4ac39a
--- /dev/null
+++ b/docs/dyn/fusiontables_v1.query.html
@@ -0,0 +1,134 @@
+<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_v1.html">Fusion Tables API</a> . <a href="fusiontables_v1.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>
+<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>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/fusiontables_v1.style.html b/docs/dyn/fusiontables_v1.style.html
new file mode 100644
index 0000000..f2d1e75
--- /dev/null
+++ b/docs/dyn/fusiontables_v1.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_v1.html">Fusion Tables API</a> . <a href="fusiontables_v1.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_v1.table.html b/docs/dyn/fusiontables_v1.table.html
new file mode 100644
index 0000000..0157063
--- /dev/null
+++ b/docs/dyn/fusiontables_v1.table.html
@@ -0,0 +1,511 @@
+<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_v1.html">Fusion Tables API</a> . <a href="fusiontables_v1.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="#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. Specifies the name, whether it is exportable, description, attribution, and attribution link.
+      "kind": "fusiontables#table", # Type name: a template for an individual table.
+      "attribution": "A String", # Optional attribution assigned to the table.
+      "description": "A String", # Optional description assigned to the table.
+      "isExportable": True or False, # Variable for whether table is exportable.
+      "baseTableIds": [ # Optional base table identifier if this table is a view or merged table.
+        "A String",
+      ],
+      "attributionLink": "A String", # Optional link for attribution.
+      "sql": "A String", # Optional 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 id, name and type of a column in a table.
+            "kind": "fusiontables#column", # Type name: a template for an individual column.
+            "type": "A String", # Required type of the column.
+            "columnId": 42, # Identifier for the column.
+            "name": "A String", # Required name of the column.
+            "baseColumn": { # Optional 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 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. Specifies the name, whether it is exportable, description, attribution, and attribution link.
+      "kind": "fusiontables#table", # Type name: a template for an individual table.
+      "attribution": "A String", # Optional attribution assigned to the table.
+      "description": "A String", # Optional description assigned to the table.
+      "isExportable": True or False, # Variable for whether table is exportable.
+      "baseTableIds": [ # Optional base table identifier if this table is a view or merged table.
+        "A String",
+      ],
+      "attributionLink": "A String", # Optional link for attribution.
+      "sql": "A String", # Optional 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 id, name and type of a column in a table.
+            "kind": "fusiontables#column", # Type name: a template for an individual column.
+            "type": "A String", # Required type of the column.
+            "columnId": 42, # Identifier for the column.
+            "name": "A String", # Required name of the column.
+            "baseColumn": { # Optional 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 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. Specifies the name, whether it is exportable, description, attribution, and attribution link.
+      "kind": "fusiontables#table", # Type name: a template for an individual table.
+      "attribution": "A String", # Optional attribution assigned to the table.
+      "description": "A String", # Optional description assigned to the table.
+      "isExportable": True or False, # Variable for whether table is exportable.
+      "baseTableIds": [ # Optional base table identifier if this table is a view or merged table.
+        "A String",
+      ],
+      "attributionLink": "A String", # Optional link for attribution.
+      "sql": "A String", # Optional 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 id, name and type of a column in a table.
+            "kind": "fusiontables#column", # Type name: a template for an individual column.
+            "type": "A String", # Required type of the column.
+            "columnId": 42, # Identifier for the column.
+            "name": "A String", # Required name of the column.
+            "baseColumn": { # Optional 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 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. Specifies the name, whether it is exportable, description, attribution, and attribution link.
+    "kind": "fusiontables#table", # Type name: a template for an individual table.
+    "attribution": "A String", # Optional attribution assigned to the table.
+    "description": "A String", # Optional description assigned to the table.
+    "isExportable": True or False, # Variable for whether table is exportable.
+    "baseTableIds": [ # Optional base table identifier if this table is a view or merged table.
+      "A String",
+    ],
+    "attributionLink": "A String", # Optional link for attribution.
+    "sql": "A String", # Optional 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 id, name and type of a column in a table.
+          "kind": "fusiontables#column", # Type name: a template for an individual column.
+          "type": "A String", # Required type of the column.
+          "columnId": 42, # Identifier for the column.
+          "name": "A String", # Required name of the column.
+          "baseColumn": { # Optional 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 assigned to a table.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Represents a table. Specifies the name, whether it is exportable, description, attribution, and attribution link.
+      "kind": "fusiontables#table", # Type name: a template for an individual table.
+      "attribution": "A String", # Optional attribution assigned to the table.
+      "description": "A String", # Optional description assigned to the table.
+      "isExportable": True or False, # Variable for whether table is exportable.
+      "baseTableIds": [ # Optional base table identifier if this table is a view or merged table.
+        "A String",
+      ],
+      "attributionLink": "A String", # Optional link for attribution.
+      "sql": "A String", # Optional 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 id, name and type of a column in a table.
+            "kind": "fusiontables#column", # Type name: a template for an individual column.
+            "type": "A String", # Required type of the column.
+            "columnId": 42, # Identifier for the column.
+            "name": "A String", # Required name of the column.
+            "baseColumn": { # Optional 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 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. Specifies the name, whether it is exportable, description, attribution, and attribution link.
+          "kind": "fusiontables#table", # Type name: a template for an individual table.
+          "attribution": "A String", # Optional attribution assigned to the table.
+          "description": "A String", # Optional description assigned to the table.
+          "isExportable": True or False, # Variable for whether table is exportable.
+          "baseTableIds": [ # Optional base table identifier if this table is a view or merged table.
+            "A String",
+          ],
+          "attributionLink": "A String", # Optional link for attribution.
+          "sql": "A String", # Optional 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 id, name and type of a column in a table.
+                "kind": "fusiontables#column", # Type name: a template for an individual column.
+                "type": "A String", # Required type of the column.
+                "columnId": 42, # Identifier for the column.
+                "name": "A String", # Required name of the column.
+                "baseColumn": { # Optional 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 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. Specifies the name, whether it is exportable, description, attribution, and attribution link.
+    "kind": "fusiontables#table", # Type name: a template for an individual table.
+    "attribution": "A String", # Optional attribution assigned to the table.
+    "description": "A String", # Optional description assigned to the table.
+    "isExportable": True or False, # Variable for whether table is exportable.
+    "baseTableIds": [ # Optional base table identifier if this table is a view or merged table.
+      "A String",
+    ],
+    "attributionLink": "A String", # Optional link for attribution.
+    "sql": "A String", # Optional 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 id, name and type of a column in a table.
+          "kind": "fusiontables#column", # Type name: a template for an individual column.
+          "type": "A String", # Required type of the column.
+          "columnId": 42, # Identifier for the column.
+          "name": "A String", # Required name of the column.
+          "baseColumn": { # Optional 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 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. Specifies the name, whether it is exportable, description, attribution, and attribution link.
+      "kind": "fusiontables#table", # Type name: a template for an individual table.
+      "attribution": "A String", # Optional attribution assigned to the table.
+      "description": "A String", # Optional description assigned to the table.
+      "isExportable": True or False, # Variable for whether table is exportable.
+      "baseTableIds": [ # Optional base table identifier if this table is a view or merged table.
+        "A String",
+      ],
+      "attributionLink": "A String", # Optional link for attribution.
+      "sql": "A String", # Optional 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 id, name and type of a column in a table.
+            "kind": "fusiontables#column", # Type name: a template for an individual column.
+            "type": "A String", # Required type of the column.
+            "columnId": 42, # Identifier for the column.
+            "name": "A String", # Required name of the column.
+            "baseColumn": { # Optional 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 assigned to a table.
+    }</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. Specifies the name, whether it is exportable, description, attribution, and attribution link.
+    "kind": "fusiontables#table", # Type name: a template for an individual table.
+    "attribution": "A String", # Optional attribution assigned to the table.
+    "description": "A String", # Optional description assigned to the table.
+    "isExportable": True or False, # Variable for whether table is exportable.
+    "baseTableIds": [ # Optional base table identifier if this table is a view or merged table.
+      "A String",
+    ],
+    "attributionLink": "A String", # Optional link for attribution.
+    "sql": "A String", # Optional 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 id, name and type of a column in a table.
+          "kind": "fusiontables#column", # Type name: a template for an individual column.
+          "type": "A String", # Required type of the column.
+          "columnId": 42, # Identifier for the column.
+          "name": "A String", # Required name of the column.
+          "baseColumn": { # Optional 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 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. Specifies the name, whether it is exportable, description, attribution, and attribution link.
+      "kind": "fusiontables#table", # Type name: a template for an individual table.
+      "attribution": "A String", # Optional attribution assigned to the table.
+      "description": "A String", # Optional description assigned to the table.
+      "isExportable": True or False, # Variable for whether table is exportable.
+      "baseTableIds": [ # Optional base table identifier if this table is a view or merged table.
+        "A String",
+      ],
+      "attributionLink": "A String", # Optional link for attribution.
+      "sql": "A String", # Optional 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 id, name and type of a column in a table.
+            "kind": "fusiontables#column", # Type name: a template for an individual column.
+            "type": "A String", # Required type of the column.
+            "columnId": 42, # Identifier for the column.
+            "name": "A String", # Required name of the column.
+            "baseColumn": { # Optional 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 assigned to a table.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/fusiontables_v1.template.html b/docs/dyn/fusiontables_v1.template.html
new file mode 100644
index 0000000..f887c49
--- /dev/null
+++ b/docs/dyn/fusiontables_v1.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_v1.html">Fusion Tables API</a> . <a href="fusiontables_v1.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/gamesManagement_v1management.achievements.html b/docs/dyn/gamesManagement_v1management.achievements.html
new file mode 100644
index 0000000..72bcb7b
--- /dev/null
+++ b/docs/dyn/gamesManagement_v1management.achievements.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="gamesManagement_v1management.html">Google Play Game Services Management API</a> . <a href="gamesManagement_v1management.achievements.html">achievements</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#reset">reset(achievementId)</a></code></p>
+<p class="firstline">Resets the achievement 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 achievements 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(achievementId)</a></code></p>
+<p class="firstline">Resets the achievement with the given ID for the all players. This method is only available to user accounts for your developer console. Only draft achievements can be reset.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="reset">reset(achievementId)</code>
+  <pre>Resets the achievement with the given ID for the currently authenticated player. This method is only accessible to whitelisted tester accounts for your application.
+
+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 reset response.
+    "definitionId": "A String", # The ID of an achievement for which player state has been updated.
+    "kind": "gamesManagement#achievementResetResponse", # Uniquely identifies the type of this resource. Value is always the fixed string gamesManagement#achievementResetResponse.
+    "updateOccurred": True or False, # Flag to indicate if the requested update actually occurred.
+    "currentState": "A String", # The current state of the achievement. This is the same as the initial state of the achievement.
+        # Possible values are:
+        # - "HIDDEN"- Achievement is hidden.
+        # - "REVEALED" - Achievement is revealed.
+        # - "UNLOCKED" - Achievement is unlocked.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="resetAll">resetAll()</code>
+  <pre>Resets all achievements for the currently authenticated player for your application. 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 achievement reset all response.
+    "kind": "gamesManagement#achievementResetAllResponse", # Uniquely identifies the type of this resource. Value is always the fixed string gamesManagement#achievementResetAllResponse.
+    "results": [ # The achievement reset results.
+      { # This is a JSON template for an achievement reset response.
+        "definitionId": "A String", # The ID of an achievement for which player state has been updated.
+        "kind": "gamesManagement#achievementResetResponse", # Uniquely identifies the type of this resource. Value is always the fixed string gamesManagement#achievementResetResponse.
+        "updateOccurred": True or False, # Flag to indicate if the requested update actually occurred.
+        "currentState": "A String", # The current state of the achievement. This is the same as the initial state of the achievement.
+            # Possible values are:
+            # - "HIDDEN"- Achievement is hidden.
+            # - "REVEALED" - Achievement is revealed.
+            # - "UNLOCKED" - Achievement is unlocked.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="resetForAllPlayers">resetForAllPlayers(achievementId)</code>
+  <pre>Resets the achievement with the given ID for the all players. This method is only available to user accounts for your developer console. Only draft achievements can be reset.
+
+Args:
+  achievementId: string, The ID of the achievement used by this method. (required)
+</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gamesManagement_v1management.applications.html b/docs/dyn/gamesManagement_v1management.applications.html
new file mode 100644
index 0000000..09cedc9
--- /dev/null
+++ b/docs/dyn/gamesManagement_v1management.applications.html
@@ -0,0 +1,136 @@
+<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="gamesManagement_v1management.html">Google Play Game Services Management API</a> . <a href="gamesManagement_v1management.applications.html">applications</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#listHidden">listHidden(applicationId, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Get the list of players hidden from the given application. This method is only available to user accounts for your developer console.</p>
+<p class="toc_element">
+  <code><a href="#listHidden_next">listHidden_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="listHidden">listHidden(applicationId, pageToken=None, maxResults=None)</code>
+  <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)
+  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.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for a list of hidden players.
+    "nextPageToken": "A String", # The pagination token for the next page of results.
+    "items": [ # The players.
+      { # This is a JSON template for the HiddenPlayer resource.
+        "player": { # This is a JSON template for a Player resource. # The player information.
+          "kind": "gamesManagement#player", # Uniquely identifies the type of this resource. Value is always the fixed string gamesManagement#player.
+          "displayName": "A String", # The name to display for the player.
+          "name": { # An object representation of the individual components of the player's name.
+            "givenName": "A String", # The given name (first name) of this player.
+            "familyName": "A String", # The family name (last name) of this player.
+          },
+          "lastPlayedWith": { # This is a JSON template for 3P metadata about a player playing a game. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
+            "autoMatched": True or False, # True if the player was auto-matched with the currently authenticated user.
+            "timeMillis": "A String", # The last time the player played the game in milliseconds since the epoch in UTC.
+          },
+          "playerId": "A String", # The ID of the player.
+          "avatarImageUrl": "A String", # The base URL for the image that represents the player.
+        },
+        "kind": "gamesManagement#hiddenPlayer", # Uniquely identifies the type of this resource. Value is always the fixed string gamesManagement#hiddenPlayer.
+        "hiddenTimeMillis": "A String", # The time this player was hidden.
+      },
+    ],
+    "kind": "gamesManagement#hiddenPlayerList", # Uniquely identifies the type of this resource. Value is always the fixed string gamesManagement#hiddenPlayerList.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="listHidden_next">listHidden_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/gamesManagement_v1management.html b/docs/dyn/gamesManagement_v1management.html
new file mode 100644
index 0000000..a5a505a
--- /dev/null
+++ b/docs/dyn/gamesManagement_v1management.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="gamesManagement_v1management.html">Google Play Game Services Management API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="gamesManagement_v1management.achievements.html">achievements()</a></code>
+</p>
+<p class="firstline">Returns the achievements Resource.</p>
+
+<p class="toc_element">
+  <code><a href="gamesManagement_v1management.applications.html">applications()</a></code>
+</p>
+<p class="firstline">Returns the applications Resource.</p>
+
+<p class="toc_element">
+  <code><a href="gamesManagement_v1management.players.html">players()</a></code>
+</p>
+<p class="firstline">Returns the players Resource.</p>
+
+<p class="toc_element">
+  <code><a href="gamesManagement_v1management.rooms.html">rooms()</a></code>
+</p>
+<p class="firstline">Returns the rooms Resource.</p>
+
+<p class="toc_element">
+  <code><a href="gamesManagement_v1management.scores.html">scores()</a></code>
+</p>
+<p class="firstline">Returns the scores Resource.</p>
+
+<p class="toc_element">
+  <code><a href="gamesManagement_v1management.turnBasedMatches.html">turnBasedMatches()</a></code>
+</p>
+<p class="firstline">Returns the turnBasedMatches Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gamesManagement_v1management.players.html b/docs/dyn/gamesManagement_v1management.players.html
new file mode 100644
index 0000000..01976b6
--- /dev/null
+++ b/docs/dyn/gamesManagement_v1management.players.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="gamesManagement_v1management.html">Google Play Game Services Management API</a> . <a href="gamesManagement_v1management.players.html">players</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#hide">hide(applicationId, playerId)</a></code></p>
+<p class="firstline">Hide the given player's leaderboard scores from the given application. This method is only available to user accounts for your developer console.</p>
+<p class="toc_element">
+  <code><a href="#unhide">unhide(applicationId, playerId)</a></code></p>
+<p class="firstline">Unhide the given player's leaderboard scores from the given 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="hide">hide(applicationId, playerId)</code>
+  <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)
+  playerId: string, A player ID. A value of me may be used in place of the authenticated player's ID. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="unhide">unhide(applicationId, playerId)</code>
+  <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)
+  playerId: string, A player ID. A value of me may be used in place of the authenticated player's ID. (required)
+</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
new file mode 100644
index 0000000..1670f3f
--- /dev/null
+++ b/docs/dyn/gamesManagement_v1management.rooms.html
@@ -0,0 +1,89 @@
+<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="gamesManagement_v1management.html">Google Play Game Services Management API</a> . <a href="gamesManagement_v1management.rooms.html">rooms</a></h1>
+<h2>Instance Methods</h2>
+<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>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="reset">reset()</code>
+  <pre>Reset all rooms for the currently authenticated player for your application. This method is only accessible to whitelisted tester accounts for your application.
+
+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
new file mode 100644
index 0000000..9ad957f
--- /dev/null
+++ b/docs/dyn/gamesManagement_v1management.scores.html
@@ -0,0 +1,115 @@
+<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="gamesManagement_v1management.html">Google Play Game Services Management API</a> . <a href="gamesManagement_v1management.scores.html">scores</a></h1>
+<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="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>
+<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.
+
+Args:
+  leaderboardId: string, The ID of the leaderboard. (required)
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for a list of reset leaderboard entry resources.
+    "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="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.
+
+Args:
+  leaderboardId: string, The ID of the leaderboard. (required)
+</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
new file mode 100644
index 0000000..e2d1ddb
--- /dev/null
+++ b/docs/dyn/gamesManagement_v1management.turnBasedMatches.html
@@ -0,0 +1,89 @@
+<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="gamesManagement_v1management.html">Google Play Game Services Management API</a> . <a href="gamesManagement_v1management.turnBasedMatches.html">turnBasedMatches</a></h1>
+<h2>Instance Methods</h2>
+<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>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="reset">reset()</code>
+  <pre>Reset all turn-based match data for a user. This method is only accessible to whitelisted tester accounts for your application.
+
+Args:
+</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/games_v1.achievementDefinitions.html b/docs/dyn/games_v1.achievementDefinitions.html
new file mode 100644
index 0000000..141de39
--- /dev/null
+++ b/docs/dyn/games_v1.achievementDefinitions.html
@@ -0,0 +1,139 @@
+<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="games_v1.html">Google Play Game Services API</a> . <a href="games_v1.achievementDefinitions.html">achievementDefinitions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(pageToken=None, language=None, maxResults=None)</a></code></p>
+<p class="firstline">Lists all the achievement definitions for your 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>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(pageToken=None, language=None, maxResults=None)</code>
+  <pre>Lists all the achievement definitions for your application.
+
+Args:
+  pageToken: string, The token returned by the previous request.
+  language: string, The preferred language to use for strings returned by this method.
+  maxResults: integer, The maximum number of achievement resources to return in the response, used for paging. For any response, the actual number of achievement resources returned may be less than the specified maxResults.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for a list of achievement definition objects.
+    "nextPageToken": "A String", # Token corresponding to the next page of results.
+    "items": [ # The achievement definitions.
+      { # This is a JSON template for an achievement definition object.
+        "totalSteps": 42, # The total steps for an incremental achievement.
+        "achievementType": "A String", # The type of the achievement.
+            # Possible values are:
+            # - "STANDARD" - Achievement is either locked or unlocked.
+            # - "INCREMENTAL" - Achievement is incremental.
+        "description": "A String", # The description of the achievement.
+        "revealedIconUrl": "A String", # The image URL for the revealed achievement icon.
+        "formattedTotalSteps": "A String", # The total steps for an incremental achievement as a string.
+        "kind": "games#achievementDefinition", # Uniquely identifies the type of this resource. Value is always the fixed string games#achievementDefinition.
+        "initialState": "A String", # The initial state of the achievement.
+            # Possible values are:
+            # - "HIDDEN" - Achievement is hidden.
+            # - "REVEALED" - Achievement is revealed.
+            # - "UNLOCKED" - Achievement is unlocked.
+        "isRevealedIconUrlDefault": True or False, # Indicates whether the revealed icon image being returned is a default image, or is provided by the game.
+        "unlockedIconUrl": "A String", # The image URL for the unlocked achievement icon.
+        "id": "A String", # The ID of the achievement.
+        "isUnlockedIconUrlDefault": True or False, # Indicates whether the unlocked icon image being returned is a default image, or is game-provided.
+        "name": "A String", # The name of the achievement.
+      },
+    ],
+    "kind": "games#achievementDefinitionsListResponse", # Uniquely identifies the type of this resource. Value is always the fixed string games#achievementDefinitionsListResponse.
+  }</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/games_v1.achievements.html b/docs/dyn/games_v1.achievements.html
new file mode 100644
index 0000000..d42895a
--- /dev/null
+++ b/docs/dyn/games_v1.achievements.html
@@ -0,0 +1,280 @@
+<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="games_v1.html">Google Play Game Services API</a> . <a href="games_v1.achievements.html">achievements</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#increment">increment(achievementId, stepsToIncrement, requestId=None)</a></code></p>
+<p class="firstline">Increments the steps of the achievement with the given ID for the currently authenticated player.</p>
+<p class="toc_element">
+  <code><a href="#list">list(playerId, language=None, pageToken=None, state=None, maxResults=None)</a></code></p>
+<p class="firstline">Lists the progress for all your application's achievements for the currently authenticated player.</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="#reveal">reveal(achievementId)</a></code></p>
+<p class="firstline">Sets the state of the achievement with the given ID to REVEALED for the currently authenticated player.</p>
+<p class="toc_element">
+  <code><a href="#setStepsAtLeast">setStepsAtLeast(achievementId, steps)</a></code></p>
+<p class="firstline">Sets the steps for the currently authenticated player towards unlocking an achievement. If the steps parameter is less than the current number of steps that the player already gained for the achievement, the achievement is not modified.</p>
+<p class="toc_element">
+  <code><a href="#unlock">unlock(achievementId)</a></code></p>
+<p class="firstline">Unlocks this achievement for the currently authenticated player.</p>
+<p class="toc_element">
+  <code><a href="#updateMultiple">updateMultiple(body)</a></code></p>
+<p class="firstline">Updates multiple achievements for the currently authenticated player.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="increment">increment(achievementId, stepsToIncrement, requestId=None)</code>
+  <pre>Increments the steps of the achievement with the given ID for the currently authenticated player.
+
+Args:
+  achievementId: string, The ID of the achievement used by this method. (required)
+  stepsToIncrement: integer, The number of steps to increment. (required)
+  requestId: string, A randomly generated numeric ID for each request specified by the caller. This number is used at the server to ensure that the request is handled correctly across retries.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for an achievement increment response
+    "currentSteps": 42, # The current steps recorded for this incremental achievement.
+    "newlyUnlocked": True or False, # Whether the the current steps for the achievement has reached the number of steps required to unlock.
+    "kind": "games#achievementIncrementResponse", # Uniquely identifies the type of this resource. Value is always the fixed string games#achievementIncrementResponse.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(playerId, language=None, pageToken=None, state=None, maxResults=None)</code>
+  <pre>Lists the progress for all your application's achievements for the currently authenticated player.
+
+Args:
+  playerId: string, A player ID. A value of me may be used in place of the authenticated player's ID. (required)
+  language: string, The preferred language to use for strings returned by this method.
+  pageToken: string, The token returned by the previous request.
+  state: string, Tells the server to return only achievements with the specified state. If this parameter isn't specified, all achievements are returned.
+    Allowed values
+      ALL - List all achievements. This is the default.
+      HIDDEN - List only hidden achievements.
+      REVEALED - List only revealed achievements.
+      UNLOCKED - List only unlocked achievements.
+  maxResults: integer, The maximum number of achievement resources to return in the response, used for paging. For any response, the actual number of achievement resources returned may be less than the specified maxResults.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for a list of achievement objects.
+    "nextPageToken": "A String", # Token corresponding to the next page of results.
+    "items": [ # The achievements.
+      { # This is a JSON template for an achievement object.
+        "achievementState": "A String", # The state of the achievement.
+            # Possible values are:
+            # - "HIDDEN" - Achievement is hidden.
+            # - "REVEALED" - Achievement is revealed.
+            # - "UNLOCKED" - Achievement is unlocked.
+        "kind": "games#playerAchievement", # Uniquely identifies the type of this resource. Value is always the fixed string games#playerAchievement.
+        "lastUpdatedTimestamp": "A String", # The timestamp of the last modification to this achievement's state.
+        "currentSteps": 42, # The current steps for an incremental achievement.
+        "formattedCurrentStepsString": "A String", # The current steps for an incremental achievement as a string.
+        "id": "A String", # The ID of the achievement.
+      },
+    ],
+    "kind": "games#playerAchievementListResponse", # Uniquely identifies the type of this resource. Value is always the fixed string games#playerAchievementListResponse.
+  }</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="reveal">reveal(achievementId)</code>
+  <pre>Sets the state of the achievement with the given ID to REVEALED for the currently authenticated player.
+
+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 reveal response
+    "kind": "games#achievementRevealResponse", # Uniquely identifies the type of this resource. Value is always the fixed string games#achievementRevealResponse.
+    "currentState": "A String", # The current state of the achievement for which a reveal was attempted. This might be UNLOCKED if the achievement was already unlocked.
+        # Possible values are:
+        # - "REVEALED" - Achievement is revealed.
+        # - "UNLOCKED" - Achievement is unlocked.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setStepsAtLeast">setStepsAtLeast(achievementId, steps)</code>
+  <pre>Sets the steps for the currently authenticated player towards unlocking an achievement. If the steps parameter is less than the current number of steps that the player already gained for the achievement, the achievement is not modified.
+
+Args:
+  achievementId: string, The ID of the achievement used by this method. (required)
+  steps: integer, The minimum value to set the steps to. (required)
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for an achievement set steps at least response.
+    "currentSteps": 42, # The current steps recorded for this incremental achievement.
+    "newlyUnlocked": True or False, # Whether the the current steps for the achievement has reached the number of steps required to unlock.
+    "kind": "games#achievementSetStepsAtLeastResponse", # Uniquely identifies the type of this resource. Value is always the fixed string games#achievementSetStepsAtLeastResponse.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="unlock">unlock(achievementId)</code>
+  <pre>Unlocks this achievement for the currently authenticated player.
+
+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 unlock response
+    "newlyUnlocked": True or False, # Whether this achievement was newly unlocked (that is, whether the unlock request for the achievement was the first for the player).
+    "kind": "games#achievementUnlockResponse", # Uniquely identifies the type of this resource. Value is always the fixed string games#achievementUnlockResponse.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="updateMultiple">updateMultiple(body)</code>
+  <pre>Updates multiple achievements for the currently authenticated player.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # This is a JSON template for a list of achievement update requests.
+    "kind": "games#achievementUpdateMultipleRequest", # Uniquely identifies the type of this resource. Value is always the fixed string games#achievementUpdateMultipleRequest.
+    "updates": [ # The individual achievement update requests.
+      { # This is a JSON template for a request to update an achievement.
+        "setStepsAtLeastPayload": { # This is a JSON template for the payload to request to increment an achievement. # The payload if an update of type SET_STEPS_AT_LEAST was requested for the achievement.
+          "kind": "games#GamesAchievementSetStepsAtLeast", # Uniquely identifies the type of this resource. Value is always the fixed string games#GamesAchievementSetStepsAtLeast.
+          "steps": 42, # The minimum number of steps for the achievement to be set to.
+        },
+        "updateType": "A String", # The type of update being applied.
+            # Possible values are:
+            # - "REVEAL" - Achievement is revealed.
+            # - "UNLOCK" - Achievement is unlocked.
+            # - "INCREMENT" - Achievement is incremented.
+            # - "SET_STEPS_AT_LEAST" - Achievement progress is set to at least the passed value.
+        "kind": "games#achievementUpdateRequest", # Uniquely identifies the type of this resource. Value is always the fixed string games#achievementUpdateRequest.
+        "achievementId": "A String", # The achievement this update is being applied to.
+        "incrementPayload": { # This is a JSON template for the payload to request to increment an achievement. # The payload if an update of type INCREMENT was requested for the achievement.
+          "kind": "games#GamesAchievementIncrement", # Uniquely identifies the type of this resource. Value is always the fixed string games#GamesAchievementIncrement.
+          "steps": 42, # The number of steps to be incremented.
+          "requestId": "A String", # The requestId associated with an increment to an achievement.
+        },
+      },
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for an achievement unlock response.
+    "kind": "games#achievementUpdateMultipleResponse", # Uniquely identifies the type of this resource. Value is always the fixed string games#achievementUpdateListResponse.
+    "updatedAchievements": [ # The updated state of the achievements.
+      { # This is a JSON template for an achievement update response.
+        "kind": "games#achievementUpdateResponse", # Uniquely identifies the type of this resource. Value is always the fixed string games#achievementUpdateResponse.
+        "achievementId": "A String", # The achievement this update is was applied to.
+        "currentSteps": 42, # The current steps recorded for this achievement if it is incremental.
+        "newlyUnlocked": True or False, # Whether this achievement was newly unlocked (that is, whether the unlock request for the achievement was the first for the player).
+        "updateOccurred": True or False, # Whether the requested updates actually affected the achievement.
+        "currentState": "A String", # The current state of the achievement.
+            # Possible values are:
+            # - "HIDDEN" - Achievement is hidden.
+            # - "REVEALED" - Achievement is revealed.
+            # - "UNLOCKED" - Achievement is unlocked.
+      },
+    ],
+  }</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
new file mode 100644
index 0000000..5ae1305
--- /dev/null
+++ b/docs/dyn/games_v1.applications.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="games_v1.html">Google Play Game Services API</a> . <a href="games_v1.applications.html">applications</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(applicationId, language=None, platformType=None)</a></code></p>
+<p class="firstline">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.</p>
+<p class="toc_element">
+  <code><a href="#played">played()</a></code></p>
+<p class="firstline">Indicate that the the currently authenticated user is playing your application.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(applicationId, language=None, platformType=None)</code>
+  <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)
+  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
+      ANDROID - Retrieve applications that can be played on Android.
+      IOS - Retrieve applications that can be played on iOS.
+      WEB_APP - Retrieve applications that can be played on desktop web.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for the Application resource.
+    "category": { # This is a JSON template for an application category object. # The category of the application.
+      "kind": "games#applicationCategory", # Uniquely identifies the type of this resource. Value is always the fixed string games#applicationCategory.
+      "primary": "A String", # The primary category.
+      "secondary": "A String", # The secondary category.
+    },
+    "kind": "games#application", # Uniquely identifies the type of this resource. Value is always the fixed string games#application.
+    "description": "A String", # The description of the application.
+    "author": "A String", # The author of the application.
+    "lastUpdatedTimestamp": "A String", # The last updated timestamp of the application.
+    "name": "A String", # The name of the application.
+    "instances": [ # The instances of the application.
+      { # This is a JSON template for the Instance resource.
+        "kind": "games#instance", # Uniquely identifies the type of this resource. Value is always the fixed string games#instance.
+        "acquisitionUri": "A String", # URI which shows where a user can acquire this instance.
+        "name": "A String", # Localized display name.
+        "turnBasedPlay": True or False, # Flag to show if this game instance supports turn based play.
+        "webInstance": { # This is a JSON template for the Web details resource. # Platform dependent details for Web.
+          "kind": "games#instanceWebDetails", # Uniquely identifies the type of this resource. Value is always the fixed string games#instanceWebDetails.
+          "launchUrl": "A String", # Launch URL for the game.
+          "preferred": True or False, # Indicates that this instance is the default for new installations.
+        },
+        "androidInstance": { # This is a JSON template for the Android instance details resource. # Platform dependent details for Android.
+          "kind": "games#instanceAndroidDetails", # Uniquely identifies the type of this resource. Value is always the fixed string games#instanceAndroidDetails.
+          "enablePiracyCheck": True or False, # Flag indicating whether the anti-piracy check is enabled.
+          "packageName": "A String", # Android package name which maps to Google Play URL.
+          "preferred": True or False, # Indicates that this instance is the default for new installations.
+        },
+        "iosInstance": { # This is a JSON template for the iOS details resource. # Platform dependent details for iOS.
+          "kind": "games#instanceIosDetails", # Uniquely identifies the type of this resource. Value is always the fixed string games#instanceIosDetails.
+          "supportIphone": True or False, # Flag to indicate if this instance supports iPhone.
+          "preferredForIpad": True or False, # Indicates that this instance is the default for new installations on iPad devices.
+          "itunesAppId": "A String", # iTunes App ID.
+          "bundleIdentifier": "A String", # Bundle identifier.
+          "supportIpad": True or False, # Flag to indicate if this instance supports iPad.
+          "preferredForIphone": True or False, # Indicates that this instance is the default for new installations on iPhone devices.
+        },
+        "platformType": "A String", # The platform type.
+            # Possible values are:
+            # - "ANDROID" - Instance is for Android.
+            # - "IOS" - Instance is for iOS
+            # - "WEB_APP" - Instance is for Web App.
+        "realtimePlay": True or False, # Flag to show if this game instance supports realtime play.
+      },
+    ],
+    "achievement_count": 42, # The number of achievements visible to the currently authenticated player.
+    "leaderboard_count": 42, # The number of leaderboards visible to the currently authenticated player.
+    "id": "A String", # The ID of the application.
+    "assets": [ # The assets of the application.
+      { # This is a JSON template for an image asset object.
+        "url": "A String", # The URL of the asset.
+        "width": 42, # The width of the asset.
+        "kind": "games#imageAsset", # Uniquely identifies the type of this resource. Value is always the fixed string games#imageAsset.
+        "name": "A String", # The name of the asset.
+        "height": 42, # The height of the asset.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="played">played()</code>
+  <pre>Indicate that the the currently authenticated user is playing your application.
+
+Args:
+</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/games_v1.html b/docs/dyn/games_v1.html
new file mode 100644
index 0000000..b167fc4
--- /dev/null
+++ b/docs/dyn/games_v1.html
@@ -0,0 +1,127 @@
+<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="games_v1.html">Google Play Game Services API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="games_v1.achievementDefinitions.html">achievementDefinitions()</a></code>
+</p>
+<p class="firstline">Returns the achievementDefinitions Resource.</p>
+
+<p class="toc_element">
+  <code><a href="games_v1.achievements.html">achievements()</a></code>
+</p>
+<p class="firstline">Returns the achievements Resource.</p>
+
+<p class="toc_element">
+  <code><a href="games_v1.applications.html">applications()</a></code>
+</p>
+<p class="firstline">Returns the applications Resource.</p>
+
+<p class="toc_element">
+  <code><a href="games_v1.leaderboards.html">leaderboards()</a></code>
+</p>
+<p class="firstline">Returns the leaderboards Resource.</p>
+
+<p class="toc_element">
+  <code><a href="games_v1.players.html">players()</a></code>
+</p>
+<p class="firstline">Returns the players Resource.</p>
+
+<p class="toc_element">
+  <code><a href="games_v1.pushtokens.html">pushtokens()</a></code>
+</p>
+<p class="firstline">Returns the pushtokens Resource.</p>
+
+<p class="toc_element">
+  <code><a href="games_v1.revisions.html">revisions()</a></code>
+</p>
+<p class="firstline">Returns the revisions Resource.</p>
+
+<p class="toc_element">
+  <code><a href="games_v1.rooms.html">rooms()</a></code>
+</p>
+<p class="firstline">Returns the rooms Resource.</p>
+
+<p class="toc_element">
+  <code><a href="games_v1.scores.html">scores()</a></code>
+</p>
+<p class="firstline">Returns the scores Resource.</p>
+
+<p class="toc_element">
+  <code><a href="games_v1.turnBasedMatches.html">turnBasedMatches()</a></code>
+</p>
+<p class="firstline">Returns the turnBasedMatches Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/games_v1.leaderboards.html b/docs/dyn/games_v1.leaderboards.html
new file mode 100644
index 0000000..e23f328
--- /dev/null
+++ b/docs/dyn/games_v1.leaderboards.html
@@ -0,0 +1,156 @@
+<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="games_v1.html">Google Play Game Services API</a> . <a href="games_v1.leaderboards.html">leaderboards</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(leaderboardId, language=None)</a></code></p>
+<p class="firstline">Retrieves the metadata of the leaderboard with the given ID.</p>
+<p class="toc_element">
+  <code><a href="#list">list(pageToken=None, language=None, maxResults=None)</a></code></p>
+<p class="firstline">Lists all the leaderboard metadata for your 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>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(leaderboardId, language=None)</code>
+  <pre>Retrieves the metadata of the leaderboard with the given ID.
+
+Args:
+  leaderboardId: string, The ID of the leaderboard. (required)
+  language: string, The preferred language to use for strings returned by this method.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for the Leaderboard resource.
+    "kind": "games#leaderboard", # Uniquely identifies the type of this resource. Value is always the fixed string games#leaderboard.
+    "isIconUrlDefault": True or False, # Indicates whether the icon image being returned is a default image, or is game-provided.
+    "name": "A String", # The name of the leaderboard.
+    "id": "A String", # The leaderboard ID.
+    "iconUrl": "A String", # The icon for the leaderboard.
+    "order": "A String", # How scores are ordered.
+        # Possible values are:
+        # - "LARGER_IS_BETTER" - Larger values are better; scores are sorted in descending order.
+        # - "SMALLER_IS_BETTER" - Smaller values are better; scores are sorted in ascending order.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(pageToken=None, language=None, maxResults=None)</code>
+  <pre>Lists all the leaderboard metadata for your application.
+
+Args:
+  pageToken: string, The token returned by the previous request.
+  language: string, The preferred language to use for strings returned by this method.
+  maxResults: integer, The maximum number of leaderboards to return in the response. For any response, the actual number of leaderboards returned may be less than the specified maxResults.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for a list of leaderboard objects.
+    "nextPageToken": "A String", # Token corresponding to the next page of results.
+    "items": [ # The leaderboards.
+      { # This is a JSON template for the Leaderboard resource.
+        "kind": "games#leaderboard", # Uniquely identifies the type of this resource. Value is always the fixed string games#leaderboard.
+        "isIconUrlDefault": True or False, # Indicates whether the icon image being returned is a default image, or is game-provided.
+        "name": "A String", # The name of the leaderboard.
+        "id": "A String", # The leaderboard ID.
+        "iconUrl": "A String", # The icon for the leaderboard.
+        "order": "A String", # How scores are ordered.
+            # Possible values are:
+            # - "LARGER_IS_BETTER" - Larger values are better; scores are sorted in descending order.
+            # - "SMALLER_IS_BETTER" - Smaller values are better; scores are sorted in ascending order.
+      },
+    ],
+    "kind": "games#leaderboardListResponse", # Uniquely identifies the type of this resource. Value is always the fixed string games#leaderboardListResponse.
+  }</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/games_v1.players.html b/docs/dyn/games_v1.players.html
new file mode 100644
index 0000000..c595455
--- /dev/null
+++ b/docs/dyn/games_v1.players.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="games_v1.html">Google Play Game Services API</a> . <a href="games_v1.players.html">players</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(playerId, language=None)</a></code></p>
+<p class="firstline">Retrieves the Player resource with the given ID. To retrieve the player for the currently authenticated user, set playerId to me.</p>
+<p class="toc_element">
+  <code><a href="#list">list(collection, pageToken=None, language=None, maxResults=None)</a></code></p>
+<p class="firstline">Get the collection of players for the currently authenticated user.</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(playerId, language=None)</code>
+  <pre>Retrieves the Player resource with the given ID. To retrieve the player for the currently authenticated user, set playerId to me.
+
+Args:
+  playerId: string, A player ID. A value of me may be used in place of the authenticated player's ID. (required)
+  language: string, The preferred language to use for strings returned by this method.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for a Player resource.
+    "kind": "games#player", # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
+    "displayName": "A String", # The name to display for the player.
+    "name": { # An object representation of the individual components of the player's name.
+      "givenName": "A String", # The given name (first name) of this player.
+      "familyName": "A String", # The family name (last name) of this player.
+    },
+    "lastPlayedWith": { # This is a JSON template for 3P metadata about a player playing a game. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
+      "autoMatched": True or False, # True if the player was auto-matched with the currently authenticated user.
+      "kind": "games#played", # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
+      "timeMillis": "A String", # The last time the player played the game in milliseconds since the epoch in UTC.
+    },
+    "playerId": "A String", # The ID of the player.
+    "avatarImageUrl": "A String", # The base URL for the image that represents the player.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(collection, pageToken=None, language=None, maxResults=None)</code>
+  <pre>Get the collection of players for the currently authenticated user.
+
+Args:
+  collection: string, Collection of players being retrieved (required)
+    Allowed values
+      playedWith - Retrieve a list of players you have played a multiplayer game (realtime or turn-based) with recently.
+  pageToken: string, The token returned by the previous request.
+  language: string, The preferred language to use for strings returned by this method.
+  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.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for a third party player list response.
+    "nextPageToken": "A String", # Token corresponding to the next page of results.
+    "items": [ # The players.
+      { # This is a JSON template for a Player resource.
+        "kind": "games#player", # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
+        "displayName": "A String", # The name to display for the player.
+        "name": { # An object representation of the individual components of the player's name.
+          "givenName": "A String", # The given name (first name) of this player.
+          "familyName": "A String", # The family name (last name) of this player.
+        },
+        "lastPlayedWith": { # This is a JSON template for 3P metadata about a player playing a game. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
+          "autoMatched": True or False, # True if the player was auto-matched with the currently authenticated user.
+          "kind": "games#played", # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
+          "timeMillis": "A String", # The last time the player played the game in milliseconds since the epoch in UTC.
+        },
+        "playerId": "A String", # The ID of the player.
+        "avatarImageUrl": "A String", # The base URL for the image that represents the player.
+      },
+    ],
+    "kind": "games#playerListResponse", # Uniquely identifies the type of this resource. Value is always the fixed string games#playerListResponse.
+  }</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/games_v1.pushtokens.html b/docs/dyn/games_v1.pushtokens.html
new file mode 100644
index 0000000..0a5d931
--- /dev/null
+++ b/docs/dyn/games_v1.pushtokens.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="games_v1.html">Google Play Game Services API</a> . <a href="games_v1.pushtokens.html">pushtokens</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#remove">remove(body)</a></code></p>
+<p class="firstline">Removes a push token for the current user and application. Removing a non-existent push token will report success.</p>
+<p class="toc_element">
+  <code><a href="#update">update(body)</a></code></p>
+<p class="firstline">Registers a push token for the current user and application.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="remove">remove(body)</code>
+  <pre>Removes a push token for the current user and application. Removing a non-existent push token will report success.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # This is a JSON template for a push token ID resource.
+  "kind": "games#pushTokenId", # Uniquely identifies the type of this resource. Value is always the fixed string games#pushTokenId.
+  "ios": { # A push token ID for iOS devices.
+    "apns_device_token": "A String", # Device token supplied by an iOS system call to register for remote notifications. Encode this field as web-safe base64.
+    "apns_environment": "A String", # Use SANDBOX during development for the APNS test server at gateway.sandbox.push.apple.com or PRODUCTION for the production server at gateway.push.apple.com.
+  },
+}
+
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(body)</code>
+  <pre>Registers a push token for the current user and application.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # This is a JSON template for a push token resource.
+    "kind": "games#pushToken", # Uniquely identifies the type of this resource. Value is always the fixed string games#pushToken.
+    "clientRevision": "A String", # The revision of the client SDK used by your application, in the same format that's used by revisions.check. Used to send backward compatible messages. Format: [PLATFORM_TYPE]:[VERSION_NUMBER]. Possible values of PLATFORM_TYPE are:
+        # - IOS - Push token is for iOS
+    "id": { # This is a JSON template for a push token ID resource. # Unique identifier for this push token.
+      "kind": "games#pushTokenId", # Uniquely identifies the type of this resource. Value is always the fixed string games#pushTokenId.
+      "ios": { # A push token ID for iOS devices.
+        "apns_device_token": "A String", # Device token supplied by an iOS system call to register for remote notifications. Encode this field as web-safe base64.
+        "apns_environment": "A String", # Use SANDBOX during development for the APNS test server at gateway.sandbox.push.apple.com or PRODUCTION for the production server at gateway.push.apple.com.
+      },
+    },
+    "language": "A String", # The preferred language for notifications that are sent using this token.
+  }
+
+</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/games_v1.revisions.html b/docs/dyn/games_v1.revisions.html
new file mode 100644
index 0000000..0810e20
--- /dev/null
+++ b/docs/dyn/games_v1.revisions.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="games_v1.html">Google Play Game Services API</a> . <a href="games_v1.revisions.html">revisions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#check">check(clientRevision=None)</a></code></p>
+<p class="firstline">Checks whether the games client is out of date.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="check">check(clientRevision=None)</code>
+  <pre>Checks whether the games client is out of date.
+
+Args:
+  clientRevision: string, The revision of the client SDK used by your application. Format:
+[PLATFORM_TYPE]:[VERSION_NUMBER]. Possible values of PLATFORM_TYPE are:
+ 
+- "ANDROID" - Client is running the Android SDK. 
+- "IOS" - Client is running the iOS SDK. 
+- "WEB_APP" - Client is running as a Web App. (required)
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for the result of checking a revision.
+    "kind": "games#revisionCheckResponse", # Uniquely identifies the type of this resource. Value is always the fixed string games#revisionCheckResponse.
+    "revisionStatus": "A String", # The result of the revision check.
+        # Possible values are:
+        # - "OK" - The revision being used is current.
+        # - "DEPRECATED" - There is currently a newer version available, but the revision being used still works.
+        # - "INVALID" - The revision being used is not supported in any released version.
+    "apiVersion": "A String", # The version of the API this client revision should use when calling API methods.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/games_v1.rooms.html b/docs/dyn/games_v1.rooms.html
new file mode 100644
index 0000000..510bc9a
--- /dev/null
+++ b/docs/dyn/games_v1.rooms.html
@@ -0,0 +1,971 @@
+<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="games_v1.html">Google Play Game Services API</a> . <a href="games_v1.rooms.html">rooms</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#create">create(body, language=None)</a></code></p>
+<p class="firstline">Create a room. For internal use by the Games SDK only. Calling this method directly is unsupported.</p>
+<p class="toc_element">
+  <code><a href="#decline">decline(roomId, language=None)</a></code></p>
+<p class="firstline">Decline an invitation to join a room. For internal use by the Games SDK only. Calling this method directly is unsupported.</p>
+<p class="toc_element">
+  <code><a href="#dismiss">dismiss(roomId)</a></code></p>
+<p class="firstline">Dismiss an invitation to join a room. For internal use by the Games SDK only. Calling this method directly is unsupported.</p>
+<p class="toc_element">
+  <code><a href="#get">get(roomId, language=None)</a></code></p>
+<p class="firstline">Get the data for a room.</p>
+<p class="toc_element">
+  <code><a href="#join">join(roomId, body, language=None)</a></code></p>
+<p class="firstline">Join a room. For internal use by the Games SDK only. Calling this method directly is unsupported.</p>
+<p class="toc_element">
+  <code><a href="#leave">leave(roomId, body, language=None)</a></code></p>
+<p class="firstline">Leave a room. For internal use by the Games SDK only. Calling this method directly is unsupported.</p>
+<p class="toc_element">
+  <code><a href="#list">list(pageToken=None, language=None, maxResults=None)</a></code></p>
+<p class="firstline">Returns invitations to join rooms.</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="#reportStatus">reportStatus(roomId, body, language=None)</a></code></p>
+<p class="firstline">Updates sent by a client reporting the status of peers in a room. For internal use by the Games SDK only. Calling this method directly is unsupported.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(body, language=None)</code>
+  <pre>Create a room. For internal use by the Games SDK only. Calling this method directly is unsupported.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # This is a JSON template for a room creation request.
+    "kind": "games#roomCreateRequest", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomCreateRequest.
+    "autoMatchingCriteria": { # This is a JSON template for a room auto-match criteria object. # Criteria for auto-matching players into this room.
+      "kind": "games#roomAutoMatchingCriteria", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomAutoMatchingCriteria.
+      "minAutoMatchingPlayers": 42, # The minimum number of players that should be added to the room by auto-matching.
+      "exclusiveBitmask": "A String", # A bitmask indicating when auto-matches are valid. When ANDed with other exclusive bitmasks, the result must be zero. Can be used to support exclusive roles within a game.
+      "maxAutoMatchingPlayers": 42, # The maximum number of players that should be added to the room by auto-matching.
+    },
+    "invitedPlayerIds": [ # The player IDs to invite to the room.
+      "A String",
+    ],
+    "variant": 42, # The variant / mode of the application to be played. This can be any integer value, or left blank. You should use a small number of variants to keep the auto-matching pool as large as possible.
+    "capabilities": [ # The capabilities that this client supports for realtime communication.
+      "A String",
+    ],
+    "networkDiagnostics": { # This is a JSON template for network diagnostics reported for a client. # Network diagnostics for the client creating the room.
+      "registrationLatencyMillis": 42, # The amount of time in milliseconds it took for the client to establish a connection with the XMPP server.
+      "iosNetworkType": 42, # iOS network type as defined in Reachability.h.
+      "kind": "games#networkDiagnostics", # Uniquely identifies the type of this resource. Value is always the fixed string games#networkDiagnostics.
+      "androidNetworkSubtype": 42, # The Android network subtype.
+      "androidNetworkType": 42, # The Android network type.
+    },
+    "clientAddress": { # This is a JSON template for the client address when setting up a room. # Client address for the player creating the room.
+      "kind": "games#roomClientAddress", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomClientAddress.
+      "xmppAddress": "A String", # The XMPP address of the client on the Google Games XMPP network.
+    },
+    "requestId": "A String", # A randomly generated numeric ID. This number is used at the server to ensure that the request is handled correctly across retries.
+  }
+
+  language: string, The preferred language to use for strings returned by this method.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for a room resource object.
+    "status": "A String", # The status of the room.
+        # Possible values are:
+        # - "ROOM_INVITING" - One or more players have been invited and not responded.
+        # - "ROOM_AUTO_MATCHING" - One or more slots need to be filled by auto-matching.
+        # - "ROOM_CONNECTING" - Players have joined and are connecting to each other (either before or after auto-matching).
+        # - "ROOM_ACTIVE" - All players have joined and connected to each other.
+        # - "ROOM_DELETED" - The room should no longer be shown on the client. Returned in sync calls when a player joins a room (as a tombstone), or for rooms where all joined participants have left.
+    "kind": "games#room", # Uniquely identifies the type of this resource. Value is always the fixed string games#room.
+    "autoMatchingCriteria": { # This is a JSON template for a room auto-match criteria object. # Criteria for auto-matching players into this room.
+      "kind": "games#roomAutoMatchingCriteria", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomAutoMatchingCriteria.
+      "minAutoMatchingPlayers": 42, # The minimum number of players that should be added to the room by auto-matching.
+      "exclusiveBitmask": "A String", # A bitmask indicating when auto-matches are valid. When ANDed with other exclusive bitmasks, the result must be zero. Can be used to support exclusive roles within a game.
+      "maxAutoMatchingPlayers": 42, # The maximum number of players that should be added to the room by auto-matching.
+    },
+    "creationDetails": { # This is a JSON template for room modification metadata. # Details about the room creation.
+      "kind": "games#roomModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomModification.
+      "modifiedTimestampMillis": "A String", # The timestamp at which they modified the room, in milliseconds since the epoch in UTC.
+      "participantId": "A String", # The ID of the participant that modified the room.
+    },
+    "description": "A String", # This short description is generated by our servers and worded relative to the player requesting the room. It is intended to be displayed when the room is shown in a list (that is, an invitation to a room.)
+    "roomId": "A String", # Globally unique ID for a room.
+    "autoMatchingStatus": { # This is a JSON template for status of room automatching that is in progress. # Auto-matching status for this room. Not set if the room is not currently in the auto-matching queue.
+      "kind": "games#roomAutoMatchStatus", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomAutoMatchStatus.
+      "waitEstimateSeconds": 42, # An estimate for the amount of time (in seconds) that auto-matching is expected to take to complete.
+    },
+    "participants": [ # The participants involved in the room, along with their statuses. Includes participants who have left or declined invitations.
+      { # This is a JSON template for a participant in a room.
+        "autoMatched": True or False, # True if this participant was auto-matched with the requesting player.
+        "status": "A String", # The status of the participant with respect to the room.
+            # Possible values are:
+            # - "PARTICIPANT_INVITED" - The participant has been invited to join the room, but has not yet responded.
+            # - "PARTICIPANT_JOINED" - The participant has joined the room (either after creating it or accepting an invitation.)
+            # - "PARTICIPANT_DECLINED" - The participant declined an invitation to join the room.
+            # - "PARTICIPANT_LEFT" - The participant joined the room and then left it.
+        "kind": "games#roomParticipant", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomParticipant.
+        "autoMatchedPlayer": { # This is a JSON template for an anonymous player # Information about a player that has been anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+          "kind": "games#anonymousPlayer", # Uniquely identifies the type of this resource. Value is always the fixed string games#anonymousPlayer.
+          "avatarImageUrl": "A String", # The base URL for the image to display for the anonymous player.
+          "displayName": "A String", # The name to display for the anonymous player.
+        },
+        "leaveReason": "A String", # The reason the participant left the room; populated if the participant status is PARTICIPANT_LEFT.
+            # Possible values are:
+            # - "PLAYER_LEFT" - The player explicitly chose to leave the room.
+            # - "GAME_LEFT" - The game chose to remove the player from the room.
+            # - "ABANDONED" - The player switched to another application and abandoned the room.
+            # - "PEER_CONNECTION_FAILURE" - The client was unable to establish or maintain a connection to other peer(s) in the room.
+            # - "SERVER_ERROR" - The client received an error response when it tried to communicate with the server.
+            # - "TIMEOUT" - The client timed out while waiting for players to join and connect.
+            # - "PRESENCE_FAILURE" - The client's XMPP connection ended abruptly.
+        "capabilities": [ # The capabilities which can be used when communicating with this participant.
+          "A String",
+        ],
+        "player": { # This is a JSON template for a Player resource. # Information about the player. Not populated if this player was anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+          "kind": "games#player", # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
+          "displayName": "A String", # The name to display for the player.
+          "name": { # An object representation of the individual components of the player's name.
+            "givenName": "A String", # The given name (first name) of this player.
+            "familyName": "A String", # The family name (last name) of this player.
+          },
+          "lastPlayedWith": { # This is a JSON template for 3P metadata about a player playing a game. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
+            "autoMatched": True or False, # True if the player was auto-matched with the currently authenticated user.
+            "kind": "games#played", # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
+            "timeMillis": "A String", # The last time the player played the game in milliseconds since the epoch in UTC.
+          },
+          "playerId": "A String", # The ID of the player.
+          "avatarImageUrl": "A String", # The base URL for the image that represents the player.
+        },
+        "clientAddress": { # This is a JSON template for the client address when setting up a room. # Client address for the participant.
+          "kind": "games#roomClientAddress", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomClientAddress.
+          "xmppAddress": "A String", # The XMPP address of the client on the Google Games XMPP network.
+        },
+        "connected": True or False, # True if this participant is in the fully connected set of peers in the room.
+        "id": "A String", # An identifier for the participant in the scope of the room. Cannot be used to identify a player across rooms or in other contexts.
+      },
+    ],
+    "roomStatusVersion": 42, # The version of the room status: an increasing counter, used by the client to ignore out-of-order updates to room status.
+    "variant": 42, # The variant / mode of the application being played; can be any integer value, or left blank.
+    "lastUpdateDetails": { # This is a JSON template for room modification metadata. # Details about the last update to the room.
+      "kind": "games#roomModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomModification.
+      "modifiedTimestampMillis": "A String", # The timestamp at which they modified the room, in milliseconds since the epoch in UTC.
+      "participantId": "A String", # The ID of the participant that modified the room.
+    },
+    "applicationId": "A String", # The ID of the application being played.
+    "inviterId": "A String", # The ID of the participant that invited the user to the room. Not set if the user was not invited to the room.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="decline">decline(roomId, language=None)</code>
+  <pre>Decline an invitation to join a room. For internal use by the Games SDK only. Calling this method directly is unsupported.
+
+Args:
+  roomId: string, The ID of the room. (required)
+  language: string, The preferred language to use for strings returned by this method.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for a room resource object.
+    "status": "A String", # The status of the room.
+        # Possible values are:
+        # - "ROOM_INVITING" - One or more players have been invited and not responded.
+        # - "ROOM_AUTO_MATCHING" - One or more slots need to be filled by auto-matching.
+        # - "ROOM_CONNECTING" - Players have joined and are connecting to each other (either before or after auto-matching).
+        # - "ROOM_ACTIVE" - All players have joined and connected to each other.
+        # - "ROOM_DELETED" - The room should no longer be shown on the client. Returned in sync calls when a player joins a room (as a tombstone), or for rooms where all joined participants have left.
+    "kind": "games#room", # Uniquely identifies the type of this resource. Value is always the fixed string games#room.
+    "autoMatchingCriteria": { # This is a JSON template for a room auto-match criteria object. # Criteria for auto-matching players into this room.
+      "kind": "games#roomAutoMatchingCriteria", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomAutoMatchingCriteria.
+      "minAutoMatchingPlayers": 42, # The minimum number of players that should be added to the room by auto-matching.
+      "exclusiveBitmask": "A String", # A bitmask indicating when auto-matches are valid. When ANDed with other exclusive bitmasks, the result must be zero. Can be used to support exclusive roles within a game.
+      "maxAutoMatchingPlayers": 42, # The maximum number of players that should be added to the room by auto-matching.
+    },
+    "creationDetails": { # This is a JSON template for room modification metadata. # Details about the room creation.
+      "kind": "games#roomModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomModification.
+      "modifiedTimestampMillis": "A String", # The timestamp at which they modified the room, in milliseconds since the epoch in UTC.
+      "participantId": "A String", # The ID of the participant that modified the room.
+    },
+    "description": "A String", # This short description is generated by our servers and worded relative to the player requesting the room. It is intended to be displayed when the room is shown in a list (that is, an invitation to a room.)
+    "roomId": "A String", # Globally unique ID for a room.
+    "autoMatchingStatus": { # This is a JSON template for status of room automatching that is in progress. # Auto-matching status for this room. Not set if the room is not currently in the auto-matching queue.
+      "kind": "games#roomAutoMatchStatus", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomAutoMatchStatus.
+      "waitEstimateSeconds": 42, # An estimate for the amount of time (in seconds) that auto-matching is expected to take to complete.
+    },
+    "participants": [ # The participants involved in the room, along with their statuses. Includes participants who have left or declined invitations.
+      { # This is a JSON template for a participant in a room.
+        "autoMatched": True or False, # True if this participant was auto-matched with the requesting player.
+        "status": "A String", # The status of the participant with respect to the room.
+            # Possible values are:
+            # - "PARTICIPANT_INVITED" - The participant has been invited to join the room, but has not yet responded.
+            # - "PARTICIPANT_JOINED" - The participant has joined the room (either after creating it or accepting an invitation.)
+            # - "PARTICIPANT_DECLINED" - The participant declined an invitation to join the room.
+            # - "PARTICIPANT_LEFT" - The participant joined the room and then left it.
+        "kind": "games#roomParticipant", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomParticipant.
+        "autoMatchedPlayer": { # This is a JSON template for an anonymous player # Information about a player that has been anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+          "kind": "games#anonymousPlayer", # Uniquely identifies the type of this resource. Value is always the fixed string games#anonymousPlayer.
+          "avatarImageUrl": "A String", # The base URL for the image to display for the anonymous player.
+          "displayName": "A String", # The name to display for the anonymous player.
+        },
+        "leaveReason": "A String", # The reason the participant left the room; populated if the participant status is PARTICIPANT_LEFT.
+            # Possible values are:
+            # - "PLAYER_LEFT" - The player explicitly chose to leave the room.
+            # - "GAME_LEFT" - The game chose to remove the player from the room.
+            # - "ABANDONED" - The player switched to another application and abandoned the room.
+            # - "PEER_CONNECTION_FAILURE" - The client was unable to establish or maintain a connection to other peer(s) in the room.
+            # - "SERVER_ERROR" - The client received an error response when it tried to communicate with the server.
+            # - "TIMEOUT" - The client timed out while waiting for players to join and connect.
+            # - "PRESENCE_FAILURE" - The client's XMPP connection ended abruptly.
+        "capabilities": [ # The capabilities which can be used when communicating with this participant.
+          "A String",
+        ],
+        "player": { # This is a JSON template for a Player resource. # Information about the player. Not populated if this player was anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+          "kind": "games#player", # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
+          "displayName": "A String", # The name to display for the player.
+          "name": { # An object representation of the individual components of the player's name.
+            "givenName": "A String", # The given name (first name) of this player.
+            "familyName": "A String", # The family name (last name) of this player.
+          },
+          "lastPlayedWith": { # This is a JSON template for 3P metadata about a player playing a game. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
+            "autoMatched": True or False, # True if the player was auto-matched with the currently authenticated user.
+            "kind": "games#played", # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
+            "timeMillis": "A String", # The last time the player played the game in milliseconds since the epoch in UTC.
+          },
+          "playerId": "A String", # The ID of the player.
+          "avatarImageUrl": "A String", # The base URL for the image that represents the player.
+        },
+        "clientAddress": { # This is a JSON template for the client address when setting up a room. # Client address for the participant.
+          "kind": "games#roomClientAddress", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomClientAddress.
+          "xmppAddress": "A String", # The XMPP address of the client on the Google Games XMPP network.
+        },
+        "connected": True or False, # True if this participant is in the fully connected set of peers in the room.
+        "id": "A String", # An identifier for the participant in the scope of the room. Cannot be used to identify a player across rooms or in other contexts.
+      },
+    ],
+    "roomStatusVersion": 42, # The version of the room status: an increasing counter, used by the client to ignore out-of-order updates to room status.
+    "variant": 42, # The variant / mode of the application being played; can be any integer value, or left blank.
+    "lastUpdateDetails": { # This is a JSON template for room modification metadata. # Details about the last update to the room.
+      "kind": "games#roomModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomModification.
+      "modifiedTimestampMillis": "A String", # The timestamp at which they modified the room, in milliseconds since the epoch in UTC.
+      "participantId": "A String", # The ID of the participant that modified the room.
+    },
+    "applicationId": "A String", # The ID of the application being played.
+    "inviterId": "A String", # The ID of the participant that invited the user to the room. Not set if the user was not invited to the room.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="dismiss">dismiss(roomId)</code>
+  <pre>Dismiss an invitation to join a room. For internal use by the Games SDK only. Calling this method directly is unsupported.
+
+Args:
+  roomId: string, The ID of the room. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(roomId, language=None)</code>
+  <pre>Get the data for a room.
+
+Args:
+  roomId: string, The ID of the room. (required)
+  language: string, The preferred language to use for strings returned by this method.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for a room resource object.
+    "status": "A String", # The status of the room.
+        # Possible values are:
+        # - "ROOM_INVITING" - One or more players have been invited and not responded.
+        # - "ROOM_AUTO_MATCHING" - One or more slots need to be filled by auto-matching.
+        # - "ROOM_CONNECTING" - Players have joined and are connecting to each other (either before or after auto-matching).
+        # - "ROOM_ACTIVE" - All players have joined and connected to each other.
+        # - "ROOM_DELETED" - The room should no longer be shown on the client. Returned in sync calls when a player joins a room (as a tombstone), or for rooms where all joined participants have left.
+    "kind": "games#room", # Uniquely identifies the type of this resource. Value is always the fixed string games#room.
+    "autoMatchingCriteria": { # This is a JSON template for a room auto-match criteria object. # Criteria for auto-matching players into this room.
+      "kind": "games#roomAutoMatchingCriteria", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomAutoMatchingCriteria.
+      "minAutoMatchingPlayers": 42, # The minimum number of players that should be added to the room by auto-matching.
+      "exclusiveBitmask": "A String", # A bitmask indicating when auto-matches are valid. When ANDed with other exclusive bitmasks, the result must be zero. Can be used to support exclusive roles within a game.
+      "maxAutoMatchingPlayers": 42, # The maximum number of players that should be added to the room by auto-matching.
+    },
+    "creationDetails": { # This is a JSON template for room modification metadata. # Details about the room creation.
+      "kind": "games#roomModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomModification.
+      "modifiedTimestampMillis": "A String", # The timestamp at which they modified the room, in milliseconds since the epoch in UTC.
+      "participantId": "A String", # The ID of the participant that modified the room.
+    },
+    "description": "A String", # This short description is generated by our servers and worded relative to the player requesting the room. It is intended to be displayed when the room is shown in a list (that is, an invitation to a room.)
+    "roomId": "A String", # Globally unique ID for a room.
+    "autoMatchingStatus": { # This is a JSON template for status of room automatching that is in progress. # Auto-matching status for this room. Not set if the room is not currently in the auto-matching queue.
+      "kind": "games#roomAutoMatchStatus", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomAutoMatchStatus.
+      "waitEstimateSeconds": 42, # An estimate for the amount of time (in seconds) that auto-matching is expected to take to complete.
+    },
+    "participants": [ # The participants involved in the room, along with their statuses. Includes participants who have left or declined invitations.
+      { # This is a JSON template for a participant in a room.
+        "autoMatched": True or False, # True if this participant was auto-matched with the requesting player.
+        "status": "A String", # The status of the participant with respect to the room.
+            # Possible values are:
+            # - "PARTICIPANT_INVITED" - The participant has been invited to join the room, but has not yet responded.
+            # - "PARTICIPANT_JOINED" - The participant has joined the room (either after creating it or accepting an invitation.)
+            # - "PARTICIPANT_DECLINED" - The participant declined an invitation to join the room.
+            # - "PARTICIPANT_LEFT" - The participant joined the room and then left it.
+        "kind": "games#roomParticipant", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomParticipant.
+        "autoMatchedPlayer": { # This is a JSON template for an anonymous player # Information about a player that has been anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+          "kind": "games#anonymousPlayer", # Uniquely identifies the type of this resource. Value is always the fixed string games#anonymousPlayer.
+          "avatarImageUrl": "A String", # The base URL for the image to display for the anonymous player.
+          "displayName": "A String", # The name to display for the anonymous player.
+        },
+        "leaveReason": "A String", # The reason the participant left the room; populated if the participant status is PARTICIPANT_LEFT.
+            # Possible values are:
+            # - "PLAYER_LEFT" - The player explicitly chose to leave the room.
+            # - "GAME_LEFT" - The game chose to remove the player from the room.
+            # - "ABANDONED" - The player switched to another application and abandoned the room.
+            # - "PEER_CONNECTION_FAILURE" - The client was unable to establish or maintain a connection to other peer(s) in the room.
+            # - "SERVER_ERROR" - The client received an error response when it tried to communicate with the server.
+            # - "TIMEOUT" - The client timed out while waiting for players to join and connect.
+            # - "PRESENCE_FAILURE" - The client's XMPP connection ended abruptly.
+        "capabilities": [ # The capabilities which can be used when communicating with this participant.
+          "A String",
+        ],
+        "player": { # This is a JSON template for a Player resource. # Information about the player. Not populated if this player was anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+          "kind": "games#player", # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
+          "displayName": "A String", # The name to display for the player.
+          "name": { # An object representation of the individual components of the player's name.
+            "givenName": "A String", # The given name (first name) of this player.
+            "familyName": "A String", # The family name (last name) of this player.
+          },
+          "lastPlayedWith": { # This is a JSON template for 3P metadata about a player playing a game. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
+            "autoMatched": True or False, # True if the player was auto-matched with the currently authenticated user.
+            "kind": "games#played", # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
+            "timeMillis": "A String", # The last time the player played the game in milliseconds since the epoch in UTC.
+          },
+          "playerId": "A String", # The ID of the player.
+          "avatarImageUrl": "A String", # The base URL for the image that represents the player.
+        },
+        "clientAddress": { # This is a JSON template for the client address when setting up a room. # Client address for the participant.
+          "kind": "games#roomClientAddress", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomClientAddress.
+          "xmppAddress": "A String", # The XMPP address of the client on the Google Games XMPP network.
+        },
+        "connected": True or False, # True if this participant is in the fully connected set of peers in the room.
+        "id": "A String", # An identifier for the participant in the scope of the room. Cannot be used to identify a player across rooms or in other contexts.
+      },
+    ],
+    "roomStatusVersion": 42, # The version of the room status: an increasing counter, used by the client to ignore out-of-order updates to room status.
+    "variant": 42, # The variant / mode of the application being played; can be any integer value, or left blank.
+    "lastUpdateDetails": { # This is a JSON template for room modification metadata. # Details about the last update to the room.
+      "kind": "games#roomModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomModification.
+      "modifiedTimestampMillis": "A String", # The timestamp at which they modified the room, in milliseconds since the epoch in UTC.
+      "participantId": "A String", # The ID of the participant that modified the room.
+    },
+    "applicationId": "A String", # The ID of the application being played.
+    "inviterId": "A String", # The ID of the participant that invited the user to the room. Not set if the user was not invited to the room.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="join">join(roomId, body, language=None)</code>
+  <pre>Join a room. For internal use by the Games SDK only. Calling this method directly is unsupported.
+
+Args:
+  roomId: string, The ID of the room. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # This is a JSON template for a join room request.
+    "networkDiagnostics": { # This is a JSON template for network diagnostics reported for a client. # Network diagnostics for the client joining the room.
+      "registrationLatencyMillis": 42, # The amount of time in milliseconds it took for the client to establish a connection with the XMPP server.
+      "iosNetworkType": 42, # iOS network type as defined in Reachability.h.
+      "kind": "games#networkDiagnostics", # Uniquely identifies the type of this resource. Value is always the fixed string games#networkDiagnostics.
+      "androidNetworkSubtype": 42, # The Android network subtype.
+      "androidNetworkType": 42, # The Android network type.
+    },
+    "clientAddress": { # This is a JSON template for the client address when setting up a room. # Client address for the player joining the room.
+      "kind": "games#roomClientAddress", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomClientAddress.
+      "xmppAddress": "A String", # The XMPP address of the client on the Google Games XMPP network.
+    },
+    "kind": "games#roomJoinRequest", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomJoinRequest.
+    "capabilities": [ # The capabilities that this client supports for realtime communication.
+      "A String",
+    ],
+  }
+
+  language: string, The preferred language to use for strings returned by this method.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for a room resource object.
+    "status": "A String", # The status of the room.
+        # Possible values are:
+        # - "ROOM_INVITING" - One or more players have been invited and not responded.
+        # - "ROOM_AUTO_MATCHING" - One or more slots need to be filled by auto-matching.
+        # - "ROOM_CONNECTING" - Players have joined and are connecting to each other (either before or after auto-matching).
+        # - "ROOM_ACTIVE" - All players have joined and connected to each other.
+        # - "ROOM_DELETED" - The room should no longer be shown on the client. Returned in sync calls when a player joins a room (as a tombstone), or for rooms where all joined participants have left.
+    "kind": "games#room", # Uniquely identifies the type of this resource. Value is always the fixed string games#room.
+    "autoMatchingCriteria": { # This is a JSON template for a room auto-match criteria object. # Criteria for auto-matching players into this room.
+      "kind": "games#roomAutoMatchingCriteria", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomAutoMatchingCriteria.
+      "minAutoMatchingPlayers": 42, # The minimum number of players that should be added to the room by auto-matching.
+      "exclusiveBitmask": "A String", # A bitmask indicating when auto-matches are valid. When ANDed with other exclusive bitmasks, the result must be zero. Can be used to support exclusive roles within a game.
+      "maxAutoMatchingPlayers": 42, # The maximum number of players that should be added to the room by auto-matching.
+    },
+    "creationDetails": { # This is a JSON template for room modification metadata. # Details about the room creation.
+      "kind": "games#roomModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomModification.
+      "modifiedTimestampMillis": "A String", # The timestamp at which they modified the room, in milliseconds since the epoch in UTC.
+      "participantId": "A String", # The ID of the participant that modified the room.
+    },
+    "description": "A String", # This short description is generated by our servers and worded relative to the player requesting the room. It is intended to be displayed when the room is shown in a list (that is, an invitation to a room.)
+    "roomId": "A String", # Globally unique ID for a room.
+    "autoMatchingStatus": { # This is a JSON template for status of room automatching that is in progress. # Auto-matching status for this room. Not set if the room is not currently in the auto-matching queue.
+      "kind": "games#roomAutoMatchStatus", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomAutoMatchStatus.
+      "waitEstimateSeconds": 42, # An estimate for the amount of time (in seconds) that auto-matching is expected to take to complete.
+    },
+    "participants": [ # The participants involved in the room, along with their statuses. Includes participants who have left or declined invitations.
+      { # This is a JSON template for a participant in a room.
+        "autoMatched": True or False, # True if this participant was auto-matched with the requesting player.
+        "status": "A String", # The status of the participant with respect to the room.
+            # Possible values are:
+            # - "PARTICIPANT_INVITED" - The participant has been invited to join the room, but has not yet responded.
+            # - "PARTICIPANT_JOINED" - The participant has joined the room (either after creating it or accepting an invitation.)
+            # - "PARTICIPANT_DECLINED" - The participant declined an invitation to join the room.
+            # - "PARTICIPANT_LEFT" - The participant joined the room and then left it.
+        "kind": "games#roomParticipant", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomParticipant.
+        "autoMatchedPlayer": { # This is a JSON template for an anonymous player # Information about a player that has been anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+          "kind": "games#anonymousPlayer", # Uniquely identifies the type of this resource. Value is always the fixed string games#anonymousPlayer.
+          "avatarImageUrl": "A String", # The base URL for the image to display for the anonymous player.
+          "displayName": "A String", # The name to display for the anonymous player.
+        },
+        "leaveReason": "A String", # The reason the participant left the room; populated if the participant status is PARTICIPANT_LEFT.
+            # Possible values are:
+            # - "PLAYER_LEFT" - The player explicitly chose to leave the room.
+            # - "GAME_LEFT" - The game chose to remove the player from the room.
+            # - "ABANDONED" - The player switched to another application and abandoned the room.
+            # - "PEER_CONNECTION_FAILURE" - The client was unable to establish or maintain a connection to other peer(s) in the room.
+            # - "SERVER_ERROR" - The client received an error response when it tried to communicate with the server.
+            # - "TIMEOUT" - The client timed out while waiting for players to join and connect.
+            # - "PRESENCE_FAILURE" - The client's XMPP connection ended abruptly.
+        "capabilities": [ # The capabilities which can be used when communicating with this participant.
+          "A String",
+        ],
+        "player": { # This is a JSON template for a Player resource. # Information about the player. Not populated if this player was anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+          "kind": "games#player", # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
+          "displayName": "A String", # The name to display for the player.
+          "name": { # An object representation of the individual components of the player's name.
+            "givenName": "A String", # The given name (first name) of this player.
+            "familyName": "A String", # The family name (last name) of this player.
+          },
+          "lastPlayedWith": { # This is a JSON template for 3P metadata about a player playing a game. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
+            "autoMatched": True or False, # True if the player was auto-matched with the currently authenticated user.
+            "kind": "games#played", # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
+            "timeMillis": "A String", # The last time the player played the game in milliseconds since the epoch in UTC.
+          },
+          "playerId": "A String", # The ID of the player.
+          "avatarImageUrl": "A String", # The base URL for the image that represents the player.
+        },
+        "clientAddress": { # This is a JSON template for the client address when setting up a room. # Client address for the participant.
+          "kind": "games#roomClientAddress", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomClientAddress.
+          "xmppAddress": "A String", # The XMPP address of the client on the Google Games XMPP network.
+        },
+        "connected": True or False, # True if this participant is in the fully connected set of peers in the room.
+        "id": "A String", # An identifier for the participant in the scope of the room. Cannot be used to identify a player across rooms or in other contexts.
+      },
+    ],
+    "roomStatusVersion": 42, # The version of the room status: an increasing counter, used by the client to ignore out-of-order updates to room status.
+    "variant": 42, # The variant / mode of the application being played; can be any integer value, or left blank.
+    "lastUpdateDetails": { # This is a JSON template for room modification metadata. # Details about the last update to the room.
+      "kind": "games#roomModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomModification.
+      "modifiedTimestampMillis": "A String", # The timestamp at which they modified the room, in milliseconds since the epoch in UTC.
+      "participantId": "A String", # The ID of the participant that modified the room.
+    },
+    "applicationId": "A String", # The ID of the application being played.
+    "inviterId": "A String", # The ID of the participant that invited the user to the room. Not set if the user was not invited to the room.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="leave">leave(roomId, body, language=None)</code>
+  <pre>Leave a room. For internal use by the Games SDK only. Calling this method directly is unsupported.
+
+Args:
+  roomId: string, The ID of the room. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # This is a JSON template for a leave room request.
+    "kind": "games#roomLeaveRequest", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomLeaveRequest.
+    "reason": "A String", # Reason for leaving the match.
+        # Possible values are:
+        # - "PLAYER_LEFT" - The player chose to leave the room..
+        # - "GAME_LEFT" - The game chose to remove the player from the room.
+        # - "REALTIME_ABANDONED" - The player switched to another application and abandoned the room.
+        # - "REALTIME_PEER_CONNECTION_FAILURE" - The client was unable to establish a connection to other peer(s).
+        # - "REALTIME_SERVER_CONNECTION_FAILURE" - The client was unable to communicate with the server.
+        # - "REALTIME_SERVER_ERROR" - The client received an error response when it tried to communicate with the server.
+        # - "REALTIME_TIMEOUT" - The client timed out while waiting for a room.
+    "leaveDiagnostics": { # This is a JSON template for room leave diagnostics. # Diagnostics for a player leaving the room.
+      "kind": "games#roomLeaveDiagnostics", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomLeaveDiagnostics.
+      "socketsUsed": True or False, # Whether or not sockets were used.
+      "iosNetworkType": 42, # iOS network type as defined in Reachability.h.
+      "peerSession": [ # Diagnostics about all peer sessions.
+        { # This is a JSON template for peer session diagnostics.
+          "unreliableChannel": { # This is a JSON template for peer channel diagnostics. # Unreliable channel diagnostics.
+            "bytesReceived": { # This is a JSON template for aggregate stats. # Number of bytes received.
+              "count": "A String", # The number of messages sent between a pair of peers.
+              "max": "A String", # The maximum amount.
+              "kind": "games#aggregateStats", # Uniquely identifies the type of this resource. Value is always the fixed string games#aggregateStats.
+              "sum": "A String", # The total number of bytes sent for messages between a pair of peers.
+              "min": "A String", # The minimum amount.
+            },
+            "kind": "games#peerChannelDiagnostics", # Uniquely identifies the type of this resource. Value is always the fixed string games#peerChannelDiagnostics.
+            "bytesSent": { # This is a JSON template for aggregate stats. # Number of bytes sent.
+              "count": "A String", # The number of messages sent between a pair of peers.
+              "max": "A String", # The maximum amount.
+              "kind": "games#aggregateStats", # Uniquely identifies the type of this resource. Value is always the fixed string games#aggregateStats.
+              "sum": "A String", # The total number of bytes sent for messages between a pair of peers.
+              "min": "A String", # The minimum amount.
+            },
+            "numSendFailures": 42, # Number of send failures.
+            "numMessagesLost": 42, # Number of messages lost.
+            "numMessagesReceived": 42, # Number of messages received.
+            "numMessagesSent": 42, # Number of messages sent.
+            "roundtripLatencyMillis": { # This is a JSON template for aggregate stats. # Roundtrip latency stats in milliseconds.
+              "count": "A String", # The number of messages sent between a pair of peers.
+              "max": "A String", # The maximum amount.
+              "kind": "games#aggregateStats", # Uniquely identifies the type of this resource. Value is always the fixed string games#aggregateStats.
+              "sum": "A String", # The total number of bytes sent for messages between a pair of peers.
+              "min": "A String", # The minimum amount.
+            },
+          },
+          "kind": "games#peerSessionDiagnostics", # Uniquely identifies the type of this resource. Value is always the fixed string games#peerSessionDiagnostics.
+          "reliableChannel": { # This is a JSON template for peer channel diagnostics. # Reliable channel diagnostics.
+            "bytesReceived": { # This is a JSON template for aggregate stats. # Number of bytes received.
+              "count": "A String", # The number of messages sent between a pair of peers.
+              "max": "A String", # The maximum amount.
+              "kind": "games#aggregateStats", # Uniquely identifies the type of this resource. Value is always the fixed string games#aggregateStats.
+              "sum": "A String", # The total number of bytes sent for messages between a pair of peers.
+              "min": "A String", # The minimum amount.
+            },
+            "kind": "games#peerChannelDiagnostics", # Uniquely identifies the type of this resource. Value is always the fixed string games#peerChannelDiagnostics.
+            "bytesSent": { # This is a JSON template for aggregate stats. # Number of bytes sent.
+              "count": "A String", # The number of messages sent between a pair of peers.
+              "max": "A String", # The maximum amount.
+              "kind": "games#aggregateStats", # Uniquely identifies the type of this resource. Value is always the fixed string games#aggregateStats.
+              "sum": "A String", # The total number of bytes sent for messages between a pair of peers.
+              "min": "A String", # The minimum amount.
+            },
+            "numSendFailures": 42, # Number of send failures.
+            "numMessagesLost": 42, # Number of messages lost.
+            "numMessagesReceived": 42, # Number of messages received.
+            "numMessagesSent": 42, # Number of messages sent.
+            "roundtripLatencyMillis": { # This is a JSON template for aggregate stats. # Roundtrip latency stats in milliseconds.
+              "count": "A String", # The number of messages sent between a pair of peers.
+              "max": "A String", # The maximum amount.
+              "kind": "games#aggregateStats", # Uniquely identifies the type of this resource. Value is always the fixed string games#aggregateStats.
+              "sum": "A String", # The total number of bytes sent for messages between a pair of peers.
+              "min": "A String", # The minimum amount.
+            },
+          },
+          "connectedTimestampMillis": "A String", # Connected time in milliseconds.
+          "participantId": "A String", # The participant ID of the peer.
+        },
+      ],
+      "androidNetworkSubtype": 42, # Android network subtype. http://developer.android.com/reference/android/net/NetworkInfo.html#getSubtype()
+      "androidNetworkType": 42, # Android network type. http://developer.android.com/reference/android/net/NetworkInfo.html#getType()
+    },
+  }
+
+  language: string, The preferred language to use for strings returned by this method.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for a room resource object.
+    "status": "A String", # The status of the room.
+        # Possible values are:
+        # - "ROOM_INVITING" - One or more players have been invited and not responded.
+        # - "ROOM_AUTO_MATCHING" - One or more slots need to be filled by auto-matching.
+        # - "ROOM_CONNECTING" - Players have joined and are connecting to each other (either before or after auto-matching).
+        # - "ROOM_ACTIVE" - All players have joined and connected to each other.
+        # - "ROOM_DELETED" - The room should no longer be shown on the client. Returned in sync calls when a player joins a room (as a tombstone), or for rooms where all joined participants have left.
+    "kind": "games#room", # Uniquely identifies the type of this resource. Value is always the fixed string games#room.
+    "autoMatchingCriteria": { # This is a JSON template for a room auto-match criteria object. # Criteria for auto-matching players into this room.
+      "kind": "games#roomAutoMatchingCriteria", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomAutoMatchingCriteria.
+      "minAutoMatchingPlayers": 42, # The minimum number of players that should be added to the room by auto-matching.
+      "exclusiveBitmask": "A String", # A bitmask indicating when auto-matches are valid. When ANDed with other exclusive bitmasks, the result must be zero. Can be used to support exclusive roles within a game.
+      "maxAutoMatchingPlayers": 42, # The maximum number of players that should be added to the room by auto-matching.
+    },
+    "creationDetails": { # This is a JSON template for room modification metadata. # Details about the room creation.
+      "kind": "games#roomModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomModification.
+      "modifiedTimestampMillis": "A String", # The timestamp at which they modified the room, in milliseconds since the epoch in UTC.
+      "participantId": "A String", # The ID of the participant that modified the room.
+    },
+    "description": "A String", # This short description is generated by our servers and worded relative to the player requesting the room. It is intended to be displayed when the room is shown in a list (that is, an invitation to a room.)
+    "roomId": "A String", # Globally unique ID for a room.
+    "autoMatchingStatus": { # This is a JSON template for status of room automatching that is in progress. # Auto-matching status for this room. Not set if the room is not currently in the auto-matching queue.
+      "kind": "games#roomAutoMatchStatus", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomAutoMatchStatus.
+      "waitEstimateSeconds": 42, # An estimate for the amount of time (in seconds) that auto-matching is expected to take to complete.
+    },
+    "participants": [ # The participants involved in the room, along with their statuses. Includes participants who have left or declined invitations.
+      { # This is a JSON template for a participant in a room.
+        "autoMatched": True or False, # True if this participant was auto-matched with the requesting player.
+        "status": "A String", # The status of the participant with respect to the room.
+            # Possible values are:
+            # - "PARTICIPANT_INVITED" - The participant has been invited to join the room, but has not yet responded.
+            # - "PARTICIPANT_JOINED" - The participant has joined the room (either after creating it or accepting an invitation.)
+            # - "PARTICIPANT_DECLINED" - The participant declined an invitation to join the room.
+            # - "PARTICIPANT_LEFT" - The participant joined the room and then left it.
+        "kind": "games#roomParticipant", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomParticipant.
+        "autoMatchedPlayer": { # This is a JSON template for an anonymous player # Information about a player that has been anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+          "kind": "games#anonymousPlayer", # Uniquely identifies the type of this resource. Value is always the fixed string games#anonymousPlayer.
+          "avatarImageUrl": "A String", # The base URL for the image to display for the anonymous player.
+          "displayName": "A String", # The name to display for the anonymous player.
+        },
+        "leaveReason": "A String", # The reason the participant left the room; populated if the participant status is PARTICIPANT_LEFT.
+            # Possible values are:
+            # - "PLAYER_LEFT" - The player explicitly chose to leave the room.
+            # - "GAME_LEFT" - The game chose to remove the player from the room.
+            # - "ABANDONED" - The player switched to another application and abandoned the room.
+            # - "PEER_CONNECTION_FAILURE" - The client was unable to establish or maintain a connection to other peer(s) in the room.
+            # - "SERVER_ERROR" - The client received an error response when it tried to communicate with the server.
+            # - "TIMEOUT" - The client timed out while waiting for players to join and connect.
+            # - "PRESENCE_FAILURE" - The client's XMPP connection ended abruptly.
+        "capabilities": [ # The capabilities which can be used when communicating with this participant.
+          "A String",
+        ],
+        "player": { # This is a JSON template for a Player resource. # Information about the player. Not populated if this player was anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+          "kind": "games#player", # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
+          "displayName": "A String", # The name to display for the player.
+          "name": { # An object representation of the individual components of the player's name.
+            "givenName": "A String", # The given name (first name) of this player.
+            "familyName": "A String", # The family name (last name) of this player.
+          },
+          "lastPlayedWith": { # This is a JSON template for 3P metadata about a player playing a game. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
+            "autoMatched": True or False, # True if the player was auto-matched with the currently authenticated user.
+            "kind": "games#played", # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
+            "timeMillis": "A String", # The last time the player played the game in milliseconds since the epoch in UTC.
+          },
+          "playerId": "A String", # The ID of the player.
+          "avatarImageUrl": "A String", # The base URL for the image that represents the player.
+        },
+        "clientAddress": { # This is a JSON template for the client address when setting up a room. # Client address for the participant.
+          "kind": "games#roomClientAddress", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomClientAddress.
+          "xmppAddress": "A String", # The XMPP address of the client on the Google Games XMPP network.
+        },
+        "connected": True or False, # True if this participant is in the fully connected set of peers in the room.
+        "id": "A String", # An identifier for the participant in the scope of the room. Cannot be used to identify a player across rooms or in other contexts.
+      },
+    ],
+    "roomStatusVersion": 42, # The version of the room status: an increasing counter, used by the client to ignore out-of-order updates to room status.
+    "variant": 42, # The variant / mode of the application being played; can be any integer value, or left blank.
+    "lastUpdateDetails": { # This is a JSON template for room modification metadata. # Details about the last update to the room.
+      "kind": "games#roomModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomModification.
+      "modifiedTimestampMillis": "A String", # The timestamp at which they modified the room, in milliseconds since the epoch in UTC.
+      "participantId": "A String", # The ID of the participant that modified the room.
+    },
+    "applicationId": "A String", # The ID of the application being played.
+    "inviterId": "A String", # The ID of the participant that invited the user to the room. Not set if the user was not invited to the room.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(pageToken=None, language=None, maxResults=None)</code>
+  <pre>Returns invitations to join rooms.
+
+Args:
+  pageToken: string, The token returned by the previous request.
+  language: string, The preferred language to use for strings returned by this method.
+  maxResults: integer, The maximum number of rooms to return in the response, used for paging. For any response, the actual number of rooms to return may be less than the specified maxResults.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for a list of rooms.
+    "nextPageToken": "A String", # The pagination token for the next page of results.
+    "items": [ # The rooms.
+      { # This is a JSON template for a room resource object.
+        "status": "A String", # The status of the room.
+            # Possible values are:
+            # - "ROOM_INVITING" - One or more players have been invited and not responded.
+            # - "ROOM_AUTO_MATCHING" - One or more slots need to be filled by auto-matching.
+            # - "ROOM_CONNECTING" - Players have joined and are connecting to each other (either before or after auto-matching).
+            # - "ROOM_ACTIVE" - All players have joined and connected to each other.
+            # - "ROOM_DELETED" - The room should no longer be shown on the client. Returned in sync calls when a player joins a room (as a tombstone), or for rooms where all joined participants have left.
+        "kind": "games#room", # Uniquely identifies the type of this resource. Value is always the fixed string games#room.
+        "autoMatchingCriteria": { # This is a JSON template for a room auto-match criteria object. # Criteria for auto-matching players into this room.
+          "kind": "games#roomAutoMatchingCriteria", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomAutoMatchingCriteria.
+          "minAutoMatchingPlayers": 42, # The minimum number of players that should be added to the room by auto-matching.
+          "exclusiveBitmask": "A String", # A bitmask indicating when auto-matches are valid. When ANDed with other exclusive bitmasks, the result must be zero. Can be used to support exclusive roles within a game.
+          "maxAutoMatchingPlayers": 42, # The maximum number of players that should be added to the room by auto-matching.
+        },
+        "creationDetails": { # This is a JSON template for room modification metadata. # Details about the room creation.
+          "kind": "games#roomModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomModification.
+          "modifiedTimestampMillis": "A String", # The timestamp at which they modified the room, in milliseconds since the epoch in UTC.
+          "participantId": "A String", # The ID of the participant that modified the room.
+        },
+        "description": "A String", # This short description is generated by our servers and worded relative to the player requesting the room. It is intended to be displayed when the room is shown in a list (that is, an invitation to a room.)
+        "roomId": "A String", # Globally unique ID for a room.
+        "autoMatchingStatus": { # This is a JSON template for status of room automatching that is in progress. # Auto-matching status for this room. Not set if the room is not currently in the auto-matching queue.
+          "kind": "games#roomAutoMatchStatus", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomAutoMatchStatus.
+          "waitEstimateSeconds": 42, # An estimate for the amount of time (in seconds) that auto-matching is expected to take to complete.
+        },
+        "participants": [ # The participants involved in the room, along with their statuses. Includes participants who have left or declined invitations.
+          { # This is a JSON template for a participant in a room.
+            "autoMatched": True or False, # True if this participant was auto-matched with the requesting player.
+            "status": "A String", # The status of the participant with respect to the room.
+                # Possible values are:
+                # - "PARTICIPANT_INVITED" - The participant has been invited to join the room, but has not yet responded.
+                # - "PARTICIPANT_JOINED" - The participant has joined the room (either after creating it or accepting an invitation.)
+                # - "PARTICIPANT_DECLINED" - The participant declined an invitation to join the room.
+                # - "PARTICIPANT_LEFT" - The participant joined the room and then left it.
+            "kind": "games#roomParticipant", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomParticipant.
+            "autoMatchedPlayer": { # This is a JSON template for an anonymous player # Information about a player that has been anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+              "kind": "games#anonymousPlayer", # Uniquely identifies the type of this resource. Value is always the fixed string games#anonymousPlayer.
+              "avatarImageUrl": "A String", # The base URL for the image to display for the anonymous player.
+              "displayName": "A String", # The name to display for the anonymous player.
+            },
+            "leaveReason": "A String", # The reason the participant left the room; populated if the participant status is PARTICIPANT_LEFT.
+                # Possible values are:
+                # - "PLAYER_LEFT" - The player explicitly chose to leave the room.
+                # - "GAME_LEFT" - The game chose to remove the player from the room.
+                # - "ABANDONED" - The player switched to another application and abandoned the room.
+                # - "PEER_CONNECTION_FAILURE" - The client was unable to establish or maintain a connection to other peer(s) in the room.
+                # - "SERVER_ERROR" - The client received an error response when it tried to communicate with the server.
+                # - "TIMEOUT" - The client timed out while waiting for players to join and connect.
+                # - "PRESENCE_FAILURE" - The client's XMPP connection ended abruptly.
+            "capabilities": [ # The capabilities which can be used when communicating with this participant.
+              "A String",
+            ],
+            "player": { # This is a JSON template for a Player resource. # Information about the player. Not populated if this player was anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+              "kind": "games#player", # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
+              "displayName": "A String", # The name to display for the player.
+              "name": { # An object representation of the individual components of the player's name.
+                "givenName": "A String", # The given name (first name) of this player.
+                "familyName": "A String", # The family name (last name) of this player.
+              },
+              "lastPlayedWith": { # This is a JSON template for 3P metadata about a player playing a game. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
+                "autoMatched": True or False, # True if the player was auto-matched with the currently authenticated user.
+                "kind": "games#played", # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
+                "timeMillis": "A String", # The last time the player played the game in milliseconds since the epoch in UTC.
+              },
+              "playerId": "A String", # The ID of the player.
+              "avatarImageUrl": "A String", # The base URL for the image that represents the player.
+            },
+            "clientAddress": { # This is a JSON template for the client address when setting up a room. # Client address for the participant.
+              "kind": "games#roomClientAddress", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomClientAddress.
+              "xmppAddress": "A String", # The XMPP address of the client on the Google Games XMPP network.
+            },
+            "connected": True or False, # True if this participant is in the fully connected set of peers in the room.
+            "id": "A String", # An identifier for the participant in the scope of the room. Cannot be used to identify a player across rooms or in other contexts.
+          },
+        ],
+        "roomStatusVersion": 42, # The version of the room status: an increasing counter, used by the client to ignore out-of-order updates to room status.
+        "variant": 42, # The variant / mode of the application being played; can be any integer value, or left blank.
+        "lastUpdateDetails": { # This is a JSON template for room modification metadata. # Details about the last update to the room.
+          "kind": "games#roomModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomModification.
+          "modifiedTimestampMillis": "A String", # The timestamp at which they modified the room, in milliseconds since the epoch in UTC.
+          "participantId": "A String", # The ID of the participant that modified the room.
+        },
+        "applicationId": "A String", # The ID of the application being played.
+        "inviterId": "A String", # The ID of the participant that invited the user to the room. Not set if the user was not invited to the room.
+      },
+    ],
+    "kind": "games#roomList", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomList.
+  }</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="reportStatus">reportStatus(roomId, body, language=None)</code>
+  <pre>Updates sent by a client reporting the status of peers in a room. For internal use by the Games SDK only. Calling this method directly is unsupported.
+
+Args:
+  roomId: string, The ID of the room. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # This is a JSON template for an update on the status of peers in a room.
+    "kind": "games#roomP2PStatuses", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomP2PStatuses.
+    "updates": [ # The updates for the peers.
+      { # This is a JSON template for an update on the status of a peer in a room.
+        "status": "A String", # The status of the peer in the room.
+            # Possible values are:
+            # - "CONNECTION_ESTABLISHED" - The client established a P2P connection with the peer.
+            # - "CONNECTION_FAILED" - The client failed to establish directed presence with the peer.
+        "kind": "games#roomP2PStatus", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomP2PStatus.
+        "participantId": "A String", # The ID of the participant.
+        "unreliableRoundtripLatencyMillis": 42, # The amount of time in milliseconds it took to send packets back and forth on the unreliable channel with this peer.
+        "connectionSetupLatencyMillis": 42, # The amount of time in milliseconds it took to establish connections with this peer.
+        "error": "A String", # The error code in event of a failure.
+            # Possible values are:
+            # - "P2P_FAILED" - The client failed to establish a P2P connection with the peer.
+            # - "PRESENCE_FAILED" - The client failed to register to receive P2P connections.
+            # - "RELAY_SERVER_FAILED" - The client received an error when trying to use the relay server to establish a P2P connection with the peer.
+        "error_reason": "A String", # More detailed diagnostic message returned in event of a failure.
+      },
+    ],
+  }
+
+  language: string, The preferred language to use for strings returned by this method.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for the status of a room that the player has joined.
+    "status": "A String", # The status of the room.
+        # Possible values are:
+        # - "ROOM_INVITING" - One or more players have been invited and not responded.
+        # - "ROOM_AUTO_MATCHING" - One or more slots need to be filled by auto-matching.
+        # - "ROOM_CONNECTING" - Players have joined are connecting to each other (either before or after auto-matching).
+        # - "ROOM_ACTIVE" - All players have joined and connected to each other.
+        # - "ROOM_DELETED" - All joined players have left.
+    "kind": "games#roomStatus", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomStatus.
+    "autoMatchingStatus": { # This is a JSON template for status of room automatching that is in progress. # Auto-matching status for this room. Not set if the room is not currently in the automatching queue.
+      "kind": "games#roomAutoMatchStatus", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomAutoMatchStatus.
+      "waitEstimateSeconds": 42, # An estimate for the amount of time (in seconds) that auto-matching is expected to take to complete.
+    },
+    "participants": [ # The participants involved in the room, along with their statuses. Includes participants who have left or declined invitations.
+      { # This is a JSON template for a participant in a room.
+        "autoMatched": True or False, # True if this participant was auto-matched with the requesting player.
+        "status": "A String", # The status of the participant with respect to the room.
+            # Possible values are:
+            # - "PARTICIPANT_INVITED" - The participant has been invited to join the room, but has not yet responded.
+            # - "PARTICIPANT_JOINED" - The participant has joined the room (either after creating it or accepting an invitation.)
+            # - "PARTICIPANT_DECLINED" - The participant declined an invitation to join the room.
+            # - "PARTICIPANT_LEFT" - The participant joined the room and then left it.
+        "kind": "games#roomParticipant", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomParticipant.
+        "autoMatchedPlayer": { # This is a JSON template for an anonymous player # Information about a player that has been anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+          "kind": "games#anonymousPlayer", # Uniquely identifies the type of this resource. Value is always the fixed string games#anonymousPlayer.
+          "avatarImageUrl": "A String", # The base URL for the image to display for the anonymous player.
+          "displayName": "A String", # The name to display for the anonymous player.
+        },
+        "leaveReason": "A String", # The reason the participant left the room; populated if the participant status is PARTICIPANT_LEFT.
+            # Possible values are:
+            # - "PLAYER_LEFT" - The player explicitly chose to leave the room.
+            # - "GAME_LEFT" - The game chose to remove the player from the room.
+            # - "ABANDONED" - The player switched to another application and abandoned the room.
+            # - "PEER_CONNECTION_FAILURE" - The client was unable to establish or maintain a connection to other peer(s) in the room.
+            # - "SERVER_ERROR" - The client received an error response when it tried to communicate with the server.
+            # - "TIMEOUT" - The client timed out while waiting for players to join and connect.
+            # - "PRESENCE_FAILURE" - The client's XMPP connection ended abruptly.
+        "capabilities": [ # The capabilities which can be used when communicating with this participant.
+          "A String",
+        ],
+        "player": { # This is a JSON template for a Player resource. # Information about the player. Not populated if this player was anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+          "kind": "games#player", # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
+          "displayName": "A String", # The name to display for the player.
+          "name": { # An object representation of the individual components of the player's name.
+            "givenName": "A String", # The given name (first name) of this player.
+            "familyName": "A String", # The family name (last name) of this player.
+          },
+          "lastPlayedWith": { # This is a JSON template for 3P metadata about a player playing a game. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
+            "autoMatched": True or False, # True if the player was auto-matched with the currently authenticated user.
+            "kind": "games#played", # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
+            "timeMillis": "A String", # The last time the player played the game in milliseconds since the epoch in UTC.
+          },
+          "playerId": "A String", # The ID of the player.
+          "avatarImageUrl": "A String", # The base URL for the image that represents the player.
+        },
+        "clientAddress": { # This is a JSON template for the client address when setting up a room. # Client address for the participant.
+          "kind": "games#roomClientAddress", # Uniquely identifies the type of this resource. Value is always the fixed string games#roomClientAddress.
+          "xmppAddress": "A String", # The XMPP address of the client on the Google Games XMPP network.
+        },
+        "connected": True or False, # True if this participant is in the fully connected set of peers in the room.
+        "id": "A String", # An identifier for the participant in the scope of the room. Cannot be used to identify a player across rooms or in other contexts.
+      },
+    ],
+    "statusVersion": 42, # The version of the status for the room: an increasing counter, used by the client to ignore out-of-order updates to room status.
+    "roomId": "A String", # Globally unique ID for a room.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/games_v1.scores.html b/docs/dyn/games_v1.scores.html
new file mode 100644
index 0000000..f2c9ae8
--- /dev/null
+++ b/docs/dyn/games_v1.scores.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="games_v1.html">Google Play Game Services API</a> . <a href="games_v1.scores.html">scores</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(playerId, leaderboardId, timeSpan, includeRankType=None, language=None, maxResults=None, pageToken=None)</a></code></p>
+<p class="firstline">Get high scores, and optionally ranks, in leaderboards for the currently authenticated player. For a specific time span, leaderboardId can be set to ALL to retrieve data for all leaderboards in a given time span.</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="#list">list(leaderboardId, collection, timeSpan, language=None, maxResults=None, pageToken=None)</a></code></p>
+<p class="firstline">Lists the scores in a leaderboard, starting from the top.</p>
+<p class="toc_element">
+  <code><a href="#listWindow">listWindow(leaderboardId, collection, timeSpan, language=None, returnTopIfAbsent=None, resultsAbove=None, maxResults=None, pageToken=None)</a></code></p>
+<p class="firstline">Lists the scores in a leaderboard around (and including) a player's score.</p>
+<p class="toc_element">
+  <code><a href="#listWindow_next">listWindow_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="#submit">submit(leaderboardId, score, language=None, scoreTag=None)</a></code></p>
+<p class="firstline">Submits a score to the specified leaderboard.</p>
+<p class="toc_element">
+  <code><a href="#submitMultiple">submitMultiple(body, language=None)</a></code></p>
+<p class="firstline">Submits multiple scores to leaderboards.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(playerId, leaderboardId, timeSpan, includeRankType=None, language=None, maxResults=None, pageToken=None)</code>
+  <pre>Get high scores, and optionally ranks, in leaderboards for the currently authenticated player. For a specific time span, leaderboardId can be set to ALL to retrieve data for all leaderboards in a given time span.
+NOTE: You cannot ask for 'ALL' leaderboards and 'ALL' timeSpans in the same request; only one parameter may be set to 'ALL'.
+
+Args:
+  playerId: string, A player ID. A value of me may be used in place of the authenticated player's ID. (required)
+  leaderboardId: string, The ID of the leaderboard. Can be set to 'ALL' to retrieve data for all leaderboards for this application. (required)
+  timeSpan: string, The time span for the scores and ranks you're requesting. (required)
+    Allowed values
+      ALL - Get the high scores for all time spans. If this is used, maxResults values will be ignored.
+      ALL_TIME - Get the all time high score.
+      DAILY - List the top scores for the current day.
+      WEEKLY - List the top scores for the current week.
+  includeRankType: string, The types of ranks to return. If the parameter is omitted, no ranks will be returned.
+    Allowed values
+      ALL - Retrieve public and social ranks.
+      PUBLIC - Retrieve public ranks, if the player is sharing their gameplay activity publicly.
+      SOCIAL - Retrieve the social rank.
+  language: string, The preferred language to use for strings returned by this method.
+  maxResults: integer, The maximum number of leaderboard scores to return in the response. For any response, the actual number of leaderboard scores returned may be less than the specified maxResults.
+  pageToken: string, The token returned by the previous request.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for a list of player leaderboard scores.
+    "nextPageToken": "A String", # The pagination token for the next page of results.
+    "items": [ # The leaderboard scores.
+      { # This is a JSON template for a player leaderboard score object.
+        "writeTimestamp": "A String", # The timestamp at which this score was recorded, in milliseconds since the epoch in UTC.
+        "kind": "games#playerLeaderboardScore", # Uniquely identifies the type of this resource. Value is always the fixed string games#playerLeaderboardScore.
+        "publicRank": { # This is a JSON template for a score rank in a leaderboard. # The public rank of the score in this leaderboard. This object will not be present if the user is not sharing their scores publicly.
+          "numScores": "A String", # The number of scores in the leaderboard.
+          "kind": "games#leaderboardScoreRank", # Uniquely identifies the type of this resource. Value is always the fixed string games#leaderboardScoreRank.
+          "formattedRank": "A String", # The rank in the leaderboard as a string.
+          "rank": "A String", # The rank in the leaderboard.
+          "formattedNumScores": "A String", # The number of scores in the leaderboard as a string.
+        },
+        "scoreTag": "A String", # Additional information about the score. Values must contain no more than 64 URI-safe characters as defined by section 2.3 of RFC 3986.
+        "timeSpan": "A String", # The time span of this 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.
+        "scoreString": "A String", # The formatted value of this score.
+        "leaderboard_id": "A String", # The ID of the leaderboard this score is in.
+        "scoreValue": "A String", # The numerical value of this score.
+        "socialRank": { # This is a JSON template for a score rank in a leaderboard. # The social rank of the score in this leaderboard.
+          "numScores": "A String", # The number of scores in the leaderboard.
+          "kind": "games#leaderboardScoreRank", # Uniquely identifies the type of this resource. Value is always the fixed string games#leaderboardScoreRank.
+          "formattedRank": "A String", # The rank in the leaderboard as a string.
+          "rank": "A String", # The rank in the leaderboard.
+          "formattedNumScores": "A String", # The number of scores in the leaderboard as a string.
+        },
+      },
+    ],
+    "kind": "games#playerLeaderboardScoreListResponse", # Uniquely identifies the type of this resource. Value is always the fixed string games#playerLeaderboardScoreListResponse.
+    "player": { # This is a JSON template for a Player resource. # The Player resources for the owner of this score.
+      "kind": "games#player", # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
+      "displayName": "A String", # The name to display for the player.
+      "name": { # An object representation of the individual components of the player's name.
+        "givenName": "A String", # The given name (first name) of this player.
+        "familyName": "A String", # The family name (last name) of this player.
+      },
+      "lastPlayedWith": { # This is a JSON template for 3P metadata about a player playing a game. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
+        "autoMatched": True or False, # True if the player was auto-matched with the currently authenticated user.
+        "kind": "games#played", # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
+        "timeMillis": "A String", # The last time the player played the game in milliseconds since the epoch in UTC.
+      },
+      "playerId": "A String", # The ID of the player.
+      "avatarImageUrl": "A String", # The base URL for the image that represents the player.
+    },
+  }</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="list">list(leaderboardId, collection, timeSpan, language=None, maxResults=None, pageToken=None)</code>
+  <pre>Lists the scores in a leaderboard, starting from the top.
+
+Args:
+  leaderboardId: string, The ID of the leaderboard. (required)
+  collection: string, The collection of scores you're requesting. (required)
+    Allowed values
+      PUBLIC - List all scores in the public leaderboard.
+      SOCIAL - List only social scores.
+  timeSpan: string, The time span for the scores and ranks you're requesting. (required)
+    Allowed values
+      ALL_TIME - List the all-time top scores.
+      DAILY - List the top scores for the current day.
+      WEEKLY - List the top scores for the current week.
+  language: string, The preferred language to use for strings returned by this method.
+  maxResults: integer, The maximum number of leaderboard scores to return in the response. For any response, the actual number of leaderboard scores returned may be less than the specified maxResults.
+  pageToken: string, The token returned by the previous request.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for a ListScores response.
+    "nextPageToken": "A String", # The pagination token for the next page of results.
+    "kind": "games#leaderboardScores", # Uniquely identifies the type of this resource. Value is always the fixed string games#leaderboardScores.
+    "numScores": "A String", # The total number of scores in the leaderboard.
+    "items": [ # The scores in the leaderboard.
+      { # This is a JSON template for the Leaderboard Entry resource.
+        "kind": "games#leaderboardEntry", # Uniquely identifies the type of this resource. Value is always the fixed string games#leaderboardEntry.
+        "scoreValue": "A String", # The numerical value of this score.
+        "scoreTag": "A String", # Additional information about the score. Values must contain no more than 64 URI-safe characters as defined by section 2.3 of RFC 3986.
+        "timeSpan": "A String", # The time span of this high score.
+            # Possible values are:
+            # - "ALL_TIME" - The score is an all-time high score.
+            # - "WEEKLY" - The score is a weekly high score.
+            # - "DAILY" - The score is a daily high score.
+        "formattedScore": "A String", # The localized string for the numerical value of this score.
+        "player": { # This is a JSON template for a Player resource. # The player who holds this score.
+          "kind": "games#player", # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
+          "displayName": "A String", # The name to display for the player.
+          "name": { # An object representation of the individual components of the player's name.
+            "givenName": "A String", # The given name (first name) of this player.
+            "familyName": "A String", # The family name (last name) of this player.
+          },
+          "lastPlayedWith": { # This is a JSON template for 3P metadata about a player playing a game. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
+            "autoMatched": True or False, # True if the player was auto-matched with the currently authenticated user.
+            "kind": "games#played", # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
+            "timeMillis": "A String", # The last time the player played the game in milliseconds since the epoch in UTC.
+          },
+          "playerId": "A String", # The ID of the player.
+          "avatarImageUrl": "A String", # The base URL for the image that represents the player.
+        },
+        "formattedScoreRank": "A String", # The localized string for the rank of this score for this leaderboard.
+        "scoreRank": "A String", # The rank of this score for this leaderboard.
+        "writeTimestampMillis": "A String", # The timestamp at which this score was recorded, in milliseconds since the epoch in UTC.
+      },
+    ],
+    "playerScore": { # This is a JSON template for the Leaderboard Entry resource. # The score of the requesting player on the leaderboard. The player's score may appear both here and in the list of scores above. If you are viewing a public leaderboard and the player is not sharing their gameplay information publicly, the scoreRank and formattedScoreRank values will not be present.
+      "kind": "games#leaderboardEntry", # Uniquely identifies the type of this resource. Value is always the fixed string games#leaderboardEntry.
+      "scoreValue": "A String", # The numerical value of this score.
+      "scoreTag": "A String", # Additional information about the score. Values must contain no more than 64 URI-safe characters as defined by section 2.3 of RFC 3986.
+      "timeSpan": "A String", # The time span of this high score.
+          # Possible values are:
+          # - "ALL_TIME" - The score is an all-time high score.
+          # - "WEEKLY" - The score is a weekly high score.
+          # - "DAILY" - The score is a daily high score.
+      "formattedScore": "A String", # The localized string for the numerical value of this score.
+      "player": { # This is a JSON template for a Player resource. # The player who holds this score.
+        "kind": "games#player", # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
+        "displayName": "A String", # The name to display for the player.
+        "name": { # An object representation of the individual components of the player's name.
+          "givenName": "A String", # The given name (first name) of this player.
+          "familyName": "A String", # The family name (last name) of this player.
+        },
+        "lastPlayedWith": { # This is a JSON template for 3P metadata about a player playing a game. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
+          "autoMatched": True or False, # True if the player was auto-matched with the currently authenticated user.
+          "kind": "games#played", # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
+          "timeMillis": "A String", # The last time the player played the game in milliseconds since the epoch in UTC.
+        },
+        "playerId": "A String", # The ID of the player.
+        "avatarImageUrl": "A String", # The base URL for the image that represents the player.
+      },
+      "formattedScoreRank": "A String", # The localized string for the rank of this score for this leaderboard.
+      "scoreRank": "A String", # The rank of this score for this leaderboard.
+      "writeTimestampMillis": "A String", # The timestamp at which this score was recorded, in milliseconds since the epoch in UTC.
+    },
+    "prevPageToken": "A String", # The pagination token for the previous page of results.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="listWindow">listWindow(leaderboardId, collection, timeSpan, language=None, returnTopIfAbsent=None, resultsAbove=None, maxResults=None, pageToken=None)</code>
+  <pre>Lists the scores in a leaderboard around (and including) a player's score.
+
+Args:
+  leaderboardId: string, The ID of the leaderboard. (required)
+  collection: string, The collection of scores you're requesting. (required)
+    Allowed values
+      PUBLIC - List all scores in the public leaderboard.
+      SOCIAL - List only social scores.
+  timeSpan: string, The time span for the scores and ranks you're requesting. (required)
+    Allowed values
+      ALL_TIME - List the all-time top scores.
+      DAILY - List the top scores for the current day.
+      WEEKLY - List the top scores for the current week.
+  language: string, The preferred language to use for strings returned by this method.
+  returnTopIfAbsent: boolean, True if the top scores should be returned when the player is not in the leaderboard. Defaults to true.
+  resultsAbove: integer, The preferred number of scores to return above the player's score. More scores may be returned if the player is at the bottom of the leaderboard; fewer may be returned if the player is at the top. Must be less than or equal to maxResults.
+  maxResults: integer, The maximum number of leaderboard scores to return in the response. For any response, the actual number of leaderboard scores returned may be less than the specified maxResults.
+  pageToken: string, The token returned by the previous request.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for a ListScores response.
+    "nextPageToken": "A String", # The pagination token for the next page of results.
+    "kind": "games#leaderboardScores", # Uniquely identifies the type of this resource. Value is always the fixed string games#leaderboardScores.
+    "numScores": "A String", # The total number of scores in the leaderboard.
+    "items": [ # The scores in the leaderboard.
+      { # This is a JSON template for the Leaderboard Entry resource.
+        "kind": "games#leaderboardEntry", # Uniquely identifies the type of this resource. Value is always the fixed string games#leaderboardEntry.
+        "scoreValue": "A String", # The numerical value of this score.
+        "scoreTag": "A String", # Additional information about the score. Values must contain no more than 64 URI-safe characters as defined by section 2.3 of RFC 3986.
+        "timeSpan": "A String", # The time span of this high score.
+            # Possible values are:
+            # - "ALL_TIME" - The score is an all-time high score.
+            # - "WEEKLY" - The score is a weekly high score.
+            # - "DAILY" - The score is a daily high score.
+        "formattedScore": "A String", # The localized string for the numerical value of this score.
+        "player": { # This is a JSON template for a Player resource. # The player who holds this score.
+          "kind": "games#player", # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
+          "displayName": "A String", # The name to display for the player.
+          "name": { # An object representation of the individual components of the player's name.
+            "givenName": "A String", # The given name (first name) of this player.
+            "familyName": "A String", # The family name (last name) of this player.
+          },
+          "lastPlayedWith": { # This is a JSON template for 3P metadata about a player playing a game. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
+            "autoMatched": True or False, # True if the player was auto-matched with the currently authenticated user.
+            "kind": "games#played", # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
+            "timeMillis": "A String", # The last time the player played the game in milliseconds since the epoch in UTC.
+          },
+          "playerId": "A String", # The ID of the player.
+          "avatarImageUrl": "A String", # The base URL for the image that represents the player.
+        },
+        "formattedScoreRank": "A String", # The localized string for the rank of this score for this leaderboard.
+        "scoreRank": "A String", # The rank of this score for this leaderboard.
+        "writeTimestampMillis": "A String", # The timestamp at which this score was recorded, in milliseconds since the epoch in UTC.
+      },
+    ],
+    "playerScore": { # This is a JSON template for the Leaderboard Entry resource. # The score of the requesting player on the leaderboard. The player's score may appear both here and in the list of scores above. If you are viewing a public leaderboard and the player is not sharing their gameplay information publicly, the scoreRank and formattedScoreRank values will not be present.
+      "kind": "games#leaderboardEntry", # Uniquely identifies the type of this resource. Value is always the fixed string games#leaderboardEntry.
+      "scoreValue": "A String", # The numerical value of this score.
+      "scoreTag": "A String", # Additional information about the score. Values must contain no more than 64 URI-safe characters as defined by section 2.3 of RFC 3986.
+      "timeSpan": "A String", # The time span of this high score.
+          # Possible values are:
+          # - "ALL_TIME" - The score is an all-time high score.
+          # - "WEEKLY" - The score is a weekly high score.
+          # - "DAILY" - The score is a daily high score.
+      "formattedScore": "A String", # The localized string for the numerical value of this score.
+      "player": { # This is a JSON template for a Player resource. # The player who holds this score.
+        "kind": "games#player", # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
+        "displayName": "A String", # The name to display for the player.
+        "name": { # An object representation of the individual components of the player's name.
+          "givenName": "A String", # The given name (first name) of this player.
+          "familyName": "A String", # The family name (last name) of this player.
+        },
+        "lastPlayedWith": { # This is a JSON template for 3P metadata about a player playing a game. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
+          "autoMatched": True or False, # True if the player was auto-matched with the currently authenticated user.
+          "kind": "games#played", # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
+          "timeMillis": "A String", # The last time the player played the game in milliseconds since the epoch in UTC.
+        },
+        "playerId": "A String", # The ID of the player.
+        "avatarImageUrl": "A String", # The base URL for the image that represents the player.
+      },
+      "formattedScoreRank": "A String", # The localized string for the rank of this score for this leaderboard.
+      "scoreRank": "A String", # The rank of this score for this leaderboard.
+      "writeTimestampMillis": "A String", # The timestamp at which this score was recorded, in milliseconds since the epoch in UTC.
+    },
+    "prevPageToken": "A String", # The pagination token for the previous page of results.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="listWindow_next">listWindow_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="submit">submit(leaderboardId, score, language=None, scoreTag=None)</code>
+  <pre>Submits a score to the specified leaderboard.
+
+Args:
+  leaderboardId: string, The ID of the leaderboard. (required)
+  score: string, The score you're submitting. The submitted score is ignored if it is worse than a previously submitted score, where worse depends on the leaderboard sort order. The meaning of the score value depends on the leaderboard format type. For fixed-point, the score represents the raw value. For time, the score represents elapsed time in milliseconds. For currency, the score represents a value in micro units. (required)
+  language: string, The preferred language to use for strings returned by this method.
+  scoreTag: string, Additional information about the score you're submitting. Values must contain no more than 64 URI-safe characters as defined by section 2.3 of RFC 3986.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for a list of leaderboard entry resources.
+    "kind": "games#playerScoreResponse", # Uniquely identifies the type of this resource. Value is always the fixed string games#playerScoreResponse.
+    "scoreTag": "A String", # Additional information about this score. Values will contain no more than 64 URI-safe characters as defined by section 2.3 of RFC 3986.
+    "leaderboardId": "A String", # The leaderboard ID that this score was submitted to.
+    "formattedScore": "A String", # The formatted value of the submitted score.
+    "beatenScoreTimeSpans": [ # The time spans where the submitted score is better than the existing score for that time span.
+        # 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",
+    ],
+    "unbeatenScores": [ # The scores in time spans that have not been beaten. As an example, the submitted score may be better than the player's DAILY score, but not better than the player's scores for the WEEKLY or ALL_TIME time spans.
+      { # This is a JSON template for a player score.
+        "kind": "games#playerScore", # Uniquely identifies the type of this resource. Value is always the fixed string games#playerScore.
+        "score": "A String", # The numerical value for this player score.
+        "formattedScore": "A String", # The formatted score for this player score.
+        "scoreTag": "A String", # Additional information about this score. Values will contain no more than 64 URI-safe characters as defined by section 2.3 of RFC 3986.
+        "timeSpan": "A String", # The time span for this player 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.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="submitMultiple">submitMultiple(body, language=None)</code>
+  <pre>Submits multiple scores to leaderboards.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # This is a JSON template for a list of score submission requests
+    "kind": "games#playerScoreSubmissionList", # Uniquely identifies the type of this resource. Value is always the fixed string games#playerScoreSubmissionList.
+    "scores": [ # The score submissions.
+      { # This is a JSON template for a request to submit a score to leaderboards.
+        "kind": "games#scoreSubmission", # Uniquely identifies the type of this resource. Value is always the fixed string games#scoreSubmission.
+        "leaderboardId": "A String", # The leaderboard this score is being submitted to.
+        "score": "A String", # The new score being submitted.
+        "scoreTag": "A String", # Additional information about this score. Values will contain no more than 64 URI-safe characters as defined by section 2.3 of RFC 3986.
+      },
+    ],
+  }
+
+  language: string, The preferred language to use for strings returned by this method.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for a list of score submission statuses.
+    "submittedScores": [ # The score submissions statuses.
+      { # This is a JSON template for a list of leaderboard entry resources.
+        "kind": "games#playerScoreResponse", # Uniquely identifies the type of this resource. Value is always the fixed string games#playerScoreResponse.
+        "scoreTag": "A String", # Additional information about this score. Values will contain no more than 64 URI-safe characters as defined by section 2.3 of RFC 3986.
+        "leaderboardId": "A String", # The leaderboard ID that this score was submitted to.
+        "formattedScore": "A String", # The formatted value of the submitted score.
+        "beatenScoreTimeSpans": [ # The time spans where the submitted score is better than the existing score for that time span.
+            # 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",
+        ],
+        "unbeatenScores": [ # The scores in time spans that have not been beaten. As an example, the submitted score may be better than the player's DAILY score, but not better than the player's scores for the WEEKLY or ALL_TIME time spans.
+          { # This is a JSON template for a player score.
+            "kind": "games#playerScore", # Uniquely identifies the type of this resource. Value is always the fixed string games#playerScore.
+            "score": "A String", # The numerical value for this player score.
+            "formattedScore": "A String", # The formatted score for this player score.
+            "scoreTag": "A String", # Additional information about this score. Values will contain no more than 64 URI-safe characters as defined by section 2.3 of RFC 3986.
+            "timeSpan": "A String", # The time span for this player 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.
+          },
+        ],
+      },
+    ],
+    "kind": "games#playerScoreListResponse", # Uniquely identifies the type of this resource. Value is always the fixed string games#playerScoreListResponse.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/games_v1.turnBasedMatches.html b/docs/dyn/games_v1.turnBasedMatches.html
new file mode 100644
index 0000000..af5fc84
--- /dev/null
+++ b/docs/dyn/games_v1.turnBasedMatches.html
@@ -0,0 +1,1658 @@
+<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="games_v1.html">Google Play Game Services API</a> . <a href="games_v1.turnBasedMatches.html">turnBasedMatches</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#cancel">cancel(matchId)</a></code></p>
+<p class="firstline">Cancel a turn-based match.</p>
+<p class="toc_element">
+  <code><a href="#create">create(body, language=None)</a></code></p>
+<p class="firstline">Create a turn-based match.</p>
+<p class="toc_element">
+  <code><a href="#decline">decline(matchId, language=None)</a></code></p>
+<p class="firstline">Decline an invitation to play a turn-based match.</p>
+<p class="toc_element">
+  <code><a href="#dismiss">dismiss(matchId)</a></code></p>
+<p class="firstline">Dismiss a turn-based match from the match list. The match will no longer show up in the list and will not generate notifications.</p>
+<p class="toc_element">
+  <code><a href="#finish">finish(matchId, body, language=None)</a></code></p>
+<p class="firstline">Finish a turn-based match. Each player should make this call once, after all results are in. Only the player whose turn it is may make the first call to Finish, and can pass in the final match state.</p>
+<p class="toc_element">
+  <code><a href="#get">get(matchId, language=None, includeMatchData=None)</a></code></p>
+<p class="firstline">Get the data for a turn-based match.</p>
+<p class="toc_element">
+  <code><a href="#join">join(matchId, language=None)</a></code></p>
+<p class="firstline">Join a turn-based match.</p>
+<p class="toc_element">
+  <code><a href="#leave">leave(matchId, language=None)</a></code></p>
+<p class="firstline">Leave a turn-based match when it is not the current player's turn, without canceling the match.</p>
+<p class="toc_element">
+  <code><a href="#leaveTurn">leaveTurn(matchId, matchVersion, language=None, pendingParticipantId=None)</a></code></p>
+<p class="firstline">Leave a turn-based match during the current player's turn, without canceling the match.</p>
+<p class="toc_element">
+  <code><a href="#list">list(maxCompletedMatches=None, language=None, pageToken=None, maxResults=None, includeMatchData=None)</a></code></p>
+<p class="firstline">Returns turn-based matches the player is or was involved in.</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="#rematch">rematch(matchId, language=None, requestId=None)</a></code></p>
+<p class="firstline">Create a rematch of a match that was previously completed, with the same participants. This can be called by only one player on a match still in their list; the player must have called Finish first. Returns the newly created match; it will be the caller's turn.</p>
+<p class="toc_element">
+  <code><a href="#sync">sync(maxCompletedMatches=None, language=None, pageToken=None, maxResults=None, includeMatchData=None)</a></code></p>
+<p class="firstline">Returns turn-based matches the player is or was involved in that changed since the last sync call, with the least recent changes coming first. Matches that should be removed from the local cache will have a status of MATCH_DELETED.</p>
+<p class="toc_element">
+  <code><a href="#sync_next">sync_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="#takeTurn">takeTurn(matchId, body, language=None)</a></code></p>
+<p class="firstline">Commit the results of a player turn.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="cancel">cancel(matchId)</code>
+  <pre>Cancel a turn-based match.
+
+Args:
+  matchId: string, The ID of the match. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(body, language=None)</code>
+  <pre>Create a turn-based match.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # This is a JSON template for a turn-based match creation request.
+    "invitedPlayerIds": [ # The player ids to invite to the match.
+      "A String",
+    ],
+    "kind": "games#turnBasedMatchCreateRequest", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchCreateRequest.
+    "autoMatchingCriteria": { # This is a JSON template for an turn-based auto-match criteria object. # Criteria for auto-matching players into this match.
+      "kind": "games#turnBasedAutoMatchingCriteria", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedAutoMatchingCriteria.
+      "minAutoMatchingPlayers": 42, # The minimum number of players that should be added to the match by auto-matching.
+      "exclusiveBitmask": "A String", # A bitmask indicating when auto-matches are valid. When ANDed with other exclusive bitmasks, the result must be zero. Can be used to support exclusive roles within a game.
+      "maxAutoMatchingPlayers": 42, # The maximum number of players that should be added to the match by auto-matching.
+    },
+    "variant": 42, # The variant / mode of the application to be played. This can be any integer value, or left blank. You should use a small number of variants to keep the auto-matching pool as large as possible.
+    "requestId": "A String", # A randomly generated numeric ID. This number is used at the server to ensure that the request is handled correctly across retries.
+  }
+
+  language: string, The preferred language to use for strings returned by this method.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for a turn-based match resource object.
+    "status": "A String", # The status of the match.
+        # Possible values are:
+        # - "MATCH_AUTO_MATCHING" - One or more slots need to be filled by auto-matching; the match cannot be established until they are filled.
+        # - "MATCH_ACTIVE" - The match has started.
+        # - "MATCH_COMPLETE" - The match has finished.
+        # - "MATCH_CANCELED" - The match was canceled.
+        # - "MATCH_EXPIRED" - The match expired due to inactivity.
+        # - "MATCH_DELETED" - The match should no longer be shown on the client. Returned only for tombstones for matches when sync is called.
+    "withParticipantId": "A String", # The ID of another participant in the match that can be used when describing the participants the user is playing with.
+    "kind": "games#turnBasedMatch", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatch.
+    "autoMatchingCriteria": { # This is a JSON template for an turn-based auto-match criteria object. # Criteria for auto-matching players into this match.
+      "kind": "games#turnBasedAutoMatchingCriteria", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedAutoMatchingCriteria.
+      "minAutoMatchingPlayers": 42, # The minimum number of players that should be added to the match by auto-matching.
+      "exclusiveBitmask": "A String", # A bitmask indicating when auto-matches are valid. When ANDed with other exclusive bitmasks, the result must be zero. Can be used to support exclusive roles within a game.
+      "maxAutoMatchingPlayers": 42, # The maximum number of players that should be added to the match by auto-matching.
+    },
+    "creationDetails": { # This is a JSON template for turn-based match modification metadata. # Details about the match creation.
+      "kind": "games#turnBasedMatchModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
+      "modifiedTimestampMillis": "A String", # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
+      "participantId": "A String", # The ID of the participant that modified the match.
+    },
+    "inviterId": "A String", # The ID of the participant that invited the user to the match. Not set if the user was not invited to the match.
+    "data": { # This is a JSON template for a turn-based match data object. # The data / game state for this match.
+      "dataAvailable": True or False, # True if this match has data available but it wasn't returned in a list response; fetching the match individually will retrieve this data.
+      "kind": "games#turnBasedMatchData", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
+      "data": "A String", # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
+    },
+    "matchId": "A String", # Globally unique ID for a turn-based match.
+    "matchVersion": 42, # The version of this match: an increasing counter, used to avoid out-of-date updates to the match.
+    "participants": [ # The participants involved in the match, along with their statuses. Includes participants who have left or declined invitations.
+      { # This is a JSON template for a participant in a turn-based match.
+        "autoMatched": True or False, # True if this participant was auto-matched with the requesting player.
+        "status": "A String", # The status of the participant with respect to the match.
+            # Possible values are:
+            # - "PARTICIPANT_NOT_INVITED_YET" - The participant is slated to be invited to the match, but the invitation has not been sent; the invite will be sent when it becomes their turn.
+            # - "PARTICIPANT_INVITED" - The participant has been invited to join the match, but has not yet responded.
+            # - "PARTICIPANT_JOINED" - The participant has joined the match (either after creating it or accepting an invitation.)
+            # - "PARTICIPANT_DECLINED" - The participant declined an invitation to join the match.
+            # - "PARTICIPANT_LEFT" - The participant joined the match and then left it.
+            # - "PARTICIPANT_FINISHED" - The participant finished playing in the match.
+            # - "PARTICIPANT_UNRESPONSIVE" - The participant did not take their turn in the allotted time.
+        "kind": "games#turnBasedMatchParticipant", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchParticipant.
+        "autoMatchedPlayer": { # This is a JSON template for an anonymous player # Information about a player that has been anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+          "kind": "games#anonymousPlayer", # Uniquely identifies the type of this resource. Value is always the fixed string games#anonymousPlayer.
+          "avatarImageUrl": "A String", # The base URL for the image to display for the anonymous player.
+          "displayName": "A String", # The name to display for the anonymous player.
+        },
+        "player": { # This is a JSON template for a Player resource. # Information about the player. Not populated if this player was anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+          "kind": "games#player", # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
+          "displayName": "A String", # The name to display for the player.
+          "name": { # An object representation of the individual components of the player's name.
+            "givenName": "A String", # The given name (first name) of this player.
+            "familyName": "A String", # The family name (last name) of this player.
+          },
+          "lastPlayedWith": { # This is a JSON template for 3P metadata about a player playing a game. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
+            "autoMatched": True or False, # True if the player was auto-matched with the currently authenticated user.
+            "kind": "games#played", # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
+            "timeMillis": "A String", # The last time the player played the game in milliseconds since the epoch in UTC.
+          },
+          "playerId": "A String", # The ID of the player.
+          "avatarImageUrl": "A String", # The base URL for the image that represents the player.
+        },
+        "id": "A String", # An identifier for the participant in the scope of the match. Cannot be used to identify a player across matches or in other contexts.
+      },
+    ],
+    "matchNumber": 42, # The number of the match in a chain of rematches. Will be set to 1 for the first match and incremented by 1 for each rematch.
+    "variant": 42, # The variant / mode of the application being played; can be any integer value, or left blank.
+    "lastUpdateDetails": { # This is a JSON template for turn-based match modification metadata. # Details about the last update to the match.
+      "kind": "games#turnBasedMatchModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
+      "modifiedTimestampMillis": "A String", # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
+      "participantId": "A String", # The ID of the participant that modified the match.
+    },
+    "previousMatchData": { # This is a JSON template for a turn-based match data object. # The data / game state for the previous match; set for the first turn of rematches only.
+      "dataAvailable": True or False, # True if this match has data available but it wasn't returned in a list response; fetching the match individually will retrieve this data.
+      "kind": "games#turnBasedMatchData", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
+      "data": "A String", # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
+    },
+    "rematchId": "A String", # The ID of a rematch of this match. Only set for completed matches that have been rematched.
+    "results": [ # The results reported for this match.
+      { # This is a JSON template for a result for a match participant.
+        "kind": "games#participantResult", # Uniquely identifies the type of this resource. Value is always the fixed string games#participantResult.
+        "placing": 42, # The placement or ranking of the participant in the match results; a number from one to the number of participants in the match. Multiple participants may have the same placing value in case of a type.
+        "participantId": "A String", # The ID of the participant.
+        "result": "A String", # The result of the participant for this match.
+            # Possible values are:
+            # - "MATCH_RESULT_WIN" - The participant won the match.
+            # - "MATCH_RESULT_LOSS" - The participant lost the match.
+            # - "MATCH_RESULT_TIE" - The participant tied the match.
+            # - "MATCH_RESULT_NONE" - There was no winner for the match (nobody wins or loses this kind of game.)
+            # - "MATCH_RESULT_DISCONNECT" - The participant disconnected / left during the match.
+            # - "MATCH_RESULT_DISAGREED" - Different clients reported different results for this participant.
+      },
+    ],
+    "pendingParticipantId": "A String", # The ID of the participant that is taking a turn.
+    "applicationId": "A String", # The ID of the application being played.
+    "userMatchStatus": "A String", # The status of the current user in the match. Derived from the match type, match status, the user's participant status, and the pending participant for the match.
+        # Possible values are:
+        # - "USER_INVITED" - The user has been invited to join the match and has not responded yet.
+        # - "USER_AWAITING_TURN" - The user is waiting for their turn.
+        # - "USER_TURN" - The user has an action to take in the match.
+        # - "USER_MATCH_COMPLETED" - The match has ended (it is completed, canceled, or expired.)
+    "description": "A String", # This short description is generated by our servers based on turn state and is localized and worded relative to the player requesting the match. It is intended to be displayed when the match is shown in a list.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="decline">decline(matchId, language=None)</code>
+  <pre>Decline an invitation to play a turn-based match.
+
+Args:
+  matchId: string, The ID of the match. (required)
+  language: string, The preferred language to use for strings returned by this method.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for a turn-based match resource object.
+    "status": "A String", # The status of the match.
+        # Possible values are:
+        # - "MATCH_AUTO_MATCHING" - One or more slots need to be filled by auto-matching; the match cannot be established until they are filled.
+        # - "MATCH_ACTIVE" - The match has started.
+        # - "MATCH_COMPLETE" - The match has finished.
+        # - "MATCH_CANCELED" - The match was canceled.
+        # - "MATCH_EXPIRED" - The match expired due to inactivity.
+        # - "MATCH_DELETED" - The match should no longer be shown on the client. Returned only for tombstones for matches when sync is called.
+    "withParticipantId": "A String", # The ID of another participant in the match that can be used when describing the participants the user is playing with.
+    "kind": "games#turnBasedMatch", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatch.
+    "autoMatchingCriteria": { # This is a JSON template for an turn-based auto-match criteria object. # Criteria for auto-matching players into this match.
+      "kind": "games#turnBasedAutoMatchingCriteria", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedAutoMatchingCriteria.
+      "minAutoMatchingPlayers": 42, # The minimum number of players that should be added to the match by auto-matching.
+      "exclusiveBitmask": "A String", # A bitmask indicating when auto-matches are valid. When ANDed with other exclusive bitmasks, the result must be zero. Can be used to support exclusive roles within a game.
+      "maxAutoMatchingPlayers": 42, # The maximum number of players that should be added to the match by auto-matching.
+    },
+    "creationDetails": { # This is a JSON template for turn-based match modification metadata. # Details about the match creation.
+      "kind": "games#turnBasedMatchModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
+      "modifiedTimestampMillis": "A String", # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
+      "participantId": "A String", # The ID of the participant that modified the match.
+    },
+    "inviterId": "A String", # The ID of the participant that invited the user to the match. Not set if the user was not invited to the match.
+    "data": { # This is a JSON template for a turn-based match data object. # The data / game state for this match.
+      "dataAvailable": True or False, # True if this match has data available but it wasn't returned in a list response; fetching the match individually will retrieve this data.
+      "kind": "games#turnBasedMatchData", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
+      "data": "A String", # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
+    },
+    "matchId": "A String", # Globally unique ID for a turn-based match.
+    "matchVersion": 42, # The version of this match: an increasing counter, used to avoid out-of-date updates to the match.
+    "participants": [ # The participants involved in the match, along with their statuses. Includes participants who have left or declined invitations.
+      { # This is a JSON template for a participant in a turn-based match.
+        "autoMatched": True or False, # True if this participant was auto-matched with the requesting player.
+        "status": "A String", # The status of the participant with respect to the match.
+            # Possible values are:
+            # - "PARTICIPANT_NOT_INVITED_YET" - The participant is slated to be invited to the match, but the invitation has not been sent; the invite will be sent when it becomes their turn.
+            # - "PARTICIPANT_INVITED" - The participant has been invited to join the match, but has not yet responded.
+            # - "PARTICIPANT_JOINED" - The participant has joined the match (either after creating it or accepting an invitation.)
+            # - "PARTICIPANT_DECLINED" - The participant declined an invitation to join the match.
+            # - "PARTICIPANT_LEFT" - The participant joined the match and then left it.
+            # - "PARTICIPANT_FINISHED" - The participant finished playing in the match.
+            # - "PARTICIPANT_UNRESPONSIVE" - The participant did not take their turn in the allotted time.
+        "kind": "games#turnBasedMatchParticipant", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchParticipant.
+        "autoMatchedPlayer": { # This is a JSON template for an anonymous player # Information about a player that has been anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+          "kind": "games#anonymousPlayer", # Uniquely identifies the type of this resource. Value is always the fixed string games#anonymousPlayer.
+          "avatarImageUrl": "A String", # The base URL for the image to display for the anonymous player.
+          "displayName": "A String", # The name to display for the anonymous player.
+        },
+        "player": { # This is a JSON template for a Player resource. # Information about the player. Not populated if this player was anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+          "kind": "games#player", # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
+          "displayName": "A String", # The name to display for the player.
+          "name": { # An object representation of the individual components of the player's name.
+            "givenName": "A String", # The given name (first name) of this player.
+            "familyName": "A String", # The family name (last name) of this player.
+          },
+          "lastPlayedWith": { # This is a JSON template for 3P metadata about a player playing a game. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
+            "autoMatched": True or False, # True if the player was auto-matched with the currently authenticated user.
+            "kind": "games#played", # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
+            "timeMillis": "A String", # The last time the player played the game in milliseconds since the epoch in UTC.
+          },
+          "playerId": "A String", # The ID of the player.
+          "avatarImageUrl": "A String", # The base URL for the image that represents the player.
+        },
+        "id": "A String", # An identifier for the participant in the scope of the match. Cannot be used to identify a player across matches or in other contexts.
+      },
+    ],
+    "matchNumber": 42, # The number of the match in a chain of rematches. Will be set to 1 for the first match and incremented by 1 for each rematch.
+    "variant": 42, # The variant / mode of the application being played; can be any integer value, or left blank.
+    "lastUpdateDetails": { # This is a JSON template for turn-based match modification metadata. # Details about the last update to the match.
+      "kind": "games#turnBasedMatchModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
+      "modifiedTimestampMillis": "A String", # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
+      "participantId": "A String", # The ID of the participant that modified the match.
+    },
+    "previousMatchData": { # This is a JSON template for a turn-based match data object. # The data / game state for the previous match; set for the first turn of rematches only.
+      "dataAvailable": True or False, # True if this match has data available but it wasn't returned in a list response; fetching the match individually will retrieve this data.
+      "kind": "games#turnBasedMatchData", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
+      "data": "A String", # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
+    },
+    "rematchId": "A String", # The ID of a rematch of this match. Only set for completed matches that have been rematched.
+    "results": [ # The results reported for this match.
+      { # This is a JSON template for a result for a match participant.
+        "kind": "games#participantResult", # Uniquely identifies the type of this resource. Value is always the fixed string games#participantResult.
+        "placing": 42, # The placement or ranking of the participant in the match results; a number from one to the number of participants in the match. Multiple participants may have the same placing value in case of a type.
+        "participantId": "A String", # The ID of the participant.
+        "result": "A String", # The result of the participant for this match.
+            # Possible values are:
+            # - "MATCH_RESULT_WIN" - The participant won the match.
+            # - "MATCH_RESULT_LOSS" - The participant lost the match.
+            # - "MATCH_RESULT_TIE" - The participant tied the match.
+            # - "MATCH_RESULT_NONE" - There was no winner for the match (nobody wins or loses this kind of game.)
+            # - "MATCH_RESULT_DISCONNECT" - The participant disconnected / left during the match.
+            # - "MATCH_RESULT_DISAGREED" - Different clients reported different results for this participant.
+      },
+    ],
+    "pendingParticipantId": "A String", # The ID of the participant that is taking a turn.
+    "applicationId": "A String", # The ID of the application being played.
+    "userMatchStatus": "A String", # The status of the current user in the match. Derived from the match type, match status, the user's participant status, and the pending participant for the match.
+        # Possible values are:
+        # - "USER_INVITED" - The user has been invited to join the match and has not responded yet.
+        # - "USER_AWAITING_TURN" - The user is waiting for their turn.
+        # - "USER_TURN" - The user has an action to take in the match.
+        # - "USER_MATCH_COMPLETED" - The match has ended (it is completed, canceled, or expired.)
+    "description": "A String", # This short description is generated by our servers based on turn state and is localized and worded relative to the player requesting the match. It is intended to be displayed when the match is shown in a list.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="dismiss">dismiss(matchId)</code>
+  <pre>Dismiss a turn-based match from the match list. The match will no longer show up in the list and will not generate notifications.
+
+Args:
+  matchId: string, The ID of the match. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="finish">finish(matchId, body, language=None)</code>
+  <pre>Finish a turn-based match. Each player should make this call once, after all results are in. Only the player whose turn it is may make the first call to Finish, and can pass in the final match state.
+
+Args:
+  matchId: string, The ID of the match. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # This is a JSON template for a turn-based match results object.
+    "kind": "games#turnBasedMatchResults", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchResults.
+    "data": { # This is a JSON template for sending a turn-based match data object. # The final match data.
+      "kind": "games#turnBasedMatchDataRequest", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchDataRequest.
+      "data": "A String", # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
+    },
+    "matchVersion": 42, # The version of the match being updated.
+    "results": [ # The match results for the participants in the match.
+      { # This is a JSON template for a result for a match participant.
+        "kind": "games#participantResult", # Uniquely identifies the type of this resource. Value is always the fixed string games#participantResult.
+        "placing": 42, # The placement or ranking of the participant in the match results; a number from one to the number of participants in the match. Multiple participants may have the same placing value in case of a type.
+        "participantId": "A String", # The ID of the participant.
+        "result": "A String", # The result of the participant for this match.
+            # Possible values are:
+            # - "MATCH_RESULT_WIN" - The participant won the match.
+            # - "MATCH_RESULT_LOSS" - The participant lost the match.
+            # - "MATCH_RESULT_TIE" - The participant tied the match.
+            # - "MATCH_RESULT_NONE" - There was no winner for the match (nobody wins or loses this kind of game.)
+            # - "MATCH_RESULT_DISCONNECT" - The participant disconnected / left during the match.
+            # - "MATCH_RESULT_DISAGREED" - Different clients reported different results for this participant.
+      },
+    ],
+  }
+
+  language: string, The preferred language to use for strings returned by this method.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for a turn-based match resource object.
+    "status": "A String", # The status of the match.
+        # Possible values are:
+        # - "MATCH_AUTO_MATCHING" - One or more slots need to be filled by auto-matching; the match cannot be established until they are filled.
+        # - "MATCH_ACTIVE" - The match has started.
+        # - "MATCH_COMPLETE" - The match has finished.
+        # - "MATCH_CANCELED" - The match was canceled.
+        # - "MATCH_EXPIRED" - The match expired due to inactivity.
+        # - "MATCH_DELETED" - The match should no longer be shown on the client. Returned only for tombstones for matches when sync is called.
+    "withParticipantId": "A String", # The ID of another participant in the match that can be used when describing the participants the user is playing with.
+    "kind": "games#turnBasedMatch", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatch.
+    "autoMatchingCriteria": { # This is a JSON template for an turn-based auto-match criteria object. # Criteria for auto-matching players into this match.
+      "kind": "games#turnBasedAutoMatchingCriteria", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedAutoMatchingCriteria.
+      "minAutoMatchingPlayers": 42, # The minimum number of players that should be added to the match by auto-matching.
+      "exclusiveBitmask": "A String", # A bitmask indicating when auto-matches are valid. When ANDed with other exclusive bitmasks, the result must be zero. Can be used to support exclusive roles within a game.
+      "maxAutoMatchingPlayers": 42, # The maximum number of players that should be added to the match by auto-matching.
+    },
+    "creationDetails": { # This is a JSON template for turn-based match modification metadata. # Details about the match creation.
+      "kind": "games#turnBasedMatchModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
+      "modifiedTimestampMillis": "A String", # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
+      "participantId": "A String", # The ID of the participant that modified the match.
+    },
+    "inviterId": "A String", # The ID of the participant that invited the user to the match. Not set if the user was not invited to the match.
+    "data": { # This is a JSON template for a turn-based match data object. # The data / game state for this match.
+      "dataAvailable": True or False, # True if this match has data available but it wasn't returned in a list response; fetching the match individually will retrieve this data.
+      "kind": "games#turnBasedMatchData", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
+      "data": "A String", # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
+    },
+    "matchId": "A String", # Globally unique ID for a turn-based match.
+    "matchVersion": 42, # The version of this match: an increasing counter, used to avoid out-of-date updates to the match.
+    "participants": [ # The participants involved in the match, along with their statuses. Includes participants who have left or declined invitations.
+      { # This is a JSON template for a participant in a turn-based match.
+        "autoMatched": True or False, # True if this participant was auto-matched with the requesting player.
+        "status": "A String", # The status of the participant with respect to the match.
+            # Possible values are:
+            # - "PARTICIPANT_NOT_INVITED_YET" - The participant is slated to be invited to the match, but the invitation has not been sent; the invite will be sent when it becomes their turn.
+            # - "PARTICIPANT_INVITED" - The participant has been invited to join the match, but has not yet responded.
+            # - "PARTICIPANT_JOINED" - The participant has joined the match (either after creating it or accepting an invitation.)
+            # - "PARTICIPANT_DECLINED" - The participant declined an invitation to join the match.
+            # - "PARTICIPANT_LEFT" - The participant joined the match and then left it.
+            # - "PARTICIPANT_FINISHED" - The participant finished playing in the match.
+            # - "PARTICIPANT_UNRESPONSIVE" - The participant did not take their turn in the allotted time.
+        "kind": "games#turnBasedMatchParticipant", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchParticipant.
+        "autoMatchedPlayer": { # This is a JSON template for an anonymous player # Information about a player that has been anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+          "kind": "games#anonymousPlayer", # Uniquely identifies the type of this resource. Value is always the fixed string games#anonymousPlayer.
+          "avatarImageUrl": "A String", # The base URL for the image to display for the anonymous player.
+          "displayName": "A String", # The name to display for the anonymous player.
+        },
+        "player": { # This is a JSON template for a Player resource. # Information about the player. Not populated if this player was anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+          "kind": "games#player", # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
+          "displayName": "A String", # The name to display for the player.
+          "name": { # An object representation of the individual components of the player's name.
+            "givenName": "A String", # The given name (first name) of this player.
+            "familyName": "A String", # The family name (last name) of this player.
+          },
+          "lastPlayedWith": { # This is a JSON template for 3P metadata about a player playing a game. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
+            "autoMatched": True or False, # True if the player was auto-matched with the currently authenticated user.
+            "kind": "games#played", # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
+            "timeMillis": "A String", # The last time the player played the game in milliseconds since the epoch in UTC.
+          },
+          "playerId": "A String", # The ID of the player.
+          "avatarImageUrl": "A String", # The base URL for the image that represents the player.
+        },
+        "id": "A String", # An identifier for the participant in the scope of the match. Cannot be used to identify a player across matches or in other contexts.
+      },
+    ],
+    "matchNumber": 42, # The number of the match in a chain of rematches. Will be set to 1 for the first match and incremented by 1 for each rematch.
+    "variant": 42, # The variant / mode of the application being played; can be any integer value, or left blank.
+    "lastUpdateDetails": { # This is a JSON template for turn-based match modification metadata. # Details about the last update to the match.
+      "kind": "games#turnBasedMatchModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
+      "modifiedTimestampMillis": "A String", # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
+      "participantId": "A String", # The ID of the participant that modified the match.
+    },
+    "previousMatchData": { # This is a JSON template for a turn-based match data object. # The data / game state for the previous match; set for the first turn of rematches only.
+      "dataAvailable": True or False, # True if this match has data available but it wasn't returned in a list response; fetching the match individually will retrieve this data.
+      "kind": "games#turnBasedMatchData", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
+      "data": "A String", # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
+    },
+    "rematchId": "A String", # The ID of a rematch of this match. Only set for completed matches that have been rematched.
+    "results": [ # The results reported for this match.
+      { # This is a JSON template for a result for a match participant.
+        "kind": "games#participantResult", # Uniquely identifies the type of this resource. Value is always the fixed string games#participantResult.
+        "placing": 42, # The placement or ranking of the participant in the match results; a number from one to the number of participants in the match. Multiple participants may have the same placing value in case of a type.
+        "participantId": "A String", # The ID of the participant.
+        "result": "A String", # The result of the participant for this match.
+            # Possible values are:
+            # - "MATCH_RESULT_WIN" - The participant won the match.
+            # - "MATCH_RESULT_LOSS" - The participant lost the match.
+            # - "MATCH_RESULT_TIE" - The participant tied the match.
+            # - "MATCH_RESULT_NONE" - There was no winner for the match (nobody wins or loses this kind of game.)
+            # - "MATCH_RESULT_DISCONNECT" - The participant disconnected / left during the match.
+            # - "MATCH_RESULT_DISAGREED" - Different clients reported different results for this participant.
+      },
+    ],
+    "pendingParticipantId": "A String", # The ID of the participant that is taking a turn.
+    "applicationId": "A String", # The ID of the application being played.
+    "userMatchStatus": "A String", # The status of the current user in the match. Derived from the match type, match status, the user's participant status, and the pending participant for the match.
+        # Possible values are:
+        # - "USER_INVITED" - The user has been invited to join the match and has not responded yet.
+        # - "USER_AWAITING_TURN" - The user is waiting for their turn.
+        # - "USER_TURN" - The user has an action to take in the match.
+        # - "USER_MATCH_COMPLETED" - The match has ended (it is completed, canceled, or expired.)
+    "description": "A String", # This short description is generated by our servers based on turn state and is localized and worded relative to the player requesting the match. It is intended to be displayed when the match is shown in a list.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(matchId, language=None, includeMatchData=None)</code>
+  <pre>Get the data for a turn-based match.
+
+Args:
+  matchId: string, The ID of the match. (required)
+  language: string, The preferred language to use for strings returned by this method.
+  includeMatchData: boolean, Get match data along with metadata.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for a turn-based match resource object.
+    "status": "A String", # The status of the match.
+        # Possible values are:
+        # - "MATCH_AUTO_MATCHING" - One or more slots need to be filled by auto-matching; the match cannot be established until they are filled.
+        # - "MATCH_ACTIVE" - The match has started.
+        # - "MATCH_COMPLETE" - The match has finished.
+        # - "MATCH_CANCELED" - The match was canceled.
+        # - "MATCH_EXPIRED" - The match expired due to inactivity.
+        # - "MATCH_DELETED" - The match should no longer be shown on the client. Returned only for tombstones for matches when sync is called.
+    "withParticipantId": "A String", # The ID of another participant in the match that can be used when describing the participants the user is playing with.
+    "kind": "games#turnBasedMatch", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatch.
+    "autoMatchingCriteria": { # This is a JSON template for an turn-based auto-match criteria object. # Criteria for auto-matching players into this match.
+      "kind": "games#turnBasedAutoMatchingCriteria", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedAutoMatchingCriteria.
+      "minAutoMatchingPlayers": 42, # The minimum number of players that should be added to the match by auto-matching.
+      "exclusiveBitmask": "A String", # A bitmask indicating when auto-matches are valid. When ANDed with other exclusive bitmasks, the result must be zero. Can be used to support exclusive roles within a game.
+      "maxAutoMatchingPlayers": 42, # The maximum number of players that should be added to the match by auto-matching.
+    },
+    "creationDetails": { # This is a JSON template for turn-based match modification metadata. # Details about the match creation.
+      "kind": "games#turnBasedMatchModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
+      "modifiedTimestampMillis": "A String", # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
+      "participantId": "A String", # The ID of the participant that modified the match.
+    },
+    "inviterId": "A String", # The ID of the participant that invited the user to the match. Not set if the user was not invited to the match.
+    "data": { # This is a JSON template for a turn-based match data object. # The data / game state for this match.
+      "dataAvailable": True or False, # True if this match has data available but it wasn't returned in a list response; fetching the match individually will retrieve this data.
+      "kind": "games#turnBasedMatchData", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
+      "data": "A String", # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
+    },
+    "matchId": "A String", # Globally unique ID for a turn-based match.
+    "matchVersion": 42, # The version of this match: an increasing counter, used to avoid out-of-date updates to the match.
+    "participants": [ # The participants involved in the match, along with their statuses. Includes participants who have left or declined invitations.
+      { # This is a JSON template for a participant in a turn-based match.
+        "autoMatched": True or False, # True if this participant was auto-matched with the requesting player.
+        "status": "A String", # The status of the participant with respect to the match.
+            # Possible values are:
+            # - "PARTICIPANT_NOT_INVITED_YET" - The participant is slated to be invited to the match, but the invitation has not been sent; the invite will be sent when it becomes their turn.
+            # - "PARTICIPANT_INVITED" - The participant has been invited to join the match, but has not yet responded.
+            # - "PARTICIPANT_JOINED" - The participant has joined the match (either after creating it or accepting an invitation.)
+            # - "PARTICIPANT_DECLINED" - The participant declined an invitation to join the match.
+            # - "PARTICIPANT_LEFT" - The participant joined the match and then left it.
+            # - "PARTICIPANT_FINISHED" - The participant finished playing in the match.
+            # - "PARTICIPANT_UNRESPONSIVE" - The participant did not take their turn in the allotted time.
+        "kind": "games#turnBasedMatchParticipant", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchParticipant.
+        "autoMatchedPlayer": { # This is a JSON template for an anonymous player # Information about a player that has been anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+          "kind": "games#anonymousPlayer", # Uniquely identifies the type of this resource. Value is always the fixed string games#anonymousPlayer.
+          "avatarImageUrl": "A String", # The base URL for the image to display for the anonymous player.
+          "displayName": "A String", # The name to display for the anonymous player.
+        },
+        "player": { # This is a JSON template for a Player resource. # Information about the player. Not populated if this player was anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+          "kind": "games#player", # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
+          "displayName": "A String", # The name to display for the player.
+          "name": { # An object representation of the individual components of the player's name.
+            "givenName": "A String", # The given name (first name) of this player.
+            "familyName": "A String", # The family name (last name) of this player.
+          },
+          "lastPlayedWith": { # This is a JSON template for 3P metadata about a player playing a game. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
+            "autoMatched": True or False, # True if the player was auto-matched with the currently authenticated user.
+            "kind": "games#played", # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
+            "timeMillis": "A String", # The last time the player played the game in milliseconds since the epoch in UTC.
+          },
+          "playerId": "A String", # The ID of the player.
+          "avatarImageUrl": "A String", # The base URL for the image that represents the player.
+        },
+        "id": "A String", # An identifier for the participant in the scope of the match. Cannot be used to identify a player across matches or in other contexts.
+      },
+    ],
+    "matchNumber": 42, # The number of the match in a chain of rematches. Will be set to 1 for the first match and incremented by 1 for each rematch.
+    "variant": 42, # The variant / mode of the application being played; can be any integer value, or left blank.
+    "lastUpdateDetails": { # This is a JSON template for turn-based match modification metadata. # Details about the last update to the match.
+      "kind": "games#turnBasedMatchModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
+      "modifiedTimestampMillis": "A String", # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
+      "participantId": "A String", # The ID of the participant that modified the match.
+    },
+    "previousMatchData": { # This is a JSON template for a turn-based match data object. # The data / game state for the previous match; set for the first turn of rematches only.
+      "dataAvailable": True or False, # True if this match has data available but it wasn't returned in a list response; fetching the match individually will retrieve this data.
+      "kind": "games#turnBasedMatchData", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
+      "data": "A String", # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
+    },
+    "rematchId": "A String", # The ID of a rematch of this match. Only set for completed matches that have been rematched.
+    "results": [ # The results reported for this match.
+      { # This is a JSON template for a result for a match participant.
+        "kind": "games#participantResult", # Uniquely identifies the type of this resource. Value is always the fixed string games#participantResult.
+        "placing": 42, # The placement or ranking of the participant in the match results; a number from one to the number of participants in the match. Multiple participants may have the same placing value in case of a type.
+        "participantId": "A String", # The ID of the participant.
+        "result": "A String", # The result of the participant for this match.
+            # Possible values are:
+            # - "MATCH_RESULT_WIN" - The participant won the match.
+            # - "MATCH_RESULT_LOSS" - The participant lost the match.
+            # - "MATCH_RESULT_TIE" - The participant tied the match.
+            # - "MATCH_RESULT_NONE" - There was no winner for the match (nobody wins or loses this kind of game.)
+            # - "MATCH_RESULT_DISCONNECT" - The participant disconnected / left during the match.
+            # - "MATCH_RESULT_DISAGREED" - Different clients reported different results for this participant.
+      },
+    ],
+    "pendingParticipantId": "A String", # The ID of the participant that is taking a turn.
+    "applicationId": "A String", # The ID of the application being played.
+    "userMatchStatus": "A String", # The status of the current user in the match. Derived from the match type, match status, the user's participant status, and the pending participant for the match.
+        # Possible values are:
+        # - "USER_INVITED" - The user has been invited to join the match and has not responded yet.
+        # - "USER_AWAITING_TURN" - The user is waiting for their turn.
+        # - "USER_TURN" - The user has an action to take in the match.
+        # - "USER_MATCH_COMPLETED" - The match has ended (it is completed, canceled, or expired.)
+    "description": "A String", # This short description is generated by our servers based on turn state and is localized and worded relative to the player requesting the match. It is intended to be displayed when the match is shown in a list.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="join">join(matchId, language=None)</code>
+  <pre>Join a turn-based match.
+
+Args:
+  matchId: string, The ID of the match. (required)
+  language: string, The preferred language to use for strings returned by this method.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for a turn-based match resource object.
+    "status": "A String", # The status of the match.
+        # Possible values are:
+        # - "MATCH_AUTO_MATCHING" - One or more slots need to be filled by auto-matching; the match cannot be established until they are filled.
+        # - "MATCH_ACTIVE" - The match has started.
+        # - "MATCH_COMPLETE" - The match has finished.
+        # - "MATCH_CANCELED" - The match was canceled.
+        # - "MATCH_EXPIRED" - The match expired due to inactivity.
+        # - "MATCH_DELETED" - The match should no longer be shown on the client. Returned only for tombstones for matches when sync is called.
+    "withParticipantId": "A String", # The ID of another participant in the match that can be used when describing the participants the user is playing with.
+    "kind": "games#turnBasedMatch", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatch.
+    "autoMatchingCriteria": { # This is a JSON template for an turn-based auto-match criteria object. # Criteria for auto-matching players into this match.
+      "kind": "games#turnBasedAutoMatchingCriteria", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedAutoMatchingCriteria.
+      "minAutoMatchingPlayers": 42, # The minimum number of players that should be added to the match by auto-matching.
+      "exclusiveBitmask": "A String", # A bitmask indicating when auto-matches are valid. When ANDed with other exclusive bitmasks, the result must be zero. Can be used to support exclusive roles within a game.
+      "maxAutoMatchingPlayers": 42, # The maximum number of players that should be added to the match by auto-matching.
+    },
+    "creationDetails": { # This is a JSON template for turn-based match modification metadata. # Details about the match creation.
+      "kind": "games#turnBasedMatchModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
+      "modifiedTimestampMillis": "A String", # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
+      "participantId": "A String", # The ID of the participant that modified the match.
+    },
+    "inviterId": "A String", # The ID of the participant that invited the user to the match. Not set if the user was not invited to the match.
+    "data": { # This is a JSON template for a turn-based match data object. # The data / game state for this match.
+      "dataAvailable": True or False, # True if this match has data available but it wasn't returned in a list response; fetching the match individually will retrieve this data.
+      "kind": "games#turnBasedMatchData", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
+      "data": "A String", # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
+    },
+    "matchId": "A String", # Globally unique ID for a turn-based match.
+    "matchVersion": 42, # The version of this match: an increasing counter, used to avoid out-of-date updates to the match.
+    "participants": [ # The participants involved in the match, along with their statuses. Includes participants who have left or declined invitations.
+      { # This is a JSON template for a participant in a turn-based match.
+        "autoMatched": True or False, # True if this participant was auto-matched with the requesting player.
+        "status": "A String", # The status of the participant with respect to the match.
+            # Possible values are:
+            # - "PARTICIPANT_NOT_INVITED_YET" - The participant is slated to be invited to the match, but the invitation has not been sent; the invite will be sent when it becomes their turn.
+            # - "PARTICIPANT_INVITED" - The participant has been invited to join the match, but has not yet responded.
+            # - "PARTICIPANT_JOINED" - The participant has joined the match (either after creating it or accepting an invitation.)
+            # - "PARTICIPANT_DECLINED" - The participant declined an invitation to join the match.
+            # - "PARTICIPANT_LEFT" - The participant joined the match and then left it.
+            # - "PARTICIPANT_FINISHED" - The participant finished playing in the match.
+            # - "PARTICIPANT_UNRESPONSIVE" - The participant did not take their turn in the allotted time.
+        "kind": "games#turnBasedMatchParticipant", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchParticipant.
+        "autoMatchedPlayer": { # This is a JSON template for an anonymous player # Information about a player that has been anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+          "kind": "games#anonymousPlayer", # Uniquely identifies the type of this resource. Value is always the fixed string games#anonymousPlayer.
+          "avatarImageUrl": "A String", # The base URL for the image to display for the anonymous player.
+          "displayName": "A String", # The name to display for the anonymous player.
+        },
+        "player": { # This is a JSON template for a Player resource. # Information about the player. Not populated if this player was anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+          "kind": "games#player", # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
+          "displayName": "A String", # The name to display for the player.
+          "name": { # An object representation of the individual components of the player's name.
+            "givenName": "A String", # The given name (first name) of this player.
+            "familyName": "A String", # The family name (last name) of this player.
+          },
+          "lastPlayedWith": { # This is a JSON template for 3P metadata about a player playing a game. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
+            "autoMatched": True or False, # True if the player was auto-matched with the currently authenticated user.
+            "kind": "games#played", # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
+            "timeMillis": "A String", # The last time the player played the game in milliseconds since the epoch in UTC.
+          },
+          "playerId": "A String", # The ID of the player.
+          "avatarImageUrl": "A String", # The base URL for the image that represents the player.
+        },
+        "id": "A String", # An identifier for the participant in the scope of the match. Cannot be used to identify a player across matches or in other contexts.
+      },
+    ],
+    "matchNumber": 42, # The number of the match in a chain of rematches. Will be set to 1 for the first match and incremented by 1 for each rematch.
+    "variant": 42, # The variant / mode of the application being played; can be any integer value, or left blank.
+    "lastUpdateDetails": { # This is a JSON template for turn-based match modification metadata. # Details about the last update to the match.
+      "kind": "games#turnBasedMatchModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
+      "modifiedTimestampMillis": "A String", # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
+      "participantId": "A String", # The ID of the participant that modified the match.
+    },
+    "previousMatchData": { # This is a JSON template for a turn-based match data object. # The data / game state for the previous match; set for the first turn of rematches only.
+      "dataAvailable": True or False, # True if this match has data available but it wasn't returned in a list response; fetching the match individually will retrieve this data.
+      "kind": "games#turnBasedMatchData", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
+      "data": "A String", # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
+    },
+    "rematchId": "A String", # The ID of a rematch of this match. Only set for completed matches that have been rematched.
+    "results": [ # The results reported for this match.
+      { # This is a JSON template for a result for a match participant.
+        "kind": "games#participantResult", # Uniquely identifies the type of this resource. Value is always the fixed string games#participantResult.
+        "placing": 42, # The placement or ranking of the participant in the match results; a number from one to the number of participants in the match. Multiple participants may have the same placing value in case of a type.
+        "participantId": "A String", # The ID of the participant.
+        "result": "A String", # The result of the participant for this match.
+            # Possible values are:
+            # - "MATCH_RESULT_WIN" - The participant won the match.
+            # - "MATCH_RESULT_LOSS" - The participant lost the match.
+            # - "MATCH_RESULT_TIE" - The participant tied the match.
+            # - "MATCH_RESULT_NONE" - There was no winner for the match (nobody wins or loses this kind of game.)
+            # - "MATCH_RESULT_DISCONNECT" - The participant disconnected / left during the match.
+            # - "MATCH_RESULT_DISAGREED" - Different clients reported different results for this participant.
+      },
+    ],
+    "pendingParticipantId": "A String", # The ID of the participant that is taking a turn.
+    "applicationId": "A String", # The ID of the application being played.
+    "userMatchStatus": "A String", # The status of the current user in the match. Derived from the match type, match status, the user's participant status, and the pending participant for the match.
+        # Possible values are:
+        # - "USER_INVITED" - The user has been invited to join the match and has not responded yet.
+        # - "USER_AWAITING_TURN" - The user is waiting for their turn.
+        # - "USER_TURN" - The user has an action to take in the match.
+        # - "USER_MATCH_COMPLETED" - The match has ended (it is completed, canceled, or expired.)
+    "description": "A String", # This short description is generated by our servers based on turn state and is localized and worded relative to the player requesting the match. It is intended to be displayed when the match is shown in a list.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="leave">leave(matchId, language=None)</code>
+  <pre>Leave a turn-based match when it is not the current player's turn, without canceling the match.
+
+Args:
+  matchId: string, The ID of the match. (required)
+  language: string, The preferred language to use for strings returned by this method.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for a turn-based match resource object.
+    "status": "A String", # The status of the match.
+        # Possible values are:
+        # - "MATCH_AUTO_MATCHING" - One or more slots need to be filled by auto-matching; the match cannot be established until they are filled.
+        # - "MATCH_ACTIVE" - The match has started.
+        # - "MATCH_COMPLETE" - The match has finished.
+        # - "MATCH_CANCELED" - The match was canceled.
+        # - "MATCH_EXPIRED" - The match expired due to inactivity.
+        # - "MATCH_DELETED" - The match should no longer be shown on the client. Returned only for tombstones for matches when sync is called.
+    "withParticipantId": "A String", # The ID of another participant in the match that can be used when describing the participants the user is playing with.
+    "kind": "games#turnBasedMatch", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatch.
+    "autoMatchingCriteria": { # This is a JSON template for an turn-based auto-match criteria object. # Criteria for auto-matching players into this match.
+      "kind": "games#turnBasedAutoMatchingCriteria", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedAutoMatchingCriteria.
+      "minAutoMatchingPlayers": 42, # The minimum number of players that should be added to the match by auto-matching.
+      "exclusiveBitmask": "A String", # A bitmask indicating when auto-matches are valid. When ANDed with other exclusive bitmasks, the result must be zero. Can be used to support exclusive roles within a game.
+      "maxAutoMatchingPlayers": 42, # The maximum number of players that should be added to the match by auto-matching.
+    },
+    "creationDetails": { # This is a JSON template for turn-based match modification metadata. # Details about the match creation.
+      "kind": "games#turnBasedMatchModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
+      "modifiedTimestampMillis": "A String", # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
+      "participantId": "A String", # The ID of the participant that modified the match.
+    },
+    "inviterId": "A String", # The ID of the participant that invited the user to the match. Not set if the user was not invited to the match.
+    "data": { # This is a JSON template for a turn-based match data object. # The data / game state for this match.
+      "dataAvailable": True or False, # True if this match has data available but it wasn't returned in a list response; fetching the match individually will retrieve this data.
+      "kind": "games#turnBasedMatchData", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
+      "data": "A String", # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
+    },
+    "matchId": "A String", # Globally unique ID for a turn-based match.
+    "matchVersion": 42, # The version of this match: an increasing counter, used to avoid out-of-date updates to the match.
+    "participants": [ # The participants involved in the match, along with their statuses. Includes participants who have left or declined invitations.
+      { # This is a JSON template for a participant in a turn-based match.
+        "autoMatched": True or False, # True if this participant was auto-matched with the requesting player.
+        "status": "A String", # The status of the participant with respect to the match.
+            # Possible values are:
+            # - "PARTICIPANT_NOT_INVITED_YET" - The participant is slated to be invited to the match, but the invitation has not been sent; the invite will be sent when it becomes their turn.
+            # - "PARTICIPANT_INVITED" - The participant has been invited to join the match, but has not yet responded.
+            # - "PARTICIPANT_JOINED" - The participant has joined the match (either after creating it or accepting an invitation.)
+            # - "PARTICIPANT_DECLINED" - The participant declined an invitation to join the match.
+            # - "PARTICIPANT_LEFT" - The participant joined the match and then left it.
+            # - "PARTICIPANT_FINISHED" - The participant finished playing in the match.
+            # - "PARTICIPANT_UNRESPONSIVE" - The participant did not take their turn in the allotted time.
+        "kind": "games#turnBasedMatchParticipant", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchParticipant.
+        "autoMatchedPlayer": { # This is a JSON template for an anonymous player # Information about a player that has been anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+          "kind": "games#anonymousPlayer", # Uniquely identifies the type of this resource. Value is always the fixed string games#anonymousPlayer.
+          "avatarImageUrl": "A String", # The base URL for the image to display for the anonymous player.
+          "displayName": "A String", # The name to display for the anonymous player.
+        },
+        "player": { # This is a JSON template for a Player resource. # Information about the player. Not populated if this player was anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+          "kind": "games#player", # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
+          "displayName": "A String", # The name to display for the player.
+          "name": { # An object representation of the individual components of the player's name.
+            "givenName": "A String", # The given name (first name) of this player.
+            "familyName": "A String", # The family name (last name) of this player.
+          },
+          "lastPlayedWith": { # This is a JSON template for 3P metadata about a player playing a game. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
+            "autoMatched": True or False, # True if the player was auto-matched with the currently authenticated user.
+            "kind": "games#played", # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
+            "timeMillis": "A String", # The last time the player played the game in milliseconds since the epoch in UTC.
+          },
+          "playerId": "A String", # The ID of the player.
+          "avatarImageUrl": "A String", # The base URL for the image that represents the player.
+        },
+        "id": "A String", # An identifier for the participant in the scope of the match. Cannot be used to identify a player across matches or in other contexts.
+      },
+    ],
+    "matchNumber": 42, # The number of the match in a chain of rematches. Will be set to 1 for the first match and incremented by 1 for each rematch.
+    "variant": 42, # The variant / mode of the application being played; can be any integer value, or left blank.
+    "lastUpdateDetails": { # This is a JSON template for turn-based match modification metadata. # Details about the last update to the match.
+      "kind": "games#turnBasedMatchModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
+      "modifiedTimestampMillis": "A String", # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
+      "participantId": "A String", # The ID of the participant that modified the match.
+    },
+    "previousMatchData": { # This is a JSON template for a turn-based match data object. # The data / game state for the previous match; set for the first turn of rematches only.
+      "dataAvailable": True or False, # True if this match has data available but it wasn't returned in a list response; fetching the match individually will retrieve this data.
+      "kind": "games#turnBasedMatchData", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
+      "data": "A String", # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
+    },
+    "rematchId": "A String", # The ID of a rematch of this match. Only set for completed matches that have been rematched.
+    "results": [ # The results reported for this match.
+      { # This is a JSON template for a result for a match participant.
+        "kind": "games#participantResult", # Uniquely identifies the type of this resource. Value is always the fixed string games#participantResult.
+        "placing": 42, # The placement or ranking of the participant in the match results; a number from one to the number of participants in the match. Multiple participants may have the same placing value in case of a type.
+        "participantId": "A String", # The ID of the participant.
+        "result": "A String", # The result of the participant for this match.
+            # Possible values are:
+            # - "MATCH_RESULT_WIN" - The participant won the match.
+            # - "MATCH_RESULT_LOSS" - The participant lost the match.
+            # - "MATCH_RESULT_TIE" - The participant tied the match.
+            # - "MATCH_RESULT_NONE" - There was no winner for the match (nobody wins or loses this kind of game.)
+            # - "MATCH_RESULT_DISCONNECT" - The participant disconnected / left during the match.
+            # - "MATCH_RESULT_DISAGREED" - Different clients reported different results for this participant.
+      },
+    ],
+    "pendingParticipantId": "A String", # The ID of the participant that is taking a turn.
+    "applicationId": "A String", # The ID of the application being played.
+    "userMatchStatus": "A String", # The status of the current user in the match. Derived from the match type, match status, the user's participant status, and the pending participant for the match.
+        # Possible values are:
+        # - "USER_INVITED" - The user has been invited to join the match and has not responded yet.
+        # - "USER_AWAITING_TURN" - The user is waiting for their turn.
+        # - "USER_TURN" - The user has an action to take in the match.
+        # - "USER_MATCH_COMPLETED" - The match has ended (it is completed, canceled, or expired.)
+    "description": "A String", # This short description is generated by our servers based on turn state and is localized and worded relative to the player requesting the match. It is intended to be displayed when the match is shown in a list.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="leaveTurn">leaveTurn(matchId, matchVersion, language=None, pendingParticipantId=None)</code>
+  <pre>Leave a turn-based match during the current player's turn, without canceling the match.
+
+Args:
+  matchId: string, The ID of the match. (required)
+  matchVersion: integer, The version of the match being updated. (required)
+  language: string, The preferred language to use for strings returned by this method.
+  pendingParticipantId: string, The ID of another participant who should take their turn next. If not set, the match will wait for other player(s) to join via automatching; this is only valid if automatch criteria is set on the match with remaining slots for automatched players.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for a turn-based match resource object.
+    "status": "A String", # The status of the match.
+        # Possible values are:
+        # - "MATCH_AUTO_MATCHING" - One or more slots need to be filled by auto-matching; the match cannot be established until they are filled.
+        # - "MATCH_ACTIVE" - The match has started.
+        # - "MATCH_COMPLETE" - The match has finished.
+        # - "MATCH_CANCELED" - The match was canceled.
+        # - "MATCH_EXPIRED" - The match expired due to inactivity.
+        # - "MATCH_DELETED" - The match should no longer be shown on the client. Returned only for tombstones for matches when sync is called.
+    "withParticipantId": "A String", # The ID of another participant in the match that can be used when describing the participants the user is playing with.
+    "kind": "games#turnBasedMatch", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatch.
+    "autoMatchingCriteria": { # This is a JSON template for an turn-based auto-match criteria object. # Criteria for auto-matching players into this match.
+      "kind": "games#turnBasedAutoMatchingCriteria", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedAutoMatchingCriteria.
+      "minAutoMatchingPlayers": 42, # The minimum number of players that should be added to the match by auto-matching.
+      "exclusiveBitmask": "A String", # A bitmask indicating when auto-matches are valid. When ANDed with other exclusive bitmasks, the result must be zero. Can be used to support exclusive roles within a game.
+      "maxAutoMatchingPlayers": 42, # The maximum number of players that should be added to the match by auto-matching.
+    },
+    "creationDetails": { # This is a JSON template for turn-based match modification metadata. # Details about the match creation.
+      "kind": "games#turnBasedMatchModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
+      "modifiedTimestampMillis": "A String", # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
+      "participantId": "A String", # The ID of the participant that modified the match.
+    },
+    "inviterId": "A String", # The ID of the participant that invited the user to the match. Not set if the user was not invited to the match.
+    "data": { # This is a JSON template for a turn-based match data object. # The data / game state for this match.
+      "dataAvailable": True or False, # True if this match has data available but it wasn't returned in a list response; fetching the match individually will retrieve this data.
+      "kind": "games#turnBasedMatchData", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
+      "data": "A String", # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
+    },
+    "matchId": "A String", # Globally unique ID for a turn-based match.
+    "matchVersion": 42, # The version of this match: an increasing counter, used to avoid out-of-date updates to the match.
+    "participants": [ # The participants involved in the match, along with their statuses. Includes participants who have left or declined invitations.
+      { # This is a JSON template for a participant in a turn-based match.
+        "autoMatched": True or False, # True if this participant was auto-matched with the requesting player.
+        "status": "A String", # The status of the participant with respect to the match.
+            # Possible values are:
+            # - "PARTICIPANT_NOT_INVITED_YET" - The participant is slated to be invited to the match, but the invitation has not been sent; the invite will be sent when it becomes their turn.
+            # - "PARTICIPANT_INVITED" - The participant has been invited to join the match, but has not yet responded.
+            # - "PARTICIPANT_JOINED" - The participant has joined the match (either after creating it or accepting an invitation.)
+            # - "PARTICIPANT_DECLINED" - The participant declined an invitation to join the match.
+            # - "PARTICIPANT_LEFT" - The participant joined the match and then left it.
+            # - "PARTICIPANT_FINISHED" - The participant finished playing in the match.
+            # - "PARTICIPANT_UNRESPONSIVE" - The participant did not take their turn in the allotted time.
+        "kind": "games#turnBasedMatchParticipant", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchParticipant.
+        "autoMatchedPlayer": { # This is a JSON template for an anonymous player # Information about a player that has been anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+          "kind": "games#anonymousPlayer", # Uniquely identifies the type of this resource. Value is always the fixed string games#anonymousPlayer.
+          "avatarImageUrl": "A String", # The base URL for the image to display for the anonymous player.
+          "displayName": "A String", # The name to display for the anonymous player.
+        },
+        "player": { # This is a JSON template for a Player resource. # Information about the player. Not populated if this player was anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+          "kind": "games#player", # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
+          "displayName": "A String", # The name to display for the player.
+          "name": { # An object representation of the individual components of the player's name.
+            "givenName": "A String", # The given name (first name) of this player.
+            "familyName": "A String", # The family name (last name) of this player.
+          },
+          "lastPlayedWith": { # This is a JSON template for 3P metadata about a player playing a game. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
+            "autoMatched": True or False, # True if the player was auto-matched with the currently authenticated user.
+            "kind": "games#played", # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
+            "timeMillis": "A String", # The last time the player played the game in milliseconds since the epoch in UTC.
+          },
+          "playerId": "A String", # The ID of the player.
+          "avatarImageUrl": "A String", # The base URL for the image that represents the player.
+        },
+        "id": "A String", # An identifier for the participant in the scope of the match. Cannot be used to identify a player across matches or in other contexts.
+      },
+    ],
+    "matchNumber": 42, # The number of the match in a chain of rematches. Will be set to 1 for the first match and incremented by 1 for each rematch.
+    "variant": 42, # The variant / mode of the application being played; can be any integer value, or left blank.
+    "lastUpdateDetails": { # This is a JSON template for turn-based match modification metadata. # Details about the last update to the match.
+      "kind": "games#turnBasedMatchModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
+      "modifiedTimestampMillis": "A String", # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
+      "participantId": "A String", # The ID of the participant that modified the match.
+    },
+    "previousMatchData": { # This is a JSON template for a turn-based match data object. # The data / game state for the previous match; set for the first turn of rematches only.
+      "dataAvailable": True or False, # True if this match has data available but it wasn't returned in a list response; fetching the match individually will retrieve this data.
+      "kind": "games#turnBasedMatchData", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
+      "data": "A String", # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
+    },
+    "rematchId": "A String", # The ID of a rematch of this match. Only set for completed matches that have been rematched.
+    "results": [ # The results reported for this match.
+      { # This is a JSON template for a result for a match participant.
+        "kind": "games#participantResult", # Uniquely identifies the type of this resource. Value is always the fixed string games#participantResult.
+        "placing": 42, # The placement or ranking of the participant in the match results; a number from one to the number of participants in the match. Multiple participants may have the same placing value in case of a type.
+        "participantId": "A String", # The ID of the participant.
+        "result": "A String", # The result of the participant for this match.
+            # Possible values are:
+            # - "MATCH_RESULT_WIN" - The participant won the match.
+            # - "MATCH_RESULT_LOSS" - The participant lost the match.
+            # - "MATCH_RESULT_TIE" - The participant tied the match.
+            # - "MATCH_RESULT_NONE" - There was no winner for the match (nobody wins or loses this kind of game.)
+            # - "MATCH_RESULT_DISCONNECT" - The participant disconnected / left during the match.
+            # - "MATCH_RESULT_DISAGREED" - Different clients reported different results for this participant.
+      },
+    ],
+    "pendingParticipantId": "A String", # The ID of the participant that is taking a turn.
+    "applicationId": "A String", # The ID of the application being played.
+    "userMatchStatus": "A String", # The status of the current user in the match. Derived from the match type, match status, the user's participant status, and the pending participant for the match.
+        # Possible values are:
+        # - "USER_INVITED" - The user has been invited to join the match and has not responded yet.
+        # - "USER_AWAITING_TURN" - The user is waiting for their turn.
+        # - "USER_TURN" - The user has an action to take in the match.
+        # - "USER_MATCH_COMPLETED" - The match has ended (it is completed, canceled, or expired.)
+    "description": "A String", # This short description is generated by our servers based on turn state and is localized and worded relative to the player requesting the match. It is intended to be displayed when the match is shown in a list.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(maxCompletedMatches=None, language=None, pageToken=None, maxResults=None, includeMatchData=None)</code>
+  <pre>Returns turn-based matches the player is or was involved in.
+
+Args:
+  maxCompletedMatches: integer, The maximum number of completed or canceled matches to return in the response. If not set, all matches returned could be completed or canceled.
+  language: string, The preferred language to use for strings returned by this method.
+  pageToken: string, The token returned by the previous request.
+  maxResults: integer, The maximum number of matches to return in the response, used for paging. For any response, the actual number of matches to return may be less than the specified maxResults.
+  includeMatchData: boolean, True if match data should be returned in the response. Note that not all data will necessarily be returned if include_match_data is true; the server may decide to only return data for some of the matches to limit download size for the client. The remainder of the data for these matches will be retrievable on request.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for a list of turn-based matches.
+    "nextPageToken": "A String", # The pagination token for the next page of results.
+    "items": [ # The matches.
+      { # This is a JSON template for a turn-based match resource object.
+        "status": "A String", # The status of the match.
+            # Possible values are:
+            # - "MATCH_AUTO_MATCHING" - One or more slots need to be filled by auto-matching; the match cannot be established until they are filled.
+            # - "MATCH_ACTIVE" - The match has started.
+            # - "MATCH_COMPLETE" - The match has finished.
+            # - "MATCH_CANCELED" - The match was canceled.
+            # - "MATCH_EXPIRED" - The match expired due to inactivity.
+            # - "MATCH_DELETED" - The match should no longer be shown on the client. Returned only for tombstones for matches when sync is called.
+        "withParticipantId": "A String", # The ID of another participant in the match that can be used when describing the participants the user is playing with.
+        "kind": "games#turnBasedMatch", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatch.
+        "autoMatchingCriteria": { # This is a JSON template for an turn-based auto-match criteria object. # Criteria for auto-matching players into this match.
+          "kind": "games#turnBasedAutoMatchingCriteria", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedAutoMatchingCriteria.
+          "minAutoMatchingPlayers": 42, # The minimum number of players that should be added to the match by auto-matching.
+          "exclusiveBitmask": "A String", # A bitmask indicating when auto-matches are valid. When ANDed with other exclusive bitmasks, the result must be zero. Can be used to support exclusive roles within a game.
+          "maxAutoMatchingPlayers": 42, # The maximum number of players that should be added to the match by auto-matching.
+        },
+        "creationDetails": { # This is a JSON template for turn-based match modification metadata. # Details about the match creation.
+          "kind": "games#turnBasedMatchModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
+          "modifiedTimestampMillis": "A String", # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
+          "participantId": "A String", # The ID of the participant that modified the match.
+        },
+        "inviterId": "A String", # The ID of the participant that invited the user to the match. Not set if the user was not invited to the match.
+        "data": { # This is a JSON template for a turn-based match data object. # The data / game state for this match.
+          "dataAvailable": True or False, # True if this match has data available but it wasn't returned in a list response; fetching the match individually will retrieve this data.
+          "kind": "games#turnBasedMatchData", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
+          "data": "A String", # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
+        },
+        "matchId": "A String", # Globally unique ID for a turn-based match.
+        "matchVersion": 42, # The version of this match: an increasing counter, used to avoid out-of-date updates to the match.
+        "participants": [ # The participants involved in the match, along with their statuses. Includes participants who have left or declined invitations.
+          { # This is a JSON template for a participant in a turn-based match.
+            "autoMatched": True or False, # True if this participant was auto-matched with the requesting player.
+            "status": "A String", # The status of the participant with respect to the match.
+                # Possible values are:
+                # - "PARTICIPANT_NOT_INVITED_YET" - The participant is slated to be invited to the match, but the invitation has not been sent; the invite will be sent when it becomes their turn.
+                # - "PARTICIPANT_INVITED" - The participant has been invited to join the match, but has not yet responded.
+                # - "PARTICIPANT_JOINED" - The participant has joined the match (either after creating it or accepting an invitation.)
+                # - "PARTICIPANT_DECLINED" - The participant declined an invitation to join the match.
+                # - "PARTICIPANT_LEFT" - The participant joined the match and then left it.
+                # - "PARTICIPANT_FINISHED" - The participant finished playing in the match.
+                # - "PARTICIPANT_UNRESPONSIVE" - The participant did not take their turn in the allotted time.
+            "kind": "games#turnBasedMatchParticipant", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchParticipant.
+            "autoMatchedPlayer": { # This is a JSON template for an anonymous player # Information about a player that has been anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+              "kind": "games#anonymousPlayer", # Uniquely identifies the type of this resource. Value is always the fixed string games#anonymousPlayer.
+              "avatarImageUrl": "A String", # The base URL for the image to display for the anonymous player.
+              "displayName": "A String", # The name to display for the anonymous player.
+            },
+            "player": { # This is a JSON template for a Player resource. # Information about the player. Not populated if this player was anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+              "kind": "games#player", # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
+              "displayName": "A String", # The name to display for the player.
+              "name": { # An object representation of the individual components of the player's name.
+                "givenName": "A String", # The given name (first name) of this player.
+                "familyName": "A String", # The family name (last name) of this player.
+              },
+              "lastPlayedWith": { # This is a JSON template for 3P metadata about a player playing a game. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
+                "autoMatched": True or False, # True if the player was auto-matched with the currently authenticated user.
+                "kind": "games#played", # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
+                "timeMillis": "A String", # The last time the player played the game in milliseconds since the epoch in UTC.
+              },
+              "playerId": "A String", # The ID of the player.
+              "avatarImageUrl": "A String", # The base URL for the image that represents the player.
+            },
+            "id": "A String", # An identifier for the participant in the scope of the match. Cannot be used to identify a player across matches or in other contexts.
+          },
+        ],
+        "matchNumber": 42, # The number of the match in a chain of rematches. Will be set to 1 for the first match and incremented by 1 for each rematch.
+        "variant": 42, # The variant / mode of the application being played; can be any integer value, or left blank.
+        "lastUpdateDetails": { # This is a JSON template for turn-based match modification metadata. # Details about the last update to the match.
+          "kind": "games#turnBasedMatchModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
+          "modifiedTimestampMillis": "A String", # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
+          "participantId": "A String", # The ID of the participant that modified the match.
+        },
+        "previousMatchData": { # This is a JSON template for a turn-based match data object. # The data / game state for the previous match; set for the first turn of rematches only.
+          "dataAvailable": True or False, # True if this match has data available but it wasn't returned in a list response; fetching the match individually will retrieve this data.
+          "kind": "games#turnBasedMatchData", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
+          "data": "A String", # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
+        },
+        "rematchId": "A String", # The ID of a rematch of this match. Only set for completed matches that have been rematched.
+        "results": [ # The results reported for this match.
+          { # This is a JSON template for a result for a match participant.
+            "kind": "games#participantResult", # Uniquely identifies the type of this resource. Value is always the fixed string games#participantResult.
+            "placing": 42, # The placement or ranking of the participant in the match results; a number from one to the number of participants in the match. Multiple participants may have the same placing value in case of a type.
+            "participantId": "A String", # The ID of the participant.
+            "result": "A String", # The result of the participant for this match.
+                # Possible values are:
+                # - "MATCH_RESULT_WIN" - The participant won the match.
+                # - "MATCH_RESULT_LOSS" - The participant lost the match.
+                # - "MATCH_RESULT_TIE" - The participant tied the match.
+                # - "MATCH_RESULT_NONE" - There was no winner for the match (nobody wins or loses this kind of game.)
+                # - "MATCH_RESULT_DISCONNECT" - The participant disconnected / left during the match.
+                # - "MATCH_RESULT_DISAGREED" - Different clients reported different results for this participant.
+          },
+        ],
+        "pendingParticipantId": "A String", # The ID of the participant that is taking a turn.
+        "applicationId": "A String", # The ID of the application being played.
+        "userMatchStatus": "A String", # The status of the current user in the match. Derived from the match type, match status, the user's participant status, and the pending participant for the match.
+            # Possible values are:
+            # - "USER_INVITED" - The user has been invited to join the match and has not responded yet.
+            # - "USER_AWAITING_TURN" - The user is waiting for their turn.
+            # - "USER_TURN" - The user has an action to take in the match.
+            # - "USER_MATCH_COMPLETED" - The match has ended (it is completed, canceled, or expired.)
+        "description": "A String", # This short description is generated by our servers based on turn state and is localized and worded relative to the player requesting the match. It is intended to be displayed when the match is shown in a list.
+      },
+    ],
+    "kind": "games#turnBasedMatchList", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchList.
+  }</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="rematch">rematch(matchId, language=None, requestId=None)</code>
+  <pre>Create a rematch of a match that was previously completed, with the same participants. This can be called by only one player on a match still in their list; the player must have called Finish first. Returns the newly created match; it will be the caller's turn.
+
+Args:
+  matchId: string, The ID of the match. (required)
+  language: string, The preferred language to use for strings returned by this method.
+  requestId: string, A randomly generated numeric ID for each request specified by the caller. This number is used at the server to ensure that the request is handled correctly across retries.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for a rematch response.
+    "rematch": { # This is a JSON template for a turn-based match resource object. # The newly created match; a rematch of the old match with the same participants.
+      "status": "A String", # The status of the match.
+          # Possible values are:
+          # - "MATCH_AUTO_MATCHING" - One or more slots need to be filled by auto-matching; the match cannot be established until they are filled.
+          # - "MATCH_ACTIVE" - The match has started.
+          # - "MATCH_COMPLETE" - The match has finished.
+          # - "MATCH_CANCELED" - The match was canceled.
+          # - "MATCH_EXPIRED" - The match expired due to inactivity.
+          # - "MATCH_DELETED" - The match should no longer be shown on the client. Returned only for tombstones for matches when sync is called.
+      "withParticipantId": "A String", # The ID of another participant in the match that can be used when describing the participants the user is playing with.
+      "kind": "games#turnBasedMatch", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatch.
+      "autoMatchingCriteria": { # This is a JSON template for an turn-based auto-match criteria object. # Criteria for auto-matching players into this match.
+        "kind": "games#turnBasedAutoMatchingCriteria", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedAutoMatchingCriteria.
+        "minAutoMatchingPlayers": 42, # The minimum number of players that should be added to the match by auto-matching.
+        "exclusiveBitmask": "A String", # A bitmask indicating when auto-matches are valid. When ANDed with other exclusive bitmasks, the result must be zero. Can be used to support exclusive roles within a game.
+        "maxAutoMatchingPlayers": 42, # The maximum number of players that should be added to the match by auto-matching.
+      },
+      "creationDetails": { # This is a JSON template for turn-based match modification metadata. # Details about the match creation.
+        "kind": "games#turnBasedMatchModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
+        "modifiedTimestampMillis": "A String", # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
+        "participantId": "A String", # The ID of the participant that modified the match.
+      },
+      "inviterId": "A String", # The ID of the participant that invited the user to the match. Not set if the user was not invited to the match.
+      "data": { # This is a JSON template for a turn-based match data object. # The data / game state for this match.
+        "dataAvailable": True or False, # True if this match has data available but it wasn't returned in a list response; fetching the match individually will retrieve this data.
+        "kind": "games#turnBasedMatchData", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
+        "data": "A String", # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
+      },
+      "matchId": "A String", # Globally unique ID for a turn-based match.
+      "matchVersion": 42, # The version of this match: an increasing counter, used to avoid out-of-date updates to the match.
+      "participants": [ # The participants involved in the match, along with their statuses. Includes participants who have left or declined invitations.
+        { # This is a JSON template for a participant in a turn-based match.
+          "autoMatched": True or False, # True if this participant was auto-matched with the requesting player.
+          "status": "A String", # The status of the participant with respect to the match.
+              # Possible values are:
+              # - "PARTICIPANT_NOT_INVITED_YET" - The participant is slated to be invited to the match, but the invitation has not been sent; the invite will be sent when it becomes their turn.
+              # - "PARTICIPANT_INVITED" - The participant has been invited to join the match, but has not yet responded.
+              # - "PARTICIPANT_JOINED" - The participant has joined the match (either after creating it or accepting an invitation.)
+              # - "PARTICIPANT_DECLINED" - The participant declined an invitation to join the match.
+              # - "PARTICIPANT_LEFT" - The participant joined the match and then left it.
+              # - "PARTICIPANT_FINISHED" - The participant finished playing in the match.
+              # - "PARTICIPANT_UNRESPONSIVE" - The participant did not take their turn in the allotted time.
+          "kind": "games#turnBasedMatchParticipant", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchParticipant.
+          "autoMatchedPlayer": { # This is a JSON template for an anonymous player # Information about a player that has been anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+            "kind": "games#anonymousPlayer", # Uniquely identifies the type of this resource. Value is always the fixed string games#anonymousPlayer.
+            "avatarImageUrl": "A String", # The base URL for the image to display for the anonymous player.
+            "displayName": "A String", # The name to display for the anonymous player.
+          },
+          "player": { # This is a JSON template for a Player resource. # Information about the player. Not populated if this player was anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+            "kind": "games#player", # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
+            "displayName": "A String", # The name to display for the player.
+            "name": { # An object representation of the individual components of the player's name.
+              "givenName": "A String", # The given name (first name) of this player.
+              "familyName": "A String", # The family name (last name) of this player.
+            },
+            "lastPlayedWith": { # This is a JSON template for 3P metadata about a player playing a game. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
+              "autoMatched": True or False, # True if the player was auto-matched with the currently authenticated user.
+              "kind": "games#played", # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
+              "timeMillis": "A String", # The last time the player played the game in milliseconds since the epoch in UTC.
+            },
+            "playerId": "A String", # The ID of the player.
+            "avatarImageUrl": "A String", # The base URL for the image that represents the player.
+          },
+          "id": "A String", # An identifier for the participant in the scope of the match. Cannot be used to identify a player across matches or in other contexts.
+        },
+      ],
+      "matchNumber": 42, # The number of the match in a chain of rematches. Will be set to 1 for the first match and incremented by 1 for each rematch.
+      "variant": 42, # The variant / mode of the application being played; can be any integer value, or left blank.
+      "lastUpdateDetails": { # This is a JSON template for turn-based match modification metadata. # Details about the last update to the match.
+        "kind": "games#turnBasedMatchModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
+        "modifiedTimestampMillis": "A String", # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
+        "participantId": "A String", # The ID of the participant that modified the match.
+      },
+      "previousMatchData": { # This is a JSON template for a turn-based match data object. # The data / game state for the previous match; set for the first turn of rematches only.
+        "dataAvailable": True or False, # True if this match has data available but it wasn't returned in a list response; fetching the match individually will retrieve this data.
+        "kind": "games#turnBasedMatchData", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
+        "data": "A String", # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
+      },
+      "rematchId": "A String", # The ID of a rematch of this match. Only set for completed matches that have been rematched.
+      "results": [ # The results reported for this match.
+        { # This is a JSON template for a result for a match participant.
+          "kind": "games#participantResult", # Uniquely identifies the type of this resource. Value is always the fixed string games#participantResult.
+          "placing": 42, # The placement or ranking of the participant in the match results; a number from one to the number of participants in the match. Multiple participants may have the same placing value in case of a type.
+          "participantId": "A String", # The ID of the participant.
+          "result": "A String", # The result of the participant for this match.
+              # Possible values are:
+              # - "MATCH_RESULT_WIN" - The participant won the match.
+              # - "MATCH_RESULT_LOSS" - The participant lost the match.
+              # - "MATCH_RESULT_TIE" - The participant tied the match.
+              # - "MATCH_RESULT_NONE" - There was no winner for the match (nobody wins or loses this kind of game.)
+              # - "MATCH_RESULT_DISCONNECT" - The participant disconnected / left during the match.
+              # - "MATCH_RESULT_DISAGREED" - Different clients reported different results for this participant.
+        },
+      ],
+      "pendingParticipantId": "A String", # The ID of the participant that is taking a turn.
+      "applicationId": "A String", # The ID of the application being played.
+      "userMatchStatus": "A String", # The status of the current user in the match. Derived from the match type, match status, the user's participant status, and the pending participant for the match.
+          # Possible values are:
+          # - "USER_INVITED" - The user has been invited to join the match and has not responded yet.
+          # - "USER_AWAITING_TURN" - The user is waiting for their turn.
+          # - "USER_TURN" - The user has an action to take in the match.
+          # - "USER_MATCH_COMPLETED" - The match has ended (it is completed, canceled, or expired.)
+      "description": "A String", # This short description is generated by our servers based on turn state and is localized and worded relative to the player requesting the match. It is intended to be displayed when the match is shown in a list.
+    },
+    "kind": "games#turnBasedMatchRematch", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchRematch.
+    "previousMatch": { # This is a JSON template for a turn-based match resource object. # The old match that the rematch was created from; will be updated such that the rematchId field will point at the new match.
+      "status": "A String", # The status of the match.
+          # Possible values are:
+          # - "MATCH_AUTO_MATCHING" - One or more slots need to be filled by auto-matching; the match cannot be established until they are filled.
+          # - "MATCH_ACTIVE" - The match has started.
+          # - "MATCH_COMPLETE" - The match has finished.
+          # - "MATCH_CANCELED" - The match was canceled.
+          # - "MATCH_EXPIRED" - The match expired due to inactivity.
+          # - "MATCH_DELETED" - The match should no longer be shown on the client. Returned only for tombstones for matches when sync is called.
+      "withParticipantId": "A String", # The ID of another participant in the match that can be used when describing the participants the user is playing with.
+      "kind": "games#turnBasedMatch", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatch.
+      "autoMatchingCriteria": { # This is a JSON template for an turn-based auto-match criteria object. # Criteria for auto-matching players into this match.
+        "kind": "games#turnBasedAutoMatchingCriteria", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedAutoMatchingCriteria.
+        "minAutoMatchingPlayers": 42, # The minimum number of players that should be added to the match by auto-matching.
+        "exclusiveBitmask": "A String", # A bitmask indicating when auto-matches are valid. When ANDed with other exclusive bitmasks, the result must be zero. Can be used to support exclusive roles within a game.
+        "maxAutoMatchingPlayers": 42, # The maximum number of players that should be added to the match by auto-matching.
+      },
+      "creationDetails": { # This is a JSON template for turn-based match modification metadata. # Details about the match creation.
+        "kind": "games#turnBasedMatchModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
+        "modifiedTimestampMillis": "A String", # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
+        "participantId": "A String", # The ID of the participant that modified the match.
+      },
+      "inviterId": "A String", # The ID of the participant that invited the user to the match. Not set if the user was not invited to the match.
+      "data": { # This is a JSON template for a turn-based match data object. # The data / game state for this match.
+        "dataAvailable": True or False, # True if this match has data available but it wasn't returned in a list response; fetching the match individually will retrieve this data.
+        "kind": "games#turnBasedMatchData", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
+        "data": "A String", # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
+      },
+      "matchId": "A String", # Globally unique ID for a turn-based match.
+      "matchVersion": 42, # The version of this match: an increasing counter, used to avoid out-of-date updates to the match.
+      "participants": [ # The participants involved in the match, along with their statuses. Includes participants who have left or declined invitations.
+        { # This is a JSON template for a participant in a turn-based match.
+          "autoMatched": True or False, # True if this participant was auto-matched with the requesting player.
+          "status": "A String", # The status of the participant with respect to the match.
+              # Possible values are:
+              # - "PARTICIPANT_NOT_INVITED_YET" - The participant is slated to be invited to the match, but the invitation has not been sent; the invite will be sent when it becomes their turn.
+              # - "PARTICIPANT_INVITED" - The participant has been invited to join the match, but has not yet responded.
+              # - "PARTICIPANT_JOINED" - The participant has joined the match (either after creating it or accepting an invitation.)
+              # - "PARTICIPANT_DECLINED" - The participant declined an invitation to join the match.
+              # - "PARTICIPANT_LEFT" - The participant joined the match and then left it.
+              # - "PARTICIPANT_FINISHED" - The participant finished playing in the match.
+              # - "PARTICIPANT_UNRESPONSIVE" - The participant did not take their turn in the allotted time.
+          "kind": "games#turnBasedMatchParticipant", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchParticipant.
+          "autoMatchedPlayer": { # This is a JSON template for an anonymous player # Information about a player that has been anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+            "kind": "games#anonymousPlayer", # Uniquely identifies the type of this resource. Value is always the fixed string games#anonymousPlayer.
+            "avatarImageUrl": "A String", # The base URL for the image to display for the anonymous player.
+            "displayName": "A String", # The name to display for the anonymous player.
+          },
+          "player": { # This is a JSON template for a Player resource. # Information about the player. Not populated if this player was anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+            "kind": "games#player", # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
+            "displayName": "A String", # The name to display for the player.
+            "name": { # An object representation of the individual components of the player's name.
+              "givenName": "A String", # The given name (first name) of this player.
+              "familyName": "A String", # The family name (last name) of this player.
+            },
+            "lastPlayedWith": { # This is a JSON template for 3P metadata about a player playing a game. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
+              "autoMatched": True or False, # True if the player was auto-matched with the currently authenticated user.
+              "kind": "games#played", # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
+              "timeMillis": "A String", # The last time the player played the game in milliseconds since the epoch in UTC.
+            },
+            "playerId": "A String", # The ID of the player.
+            "avatarImageUrl": "A String", # The base URL for the image that represents the player.
+          },
+          "id": "A String", # An identifier for the participant in the scope of the match. Cannot be used to identify a player across matches or in other contexts.
+        },
+      ],
+      "matchNumber": 42, # The number of the match in a chain of rematches. Will be set to 1 for the first match and incremented by 1 for each rematch.
+      "variant": 42, # The variant / mode of the application being played; can be any integer value, or left blank.
+      "lastUpdateDetails": { # This is a JSON template for turn-based match modification metadata. # Details about the last update to the match.
+        "kind": "games#turnBasedMatchModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
+        "modifiedTimestampMillis": "A String", # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
+        "participantId": "A String", # The ID of the participant that modified the match.
+      },
+      "previousMatchData": { # This is a JSON template for a turn-based match data object. # The data / game state for the previous match; set for the first turn of rematches only.
+        "dataAvailable": True or False, # True if this match has data available but it wasn't returned in a list response; fetching the match individually will retrieve this data.
+        "kind": "games#turnBasedMatchData", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
+        "data": "A String", # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
+      },
+      "rematchId": "A String", # The ID of a rematch of this match. Only set for completed matches that have been rematched.
+      "results": [ # The results reported for this match.
+        { # This is a JSON template for a result for a match participant.
+          "kind": "games#participantResult", # Uniquely identifies the type of this resource. Value is always the fixed string games#participantResult.
+          "placing": 42, # The placement or ranking of the participant in the match results; a number from one to the number of participants in the match. Multiple participants may have the same placing value in case of a type.
+          "participantId": "A String", # The ID of the participant.
+          "result": "A String", # The result of the participant for this match.
+              # Possible values are:
+              # - "MATCH_RESULT_WIN" - The participant won the match.
+              # - "MATCH_RESULT_LOSS" - The participant lost the match.
+              # - "MATCH_RESULT_TIE" - The participant tied the match.
+              # - "MATCH_RESULT_NONE" - There was no winner for the match (nobody wins or loses this kind of game.)
+              # - "MATCH_RESULT_DISCONNECT" - The participant disconnected / left during the match.
+              # - "MATCH_RESULT_DISAGREED" - Different clients reported different results for this participant.
+        },
+      ],
+      "pendingParticipantId": "A String", # The ID of the participant that is taking a turn.
+      "applicationId": "A String", # The ID of the application being played.
+      "userMatchStatus": "A String", # The status of the current user in the match. Derived from the match type, match status, the user's participant status, and the pending participant for the match.
+          # Possible values are:
+          # - "USER_INVITED" - The user has been invited to join the match and has not responded yet.
+          # - "USER_AWAITING_TURN" - The user is waiting for their turn.
+          # - "USER_TURN" - The user has an action to take in the match.
+          # - "USER_MATCH_COMPLETED" - The match has ended (it is completed, canceled, or expired.)
+      "description": "A String", # This short description is generated by our servers based on turn state and is localized and worded relative to the player requesting the match. It is intended to be displayed when the match is shown in a list.
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="sync">sync(maxCompletedMatches=None, language=None, pageToken=None, maxResults=None, includeMatchData=None)</code>
+  <pre>Returns turn-based matches the player is or was involved in that changed since the last sync call, with the least recent changes coming first. Matches that should be removed from the local cache will have a status of MATCH_DELETED.
+
+Args:
+  maxCompletedMatches: integer, The maximum number of completed or canceled matches to return in the response. If not set, all matches returned could be completed or canceled.
+  language: string, The preferred language to use for strings returned by this method.
+  pageToken: string, The token returned by the previous request.
+  maxResults: integer, The maximum number of matches to return in the response, used for paging. For any response, the actual number of matches to return may be less than the specified maxResults.
+  includeMatchData: boolean, True if match data should be returned in the response. Note that not all data will necessarily be returned if include_match_data is true; the server may decide to only return data for some of the matches to limit download size for the client. The remainder of the data for these matches will be retrievable on request.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for a list of turn-based matches returned from a sync.
+    "nextPageToken": "A String", # The pagination token for the next page of results.
+    "items": [ # The matches.
+      { # This is a JSON template for a turn-based match resource object.
+        "status": "A String", # The status of the match.
+            # Possible values are:
+            # - "MATCH_AUTO_MATCHING" - One or more slots need to be filled by auto-matching; the match cannot be established until they are filled.
+            # - "MATCH_ACTIVE" - The match has started.
+            # - "MATCH_COMPLETE" - The match has finished.
+            # - "MATCH_CANCELED" - The match was canceled.
+            # - "MATCH_EXPIRED" - The match expired due to inactivity.
+            # - "MATCH_DELETED" - The match should no longer be shown on the client. Returned only for tombstones for matches when sync is called.
+        "withParticipantId": "A String", # The ID of another participant in the match that can be used when describing the participants the user is playing with.
+        "kind": "games#turnBasedMatch", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatch.
+        "autoMatchingCriteria": { # This is a JSON template for an turn-based auto-match criteria object. # Criteria for auto-matching players into this match.
+          "kind": "games#turnBasedAutoMatchingCriteria", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedAutoMatchingCriteria.
+          "minAutoMatchingPlayers": 42, # The minimum number of players that should be added to the match by auto-matching.
+          "exclusiveBitmask": "A String", # A bitmask indicating when auto-matches are valid. When ANDed with other exclusive bitmasks, the result must be zero. Can be used to support exclusive roles within a game.
+          "maxAutoMatchingPlayers": 42, # The maximum number of players that should be added to the match by auto-matching.
+        },
+        "creationDetails": { # This is a JSON template for turn-based match modification metadata. # Details about the match creation.
+          "kind": "games#turnBasedMatchModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
+          "modifiedTimestampMillis": "A String", # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
+          "participantId": "A String", # The ID of the participant that modified the match.
+        },
+        "inviterId": "A String", # The ID of the participant that invited the user to the match. Not set if the user was not invited to the match.
+        "data": { # This is a JSON template for a turn-based match data object. # The data / game state for this match.
+          "dataAvailable": True or False, # True if this match has data available but it wasn't returned in a list response; fetching the match individually will retrieve this data.
+          "kind": "games#turnBasedMatchData", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
+          "data": "A String", # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
+        },
+        "matchId": "A String", # Globally unique ID for a turn-based match.
+        "matchVersion": 42, # The version of this match: an increasing counter, used to avoid out-of-date updates to the match.
+        "participants": [ # The participants involved in the match, along with their statuses. Includes participants who have left or declined invitations.
+          { # This is a JSON template for a participant in a turn-based match.
+            "autoMatched": True or False, # True if this participant was auto-matched with the requesting player.
+            "status": "A String", # The status of the participant with respect to the match.
+                # Possible values are:
+                # - "PARTICIPANT_NOT_INVITED_YET" - The participant is slated to be invited to the match, but the invitation has not been sent; the invite will be sent when it becomes their turn.
+                # - "PARTICIPANT_INVITED" - The participant has been invited to join the match, but has not yet responded.
+                # - "PARTICIPANT_JOINED" - The participant has joined the match (either after creating it or accepting an invitation.)
+                # - "PARTICIPANT_DECLINED" - The participant declined an invitation to join the match.
+                # - "PARTICIPANT_LEFT" - The participant joined the match and then left it.
+                # - "PARTICIPANT_FINISHED" - The participant finished playing in the match.
+                # - "PARTICIPANT_UNRESPONSIVE" - The participant did not take their turn in the allotted time.
+            "kind": "games#turnBasedMatchParticipant", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchParticipant.
+            "autoMatchedPlayer": { # This is a JSON template for an anonymous player # Information about a player that has been anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+              "kind": "games#anonymousPlayer", # Uniquely identifies the type of this resource. Value is always the fixed string games#anonymousPlayer.
+              "avatarImageUrl": "A String", # The base URL for the image to display for the anonymous player.
+              "displayName": "A String", # The name to display for the anonymous player.
+            },
+            "player": { # This is a JSON template for a Player resource. # Information about the player. Not populated if this player was anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+              "kind": "games#player", # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
+              "displayName": "A String", # The name to display for the player.
+              "name": { # An object representation of the individual components of the player's name.
+                "givenName": "A String", # The given name (first name) of this player.
+                "familyName": "A String", # The family name (last name) of this player.
+              },
+              "lastPlayedWith": { # This is a JSON template for 3P metadata about a player playing a game. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
+                "autoMatched": True or False, # True if the player was auto-matched with the currently authenticated user.
+                "kind": "games#played", # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
+                "timeMillis": "A String", # The last time the player played the game in milliseconds since the epoch in UTC.
+              },
+              "playerId": "A String", # The ID of the player.
+              "avatarImageUrl": "A String", # The base URL for the image that represents the player.
+            },
+            "id": "A String", # An identifier for the participant in the scope of the match. Cannot be used to identify a player across matches or in other contexts.
+          },
+        ],
+        "matchNumber": 42, # The number of the match in a chain of rematches. Will be set to 1 for the first match and incremented by 1 for each rematch.
+        "variant": 42, # The variant / mode of the application being played; can be any integer value, or left blank.
+        "lastUpdateDetails": { # This is a JSON template for turn-based match modification metadata. # Details about the last update to the match.
+          "kind": "games#turnBasedMatchModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
+          "modifiedTimestampMillis": "A String", # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
+          "participantId": "A String", # The ID of the participant that modified the match.
+        },
+        "previousMatchData": { # This is a JSON template for a turn-based match data object. # The data / game state for the previous match; set for the first turn of rematches only.
+          "dataAvailable": True or False, # True if this match has data available but it wasn't returned in a list response; fetching the match individually will retrieve this data.
+          "kind": "games#turnBasedMatchData", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
+          "data": "A String", # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
+        },
+        "rematchId": "A String", # The ID of a rematch of this match. Only set for completed matches that have been rematched.
+        "results": [ # The results reported for this match.
+          { # This is a JSON template for a result for a match participant.
+            "kind": "games#participantResult", # Uniquely identifies the type of this resource. Value is always the fixed string games#participantResult.
+            "placing": 42, # The placement or ranking of the participant in the match results; a number from one to the number of participants in the match. Multiple participants may have the same placing value in case of a type.
+            "participantId": "A String", # The ID of the participant.
+            "result": "A String", # The result of the participant for this match.
+                # Possible values are:
+                # - "MATCH_RESULT_WIN" - The participant won the match.
+                # - "MATCH_RESULT_LOSS" - The participant lost the match.
+                # - "MATCH_RESULT_TIE" - The participant tied the match.
+                # - "MATCH_RESULT_NONE" - There was no winner for the match (nobody wins or loses this kind of game.)
+                # - "MATCH_RESULT_DISCONNECT" - The participant disconnected / left during the match.
+                # - "MATCH_RESULT_DISAGREED" - Different clients reported different results for this participant.
+          },
+        ],
+        "pendingParticipantId": "A String", # The ID of the participant that is taking a turn.
+        "applicationId": "A String", # The ID of the application being played.
+        "userMatchStatus": "A String", # The status of the current user in the match. Derived from the match type, match status, the user's participant status, and the pending participant for the match.
+            # Possible values are:
+            # - "USER_INVITED" - The user has been invited to join the match and has not responded yet.
+            # - "USER_AWAITING_TURN" - The user is waiting for their turn.
+            # - "USER_TURN" - The user has an action to take in the match.
+            # - "USER_MATCH_COMPLETED" - The match has ended (it is completed, canceled, or expired.)
+        "description": "A String", # This short description is generated by our servers based on turn state and is localized and worded relative to the player requesting the match. It is intended to be displayed when the match is shown in a list.
+      },
+    ],
+    "kind": "games#turnBasedMatchSync", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchSync.
+    "moreAvailable": True or False, # True if there were more matches available to fetch at the time the response was generated (which were not returned due to page size limits.)
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="sync_next">sync_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="takeTurn">takeTurn(matchId, body, language=None)</code>
+  <pre>Commit the results of a player turn.
+
+Args:
+  matchId: string, The ID of the match. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # This is a JSON template for the object representing a turn.
+    "kind": "games#turnBasedMatchTurn", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchTurn.
+    "results": [ # The match results for the participants in the match.
+      { # This is a JSON template for a result for a match participant.
+        "kind": "games#participantResult", # Uniquely identifies the type of this resource. Value is always the fixed string games#participantResult.
+        "placing": 42, # The placement or ranking of the participant in the match results; a number from one to the number of participants in the match. Multiple participants may have the same placing value in case of a type.
+        "participantId": "A String", # The ID of the participant.
+        "result": "A String", # The result of the participant for this match.
+            # Possible values are:
+            # - "MATCH_RESULT_WIN" - The participant won the match.
+            # - "MATCH_RESULT_LOSS" - The participant lost the match.
+            # - "MATCH_RESULT_TIE" - The participant tied the match.
+            # - "MATCH_RESULT_NONE" - There was no winner for the match (nobody wins or loses this kind of game.)
+            # - "MATCH_RESULT_DISCONNECT" - The participant disconnected / left during the match.
+            # - "MATCH_RESULT_DISAGREED" - Different clients reported different results for this participant.
+      },
+    ],
+    "data": { # This is a JSON template for sending a turn-based match data object. # The shared game state data after the turn is over.
+      "kind": "games#turnBasedMatchDataRequest", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchDataRequest.
+      "data": "A String", # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
+    },
+    "matchVersion": 42, # The version of this match: an increasing counter, used to avoid out-of-date updates to the match.
+    "pendingParticipantId": "A String", # The ID of the participant who should take their turn next. May be set to the current player's participant ID to update match state without changing the turn. If not set, the match will wait for other player(s) to join via automatching; this is only valid if automatch criteria is set on the match with remaining slots for automatched players.
+  }
+
+  language: string, The preferred language to use for strings returned by this method.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for a turn-based match resource object.
+    "status": "A String", # The status of the match.
+        # Possible values are:
+        # - "MATCH_AUTO_MATCHING" - One or more slots need to be filled by auto-matching; the match cannot be established until they are filled.
+        # - "MATCH_ACTIVE" - The match has started.
+        # - "MATCH_COMPLETE" - The match has finished.
+        # - "MATCH_CANCELED" - The match was canceled.
+        # - "MATCH_EXPIRED" - The match expired due to inactivity.
+        # - "MATCH_DELETED" - The match should no longer be shown on the client. Returned only for tombstones for matches when sync is called.
+    "withParticipantId": "A String", # The ID of another participant in the match that can be used when describing the participants the user is playing with.
+    "kind": "games#turnBasedMatch", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatch.
+    "autoMatchingCriteria": { # This is a JSON template for an turn-based auto-match criteria object. # Criteria for auto-matching players into this match.
+      "kind": "games#turnBasedAutoMatchingCriteria", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedAutoMatchingCriteria.
+      "minAutoMatchingPlayers": 42, # The minimum number of players that should be added to the match by auto-matching.
+      "exclusiveBitmask": "A String", # A bitmask indicating when auto-matches are valid. When ANDed with other exclusive bitmasks, the result must be zero. Can be used to support exclusive roles within a game.
+      "maxAutoMatchingPlayers": 42, # The maximum number of players that should be added to the match by auto-matching.
+    },
+    "creationDetails": { # This is a JSON template for turn-based match modification metadata. # Details about the match creation.
+      "kind": "games#turnBasedMatchModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
+      "modifiedTimestampMillis": "A String", # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
+      "participantId": "A String", # The ID of the participant that modified the match.
+    },
+    "inviterId": "A String", # The ID of the participant that invited the user to the match. Not set if the user was not invited to the match.
+    "data": { # This is a JSON template for a turn-based match data object. # The data / game state for this match.
+      "dataAvailable": True or False, # True if this match has data available but it wasn't returned in a list response; fetching the match individually will retrieve this data.
+      "kind": "games#turnBasedMatchData", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
+      "data": "A String", # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
+    },
+    "matchId": "A String", # Globally unique ID for a turn-based match.
+    "matchVersion": 42, # The version of this match: an increasing counter, used to avoid out-of-date updates to the match.
+    "participants": [ # The participants involved in the match, along with their statuses. Includes participants who have left or declined invitations.
+      { # This is a JSON template for a participant in a turn-based match.
+        "autoMatched": True or False, # True if this participant was auto-matched with the requesting player.
+        "status": "A String", # The status of the participant with respect to the match.
+            # Possible values are:
+            # - "PARTICIPANT_NOT_INVITED_YET" - The participant is slated to be invited to the match, but the invitation has not been sent; the invite will be sent when it becomes their turn.
+            # - "PARTICIPANT_INVITED" - The participant has been invited to join the match, but has not yet responded.
+            # - "PARTICIPANT_JOINED" - The participant has joined the match (either after creating it or accepting an invitation.)
+            # - "PARTICIPANT_DECLINED" - The participant declined an invitation to join the match.
+            # - "PARTICIPANT_LEFT" - The participant joined the match and then left it.
+            # - "PARTICIPANT_FINISHED" - The participant finished playing in the match.
+            # - "PARTICIPANT_UNRESPONSIVE" - The participant did not take their turn in the allotted time.
+        "kind": "games#turnBasedMatchParticipant", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchParticipant.
+        "autoMatchedPlayer": { # This is a JSON template for an anonymous player # Information about a player that has been anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+          "kind": "games#anonymousPlayer", # Uniquely identifies the type of this resource. Value is always the fixed string games#anonymousPlayer.
+          "avatarImageUrl": "A String", # The base URL for the image to display for the anonymous player.
+          "displayName": "A String", # The name to display for the anonymous player.
+        },
+        "player": { # This is a JSON template for a Player resource. # Information about the player. Not populated if this player was anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
+          "kind": "games#player", # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
+          "displayName": "A String", # The name to display for the player.
+          "name": { # An object representation of the individual components of the player's name.
+            "givenName": "A String", # The given name (first name) of this player.
+            "familyName": "A String", # The family name (last name) of this player.
+          },
+          "lastPlayedWith": { # This is a JSON template for 3P metadata about a player playing a game. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
+            "autoMatched": True or False, # True if the player was auto-matched with the currently authenticated user.
+            "kind": "games#played", # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
+            "timeMillis": "A String", # The last time the player played the game in milliseconds since the epoch in UTC.
+          },
+          "playerId": "A String", # The ID of the player.
+          "avatarImageUrl": "A String", # The base URL for the image that represents the player.
+        },
+        "id": "A String", # An identifier for the participant in the scope of the match. Cannot be used to identify a player across matches or in other contexts.
+      },
+    ],
+    "matchNumber": 42, # The number of the match in a chain of rematches. Will be set to 1 for the first match and incremented by 1 for each rematch.
+    "variant": 42, # The variant / mode of the application being played; can be any integer value, or left blank.
+    "lastUpdateDetails": { # This is a JSON template for turn-based match modification metadata. # Details about the last update to the match.
+      "kind": "games#turnBasedMatchModification", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
+      "modifiedTimestampMillis": "A String", # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
+      "participantId": "A String", # The ID of the participant that modified the match.
+    },
+    "previousMatchData": { # This is a JSON template for a turn-based match data object. # The data / game state for the previous match; set for the first turn of rematches only.
+      "dataAvailable": True or False, # True if this match has data available but it wasn't returned in a list response; fetching the match individually will retrieve this data.
+      "kind": "games#turnBasedMatchData", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
+      "data": "A String", # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
+    },
+    "rematchId": "A String", # The ID of a rematch of this match. Only set for completed matches that have been rematched.
+    "results": [ # The results reported for this match.
+      { # This is a JSON template for a result for a match participant.
+        "kind": "games#participantResult", # Uniquely identifies the type of this resource. Value is always the fixed string games#participantResult.
+        "placing": 42, # The placement or ranking of the participant in the match results; a number from one to the number of participants in the match. Multiple participants may have the same placing value in case of a type.
+        "participantId": "A String", # The ID of the participant.
+        "result": "A String", # The result of the participant for this match.
+            # Possible values are:
+            # - "MATCH_RESULT_WIN" - The participant won the match.
+            # - "MATCH_RESULT_LOSS" - The participant lost the match.
+            # - "MATCH_RESULT_TIE" - The participant tied the match.
+            # - "MATCH_RESULT_NONE" - There was no winner for the match (nobody wins or loses this kind of game.)
+            # - "MATCH_RESULT_DISCONNECT" - The participant disconnected / left during the match.
+            # - "MATCH_RESULT_DISAGREED" - Different clients reported different results for this participant.
+      },
+    ],
+    "pendingParticipantId": "A String", # The ID of the participant that is taking a turn.
+    "applicationId": "A String", # The ID of the application being played.
+    "userMatchStatus": "A String", # The status of the current user in the match. Derived from the match type, match status, the user's participant status, and the pending participant for the match.
+        # Possible values are:
+        # - "USER_INVITED" - The user has been invited to join the match and has not responded yet.
+        # - "USER_AWAITING_TURN" - The user is waiting for their turn.
+        # - "USER_TURN" - The user has an action to take in the match.
+        # - "USER_MATCH_COMPLETED" - The match has ended (it is completed, canceled, or expired.)
+    "description": "A String", # This short description is generated by our servers based on turn state and is localized and worded relative to the player requesting the match. It is intended to be displayed when the match is shown in a list.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gan_v1beta1.advertisers.html b/docs/dyn/gan_v1beta1.advertisers.html
new file mode 100644
index 0000000..0ff960c
--- /dev/null
+++ b/docs/dyn/gan_v1beta1.advertisers.html
@@ -0,0 +1,219 @@
+<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="gan_v1beta1.html">Google Affiliate Network API</a> . <a href="gan_v1beta1.advertisers.html">advertisers</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(role, roleId, advertiserId=None)</a></code></p>
+<p class="firstline">Retrieves data about a single advertiser if that the requesting advertiser/publisher has access to it. Only publishers can lookup advertisers. Advertisers can request information about themselves by omitting the advertiserId query parameter.</p>
+<p class="toc_element">
+  <code><a href="#list">list(role, roleId, relationshipStatus=None, pageToken=None, minNinetyDayEpc=None, advertiserCategory=None, maxResults=None, minSevenDayEpc=None, minPayoutRank=None)</a></code></p>
+<p class="firstline">Retrieves data about all advertisers that the requesting advertiser/publisher has access to.</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(role, roleId, advertiserId=None)</code>
+  <pre>Retrieves data about a single advertiser if that the requesting advertiser/publisher has access to it. Only publishers can lookup advertisers. Advertisers can request information about themselves by omitting the advertiserId query parameter.
+
+Args:
+  role: string, The role of the requester. Valid values: 'advertisers' or 'publishers'. (required)
+    Allowed values
+      advertisers - The requester is requesting as an advertiser.
+      publishers - The requester is requesting as a publisher.
+  roleId: string, The ID of the requesting advertiser or publisher. (required)
+  advertiserId: string, The ID of the advertiser to look up. Optional.
+
+Returns:
+  An object of the form:
+
+    { # An AdvertiserResource.
+    "category": "A String", # Category that this advertiser belongs to. A valid list of categories can be found here: http://www.google.com/support/affiliatenetwork/advertiser/bin/answer.py?hl=en&answer=107581
+    "contactEmail": "A String", # Email that this advertiser would like publishers to contact them with.
+    "kind": "gan#advertiser", # The kind for an advertiser.
+    "siteUrl": "A String", # URL of the website this advertiser advertises from.
+    "contactPhone": "A String", # Phone that this advertiser would like publishers to contact them with.
+    "description": "A String", # Description of the website the advertiser advertises from.
+    "merchantCenterIds": [ # List of merchant center ids for this advertiser
+      "A String",
+    ],
+    "defaultLinkId": "A String", # The default link id for this advertiser.
+    "epcSevenDayAverage": { # An ApiMoneyProto. # The sum of fees paid to publishers divided by the total number of clicks over the past seven days. This value should be multiplied by 100 at the time of display.
+      "amount": 3.14, # The amount of money.
+      "currencyCode": "A String", # The 3-letter code of the currency in question.
+    },
+    "commissionDuration": 42, # The longest possible length of a commission (how long the cookies on the customer's browser last before they expire).
+    "status": "A String", # The status of the requesting publisher's relationship this advertiser.
+    "payoutRank": "A String", # A rank based on commissions paid to publishers over the past 90 days. A number between 1 and 4 where 4 means the top quartile (most money paid) and 1 means the bottom quartile (least money paid).
+    "epcNinetyDayAverage": { # An ApiMoneyProto. # The sum of fees paid to publishers divided by the total number of clicks over the past three months. This value should be multiplied by 100 at the time of display.
+      "amount": 3.14, # The amount of money.
+      "currencyCode": "A String", # The 3-letter code of the currency in question.
+    },
+    "allowPublisherCreatedLinks": True or False, # True if the advertiser allows publisher created links, otherwise false.
+    "item": # Object with schema name: Advertiser # The requested advertiser.
+    "joinDate": "A String", # Date that this advertiser was approved as a Google Affiliate Network advertiser.
+    "logoUrl": "A String", # URL to the logo this advertiser uses on the Google Affiliate Network.
+    "redirectDomains": [ # List of redirect URLs for this advertiser
+      "A String",
+    ],
+    "id": "A String", # The ID of this advertiser.
+    "productFeedsEnabled": True or False, # Allows advertisers to submit product listings to Google Product Search.
+    "name": "A String", # The name of this advertiser.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(role, roleId, relationshipStatus=None, pageToken=None, minNinetyDayEpc=None, advertiserCategory=None, maxResults=None, minSevenDayEpc=None, minPayoutRank=None)</code>
+  <pre>Retrieves data about all advertisers that the requesting advertiser/publisher has access to.
+
+Args:
+  role: string, The role of the requester. Valid values: 'advertisers' or 'publishers'. (required)
+    Allowed values
+      advertisers - The requester is requesting as an advertiser.
+      publishers - The requester is requesting as a publisher.
+  roleId: string, The ID of the requesting advertiser or publisher. (required)
+  relationshipStatus: string, Filters out all advertisers for which do not have the given relationship status with the requesting publisher.
+    Allowed values
+      approved - An advertiser that has approved your application.
+      available - An advertiser program that's accepting new publishers.
+      deactivated - Deactivated means either the advertiser has removed you from their program, or it could also mean that you chose to remove yourself from the advertiser's program.
+      declined - An advertiser that did not approve your application.
+      pending - An advertiser program that you've already applied to, but they haven't yet decided to approve or decline your application.
+  pageToken: string, The value of 'nextPageToken' from the previous page. Optional.
+  minNinetyDayEpc: number, Filters out all advertisers that have a ninety day EPC average lower than the given value (inclusive). Min value: 0.0. Optional.
+  advertiserCategory: string, Caret(^) delimted list of advertiser categories. Valid categories are defined here: http://www.google.com/support/affiliatenetwork/advertiser/bin/answer.py?hl=en&answer=107581. Filters out all advertisers not in one of the given advertiser categories. Optional.
+  maxResults: integer, Max number of items to return in this page. Optional. Defaults to 20.
+  minSevenDayEpc: number, Filters out all advertisers that have a seven day EPC average lower than the given value (inclusive). Min value: 0.0. Optional.
+  minPayoutRank: integer, A value between 1 and 4, where 1 represents the quartile of advertisers with the lowest ranks and 4 represents the quartile of advertisers with the highest ranks. Filters out all advertisers with a lower rank than the given quartile. For example if a 2 was given only advertisers with a payout rank of 25 or higher would be included. Optional.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # The 'pageToken' to pass to the next request to get the next page, if there are more to retrieve.
+    "items": [ # The advertiser list.
+      { # An AdvertiserResource.
+        "category": "A String", # Category that this advertiser belongs to. A valid list of categories can be found here: http://www.google.com/support/affiliatenetwork/advertiser/bin/answer.py?hl=en&answer=107581
+        "contactEmail": "A String", # Email that this advertiser would like publishers to contact them with.
+        "kind": "gan#advertiser", # The kind for an advertiser.
+        "siteUrl": "A String", # URL of the website this advertiser advertises from.
+        "contactPhone": "A String", # Phone that this advertiser would like publishers to contact them with.
+        "description": "A String", # Description of the website the advertiser advertises from.
+        "merchantCenterIds": [ # List of merchant center ids for this advertiser
+          "A String",
+        ],
+        "defaultLinkId": "A String", # The default link id for this advertiser.
+        "epcSevenDayAverage": { # An ApiMoneyProto. # The sum of fees paid to publishers divided by the total number of clicks over the past seven days. This value should be multiplied by 100 at the time of display.
+          "amount": 3.14, # The amount of money.
+          "currencyCode": "A String", # The 3-letter code of the currency in question.
+        },
+        "commissionDuration": 42, # The longest possible length of a commission (how long the cookies on the customer's browser last before they expire).
+        "status": "A String", # The status of the requesting publisher's relationship this advertiser.
+        "payoutRank": "A String", # A rank based on commissions paid to publishers over the past 90 days. A number between 1 and 4 where 4 means the top quartile (most money paid) and 1 means the bottom quartile (least money paid).
+        "epcNinetyDayAverage": { # An ApiMoneyProto. # The sum of fees paid to publishers divided by the total number of clicks over the past three months. This value should be multiplied by 100 at the time of display.
+          "amount": 3.14, # The amount of money.
+          "currencyCode": "A String", # The 3-letter code of the currency in question.
+        },
+        "allowPublisherCreatedLinks": True or False, # True if the advertiser allows publisher created links, otherwise false.
+        "item": # Object with schema name: Advertiser # The requested advertiser.
+        "joinDate": "A String", # Date that this advertiser was approved as a Google Affiliate Network advertiser.
+        "logoUrl": "A String", # URL to the logo this advertiser uses on the Google Affiliate Network.
+        "redirectDomains": [ # List of redirect URLs for this advertiser
+          "A String",
+        ],
+        "id": "A String", # The ID of this advertiser.
+        "productFeedsEnabled": True or False, # Allows advertisers to submit product listings to Google Product Search.
+        "name": "A String", # The name of this advertiser.
+      },
+    ],
+    "kind": "gan#advertisers", # The kind for a page of advertisers.
+  }</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/gan_v1beta1.ccOffers.html b/docs/dyn/gan_v1beta1.ccOffers.html
new file mode 100644
index 0000000..a40868b
--- /dev/null
+++ b/docs/dyn/gan_v1beta1.ccOffers.html
@@ -0,0 +1,197 @@
+<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="gan_v1beta1.html">Google Affiliate Network API</a> . <a href="gan_v1beta1.ccOffers.html">ccOffers</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(publisher, advertiser=None, projection=None)</a></code></p>
+<p class="firstline">Retrieves credit card offers for the given publisher.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(publisher, advertiser=None, projection=None)</code>
+  <pre>Retrieves credit card offers for the given publisher.
+
+Args:
+  publisher: string, The ID of the publisher in question. (required)
+  advertiser: string, The advertiser ID of a card issuer whose offers to include. Optional, may be repeated. (repeated)
+  projection: string, The set of fields to return.
+    Allowed values
+      full - Include all offer fields. This is the default.
+      summary - Include only the basic fields needed to display an offer.
+
+Returns:
+  An object of the form:
+
+    {
+    "items": [ # The credit card offers.
+      { # A credit card offer. There are many possible result fields. We provide two different views of the data, or "projections." The "full" projection includes every result field. And the "summary" projection, which is the default, includes a smaller subset of the fields. The fields included in the summary projection are marked as such in their descriptions.
+        "luggageInsurance": "A String", # If you get coverage when you use the card for the given activity, this field describes it.
+        "creditLimitMin": 3.14, # The low end for credit limits the issuer imposes on recipients of this card.
+        "cardName": "A String", # The issuer's name for the card, including any trademark or service mark designators. A summary field.
+        "creditLimitMax": 3.14, # The high end for credit limits the issuer imposes on recipients of this card.
+        "gracePeriodDisplay": "A String", # Text describing the grace period before finance charges apply. A summary field.
+        "offerId": "A String", # This offer's ID. A summary field.
+        "rewardUnit": "A String", # For cards with rewards programs, the unit of reward. For example, miles, cash back, points.
+        "minPurchaseRate": 3.14, # The lowest interest rate the issuer charges on this card. Expressed as an absolute number, not as a percentage.
+        "cardBenefits": [ # A list of what the issuer thinks are the most important benefits of the card. Usually summarizes the rewards program, if there is one. A summary field.
+          "A String",
+        ],
+        "rewards": [ # For cards with rewards programs, detailed rules about how the program works.
+          {
+            "category": "A String", # The kind of purchases covered by this rule.
+            "minRewardTier": 3.14, # The minimum purchase amount in the given category before this rule applies.
+            "maxRewardTier": 3.14, # The maximum purchase amount in the given category for this rule to apply.
+            "expirationMonths": 3.14, # How long rewards granted by this rule last.
+            "amount": 3.14, # The number of units rewarded per purchase dollar.
+            "additionalDetails": "A String", # Other limits, for example, if this rule only applies during an introductory period.
+          },
+        ],
+        "offersImmediateCashReward": True or False, # Whether a cash reward program lets you get cash back sooner than end of year or other longish period.
+        "travelInsurance": "A String", # If you get coverage when you use the card for the given activity, this field describes it.
+        "returnedPaymentFee": "A String", # Text describing the fee for a payment that doesn't clear. A summary field.
+        "kind": "gan#ccOffer", # The kind for one credit card offer. A summary field.
+        "issuer": "A String", # Name of card issuer. A summary field.
+        "maxPurchaseRate": 3.14, # The highest interest rate the issuer charges on this card. Expressed as an absolute number, not as a percentage.
+        "minimumFinanceCharge": "A String", # Text describing how much missing the grace period will cost.
+        "existingCustomerOnly": True or False, # Whether this card is only available to existing customers of the issuer.
+        "annualFeeDisplay": "A String", # Text describing the annual fee, including any difference for the first year. A summary field.
+        "initialSetupAndProcessingFee": "A String", # Fee for setting up the card.
+        "issuerId": "A String", # The Google Affiliate Network ID of the advertiser making this offer.
+        "purchaseRateAdditionalDetails": "A String", # Text describing any additional details for the purchase rate. A summary field.
+        "prohibitedCategories": [ # Categories in which the issuer does not wish the card to be displayed. A summary field.
+          "A String",
+        ],
+        "fraudLiability": "A String", # If you get coverage when you use the card for the given activity, this field describes it.
+        "cashAdvanceTerms": "A String", # Text describing the terms for cash advances. A summary field.
+        "landingPageUrl": "A String", # The link to the issuer's page for this card. A summary field.
+        "introCashAdvanceTerms": "A String", # Text describing the terms for introductory period cash advances. A summary field.
+        "rewardsExpire": True or False, # Whether accumulated rewards ever expire.
+        "introPurchaseTerms": "A String", # Text describing the terms for introductory period purchases. A summary field.
+        "defaultFees": [ # Fees for defaulting on your payments.
+          {
+            "category": "A String", # The type of charge, for example Purchases.
+            "maxRate": 3.14, # The highest rate the issuer may charge for defaulting on debt in this category. Expressed as an absolute number, not as a percentage.
+            "minRate": 3.14, # The lowest rate the issuer may charge for defaulting on debt in this category. Expressed as an absolute number, not as a percentage.
+            "rateType": "A String", # Fixed or variable.
+          },
+        ],
+        "extendedWarranty": "A String", # If you get coverage when you use the card for the given activity, this field describes it.
+        "emergencyInsurance": "A String", # If you get coverage when you use the card for the given activity, this field describes it.
+        "firstYearAnnualFee": 3.14, # The annual fee for the first year, if different from the ongoing fee. Optional.
+        "trackingUrl": "A String", # The link to ping to register a click on this offer. A summary field.
+        "latePaymentFee": "A String", # Text describing how much a late payment will cost, eg "up to $35." A summary field.
+        "overLimitFee": "A String", # Fee for exceeding the card's charge limit.
+        "cardType": "A String", # What kind of credit card this is, for example secured or unsecured.
+        "approvedCategories": [ # Possible categories for this card, eg "Low Interest" or "Good." A summary field.
+          "A String",
+        ],
+        "rewardPartner": "A String", # The company that redeems the rewards, if different from the issuer.
+        "introBalanceTransferTerms": "A String", # Text describing the terms for introductory period balance transfers. A summary field.
+        "foreignCurrencyTransactionFee": "A String", # Fee for each transaction involving a foreign currency.
+        "annualFee": 3.14, # The ongoing annual fee, in dollars.
+        "issuerWebsite": "A String", # The generic link to the issuer's site.
+        "variableRatesUpdateFrequency": "A String", # How often variable rates are updated.
+        "carRentalInsurance": "A String", # If you get coverage when you use the card for the given activity, this field describes it.
+        "additionalCardBenefits": [ # More marketing copy about the card's benefits. A summary field.
+          "A String",
+        ],
+        "ageMinimum": 3.14, # The youngest a recipient of this card may be.
+        "balanceComputationMethod": "A String", # Text describing how the balance is computed. A summary field.
+        "aprDisplay": "A String", # Text describing the purchase APR. A summary field.
+        "additionalCardHolderFee": "A String", # Any extra fees levied on card holders.
+        "variableRatesLastUpdated": "A String", # When variable rates were last updated.
+        "network": "A String", # Which network (eg Visa) the card belongs to. A summary field.
+        "purchaseRateType": "A String", # Fixed or variable.
+        "statementCopyFee": "A String", # Fee for requesting a copy of your statement.
+        "rewardsHaveBlackoutDates": True or False, # For airline miles rewards, tells whether blackout dates apply to the miles.
+        "creditRatingDisplay": "A String", # Text describing the credit ratings required for recipients of this card, for example "Excellent/Good." A summary field.
+        "flightAccidentInsurance": "A String", # If you get coverage when you use the card for the given activity, this field describes it.
+        "annualRewardMaximum": 3.14, # The largest number of units you may accumulate in a year.
+        "balanceTransferTerms": "A String", # Text describing the terms for balance transfers. A summary field.
+        "bonusRewards": [ # For cards with rewards programs, extra circumstances whereby additional rewards may be granted.
+          {
+            "amount": 3.14, # How many units of reward will be granted.
+            "details": "A String", # The circumstances under which this rule applies, for example, booking a flight via Orbitz.
+          },
+        ],
+        "imageUrl": "A String", # The link to the image of the card that is shown on Connect Commerce. A summary field.
+        "ageMinimumDetails": "A String", # Text describing the details of the age minimum restriction.
+        "disclaimer": "A String", # A notice that, if present, is referenced via an asterisk by many of the other summary fields. If this field is present, it will always start with an asterisk ("*"), and must be prominently displayed with the offer. A summary field.
+      },
+    ],
+    "kind": "gan#ccOffers", # The kind for a page of credit card offers.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gan_v1beta1.events.html b/docs/dyn/gan_v1beta1.events.html
new file mode 100644
index 0000000..3831857
--- /dev/null
+++ b/docs/dyn/gan_v1beta1.events.html
@@ -0,0 +1,206 @@
+<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="gan_v1beta1.html">Google Affiliate Network API</a> . <a href="gan_v1beta1.events.html">events</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(role, roleId, orderId=None, chargeType=None, linkId=None, advertiserId=None, sku=None, pageToken=None, productCategory=None, modifyDateMin=None, type=None, status=None, modifyDateMax=None, eventDateMin=None, maxResults=None, eventDateMax=None, memberId=None, publisherId=None)</a></code></p>
+<p class="firstline">Retrieves event data for a given advertiser/publisher.</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(role, roleId, orderId=None, chargeType=None, linkId=None, advertiserId=None, sku=None, pageToken=None, productCategory=None, modifyDateMin=None, type=None, status=None, modifyDateMax=None, eventDateMin=None, maxResults=None, eventDateMax=None, memberId=None, publisherId=None)</code>
+  <pre>Retrieves event data for a given advertiser/publisher.
+
+Args:
+  role: string, The role of the requester. Valid values: 'advertisers' or 'publishers'. (required)
+    Allowed values
+      advertisers - The requester is requesting as an advertiser.
+      publishers - The requester is requesting as a publisher.
+  roleId: string, The ID of the requesting advertiser or publisher. (required)
+  orderId: string, Caret(^) delimited list of order IDs. Filters out all events that do not reference one of the given order IDs. Optional.
+  chargeType: string, Filters out all charge events that are not of the given charge type. Valid values: 'other', 'slotting_fee', 'monthly_minimum', 'tier_bonus', 'credit', 'debit'. Optional.
+    Allowed values
+      credit - A credit increases the publisher's payout amount and decreases the advertiser's invoice amount.
+      debit - A debit reduces the publisher's payout and increases the advertiser's invoice amount.
+      monthly_minimum - A payment made to Google by an advertiser as a minimum monthly network fee.
+      other - Catch all. Default if unset
+      slotting_fee - A one time payment made from an advertiser to a publisher.
+      tier_bonus - A payment from an advertiser to a publisher for the publisher maintaining a high tier level
+  linkId: string, Caret(^) delimited list of link IDs. Filters out all events that do not reference one of the given link IDs. Optional.
+  advertiserId: string, Caret(^) delimited list of advertiser IDs. Filters out all events that do not reference one of the given advertiser IDs. Only used when under publishers role. Optional.
+  sku: string, Caret(^) delimited list of SKUs. Filters out all events that do not reference one of the given SKU. Optional.
+  pageToken: string, The value of 'nextPageToken' from the previous page. Optional.
+  productCategory: string, Caret(^) delimited list of product categories. Filters out all events that do not reference a product in one of the given product categories. Optional.
+  modifyDateMin: string, Filters out all events modified earlier than given date. Optional. Defaults to 24 hours before the current modifyDateMax, if modifyDateMax is explicitly set.
+  type: string, Filters out all events that are not of the given type. Valid values: 'action', 'transaction', 'charge'. Optional.
+    Allowed values
+      action - The completion of an application, sign-up, or other process. For example, an action occurs if a user clicks an ad for a credit card and completes an application for that card.
+      charge - A charge event is typically a payment between an advertiser, publisher or Google.
+      transaction - A conversion event, typically an e-commerce transaction. Some advertisers use a transaction to record other types of events, such as magazine subscriptions.
+  status: string, Filters out all events that do not have the given status. Valid values: 'active', 'canceled'. Optional.
+    Allowed values
+      active - Event is currently active.
+      canceled - Event is currently canceled.
+  modifyDateMax: string, Filters out all events modified later than given date. Optional. Defaults to 24 hours after modifyDateMin, if modifyDateMin is explicitly set.
+  eventDateMin: string, Filters out all events earlier than given date. Optional. Defaults to 24 hours from current date/time.
+  maxResults: integer, Max number of offers to return in this page. Optional. Defaults to 20.
+  eventDateMax: string, Filters out all events later than given date. Optional. Defaults to 24 hours after eventMin.
+  memberId: string, Caret(^) delimited list of member IDs. Filters out all events that do not reference one of the given member IDs. Optional.
+  publisherId: string, Caret(^) delimited list of publisher IDs. Filters out all events that do not reference one of the given publishers IDs. Only used when under advertiser role. Optional.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # The 'pageToken' to pass to the next request to get the next page, if there are more to retrieve.
+    "items": [ # The event list.
+      { # An EventResource.
+        "networkFee": { # An ApiMoneyProto. # Fee that the advertiser paid to the Google Affiliate Network.
+          "amount": 3.14, # The amount of money.
+          "currencyCode": "A String", # The 3-letter code of the currency in question.
+        },
+        "advertiserName": "A String", # The name of the advertiser for this event.
+        "kind": "gan#event", # The kind for one event.
+        "modifyDate": "A String", # The date-time this event was last modified as a RFC 3339 date-time value.
+        "type": "A String", # Type of the event (action|transaction|charge).
+        "orderId": "A String", # The order ID for this event. Only returned for conversion events.
+        "publisherName": "A String", # The name of the publisher for this event.
+        "memberId": "A String", # The ID of the member attached to this event. Only returned for conversion events.
+        "advertiserId": "A String", # The ID of advertiser for this event.
+        "status": "A String", # Status of the event (active|canceled). Only returned for charge and conversion events.
+        "chargeId": "A String", # The charge ID for this event. Only returned for charge events.
+        "products": [ # Products associated with the event.
+          {
+            "networkFee": { # An ApiMoneyProto. # Fee that the advertiser paid to the Google Affiliate Network for this product.
+              "amount": 3.14, # The amount of money.
+              "currencyCode": "A String", # The 3-letter code of the currency in question.
+            },
+            "sku": "A String", # Sku of this product.
+            "categoryName": "A String", # Name of the category this product belongs to.
+            "skuName": "A String", # Sku name of this product.
+            "publisherFee": { # An ApiMoneyProto. # Fee that the advertiser paid to the publisehr for this product.
+              "amount": 3.14, # The amount of money.
+              "currencyCode": "A String", # The 3-letter code of the currency in question.
+            },
+            "earnings": { # An ApiMoneyProto. # Amount earned by the publisher on this product.
+              "amount": 3.14, # The amount of money.
+              "currencyCode": "A String", # The 3-letter code of the currency in question.
+            },
+            "unitPrice": { # An ApiMoneyProto. # Price per unit of this product.
+              "amount": 3.14, # The amount of money.
+              "currencyCode": "A String", # The 3-letter code of the currency in question.
+            },
+            "categoryId": "A String", # Id of the category this product belongs to.
+            "quantity": "A String", # Quantity of this product bought/exchanged.
+          },
+        ],
+        "earnings": { # An ApiMoneyProto. # Earnings by the publisher.
+          "amount": 3.14, # The amount of money.
+          "currencyCode": "A String", # The 3-letter code of the currency in question.
+        },
+        "chargeType": "A String", # Charge type of the event (other|slotting_fee|monthly_minimum|tier_bonus|debit|credit). Only returned for charge events.
+        "publisherFee": { # An ApiMoneyProto. # Fee that the advertiser paid to the publisher.
+          "amount": 3.14, # The amount of money.
+          "currencyCode": "A String", # The 3-letter code of the currency in question.
+        },
+        "commissionableSales": { # An ApiMoneyProto. # Amount of money exchanged during the transaction. Only returned for charge and conversion events.
+          "amount": 3.14, # The amount of money.
+          "currencyCode": "A String", # The 3-letter code of the currency in question.
+        },
+        "publisherId": "A String", # The ID of the publisher for this event.
+        "eventDate": "A String", # The date-time this event was initiated as a RFC 3339 date-time value.
+      },
+    ],
+    "kind": "gan#events", # The kind for a page of events.
+  }</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/gan_v1beta1.html b/docs/dyn/gan_v1beta1.html
new file mode 100644
index 0000000..10402cc
--- /dev/null
+++ b/docs/dyn/gan_v1beta1.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="gan_v1beta1.html">Google Affiliate Network API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="gan_v1beta1.advertisers.html">advertisers()</a></code>
+</p>
+<p class="firstline">Returns the advertisers Resource.</p>
+
+<p class="toc_element">
+  <code><a href="gan_v1beta1.ccOffers.html">ccOffers()</a></code>
+</p>
+<p class="firstline">Returns the ccOffers Resource.</p>
+
+<p class="toc_element">
+  <code><a href="gan_v1beta1.events.html">events()</a></code>
+</p>
+<p class="firstline">Returns the events Resource.</p>
+
+<p class="toc_element">
+  <code><a href="gan_v1beta1.links.html">links()</a></code>
+</p>
+<p class="firstline">Returns the links Resource.</p>
+
+<p class="toc_element">
+  <code><a href="gan_v1beta1.publishers.html">publishers()</a></code>
+</p>
+<p class="firstline">Returns the publishers Resource.</p>
+
+<p class="toc_element">
+  <code><a href="gan_v1beta1.reports.html">reports()</a></code>
+</p>
+<p class="firstline">Returns the reports Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gan_v1beta1.links.html b/docs/dyn/gan_v1beta1.links.html
new file mode 100644
index 0000000..db91bd8
--- /dev/null
+++ b/docs/dyn/gan_v1beta1.links.html
@@ -0,0 +1,399 @@
+<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="gan_v1beta1.html">Google Affiliate Network API</a> . <a href="gan_v1beta1.links.html">links</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(role, roleId, linkId)</a></code></p>
+<p class="firstline">Retrieves data about a single link if the requesting advertiser/publisher has access to it. Advertisers can look up their own links. Publishers can look up visible links or links belonging to advertisers they are in a relationship with.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(role, roleId, body)</a></code></p>
+<p class="firstline">Inserts a new link.</p>
+<p class="toc_element">
+  <code><a href="#list">list(role, roleId, linkType=None, promotionType=None, createDateMax=None, advertiserId=None, pageToken=None, relationshipStatus=None, maxResults=None, authorship=None, startDateMin=None, assetSize=None, searchText=None, startDateMax=None, createDateMin=None)</a></code></p>
+<p class="firstline">Retrieves all links that match the query parameters.</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(role, roleId, linkId)</code>
+  <pre>Retrieves data about a single link if the requesting advertiser/publisher has access to it. Advertisers can look up their own links. Publishers can look up visible links or links belonging to advertisers they are in a relationship with.
+
+Args:
+  role: string, The role of the requester. Valid values: 'advertisers' or 'publishers'. (required)
+    Allowed values
+      advertisers - The requester is requesting as an advertiser.
+      publishers - The requester is requesting as a publisher.
+  roleId: string, The ID of the requesting advertiser or publisher. (required)
+  linkId: string, The ID of the link to look up. (required)
+
+Returns:
+  An object of the form:
+
+    { # A LinkResource.
+      "isActive": True or False, # Flag for if this link is active.
+      "linkType": "A String", # The link type.
+      "kind": "gan#link", # The kind for one entity.
+      "endDate": "A String", # Date that this link becomes inactive.
+      "description": "A String", # Description.
+      "name": "A String", # The logical name for this link.
+      "specialOffers": { # Special offers on the link.
+        "priceCut": { # An ApiMoneyProto. # Price cut on the purchase
+          "amount": 3.14, # The amount of money.
+          "currencyCode": "A String", # The 3-letter code of the currency in question.
+        },
+        "priceCutMin": { # An ApiMoneyProto. # Minimum purchase amount for price cut promotion
+          "amount": 3.14, # The amount of money.
+          "currencyCode": "A String", # The 3-letter code of the currency in question.
+        },
+        "freeShipping": True or False, # Whether there is free shipping
+        "promotionCodes": [ # List of promotion code associated with the link
+          "A String",
+        ],
+        "percentOff": 3.14, # Percent off on the purchase
+        "percentOffMin": { # An ApiMoneyProto. # Minimum purchase amount for percent off promotion
+          "amount": 3.14, # The amount of money.
+          "currencyCode": "A String", # The 3-letter code of the currency in question.
+        },
+        "freeGift": True or False, # Whether there is a free gift
+        "freeShippingMin": { # An ApiMoneyProto. # Minimum purchase amount for free shipping promotion
+          "amount": 3.14, # The amount of money.
+          "currencyCode": "A String", # The 3-letter code of the currency in question.
+        },
+      },
+      "epcSevenDayAverage": { # An ApiMoneyProto. # The sum of fees paid to publishers divided by the total number of clicks over the past seven days on this link. This value should be multiplied by 100 at the time of display.
+        "amount": 3.14, # The amount of money.
+        "currencyCode": "A String", # The 3-letter code of the currency in question.
+      },
+      "createDate": "A String", # Date that this link was created.
+      "imageAltText": "A String", # image alt text.
+      "epcNinetyDayAverage": { # An ApiMoneyProto. # The sum of fees paid to publishers divided by the total number of clicks over the past three months on this link. This value should be multiplied by 100 at the time of display.
+        "amount": 3.14, # The amount of money.
+        "currencyCode": "A String", # The 3-letter code of the currency in question.
+      },
+      "advertiserId": "A String", # The advertiser id for the advertiser who owns this link.
+      "id": "A String", # The ID of this link.
+      "impressionTrackingUrl": "A String", # Tracking url for impressions.
+      "promotionType": "A String", # Promotion Type
+      "duration": "A String", # Duration
+      "authorship": "A String", # Authorship
+      "startDate": "A String", # Date that this link becomes active.
+      "availability": "A String", # Availability.
+      "clickTrackingUrl": "A String", # Tracking url for clicks.
+      "destinationUrl": "A String", # The destination URL for the link.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(role, roleId, body)</code>
+  <pre>Inserts a new link.
+
+Args:
+  role: string, The role of the requester. Valid values: 'advertisers' or 'publishers'. (required)
+    Allowed values
+      advertisers - The requester is requesting as an advertiser.
+      publishers - The requester is requesting as a publisher.
+  roleId: string, The ID of the requesting advertiser or publisher. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A LinkResource.
+    "isActive": True or False, # Flag for if this link is active.
+    "linkType": "A String", # The link type.
+    "kind": "gan#link", # The kind for one entity.
+    "endDate": "A String", # Date that this link becomes inactive.
+    "description": "A String", # Description.
+    "name": "A String", # The logical name for this link.
+    "specialOffers": { # Special offers on the link.
+      "priceCut": { # An ApiMoneyProto. # Price cut on the purchase
+        "amount": 3.14, # The amount of money.
+        "currencyCode": "A String", # The 3-letter code of the currency in question.
+      },
+      "priceCutMin": { # An ApiMoneyProto. # Minimum purchase amount for price cut promotion
+        "amount": 3.14, # The amount of money.
+        "currencyCode": "A String", # The 3-letter code of the currency in question.
+      },
+      "freeShipping": True or False, # Whether there is free shipping
+      "promotionCodes": [ # List of promotion code associated with the link
+        "A String",
+      ],
+      "percentOff": 3.14, # Percent off on the purchase
+      "percentOffMin": { # An ApiMoneyProto. # Minimum purchase amount for percent off promotion
+        "amount": 3.14, # The amount of money.
+        "currencyCode": "A String", # The 3-letter code of the currency in question.
+      },
+      "freeGift": True or False, # Whether there is a free gift
+      "freeShippingMin": { # An ApiMoneyProto. # Minimum purchase amount for free shipping promotion
+        "amount": 3.14, # The amount of money.
+        "currencyCode": "A String", # The 3-letter code of the currency in question.
+      },
+    },
+    "epcSevenDayAverage": { # An ApiMoneyProto. # The sum of fees paid to publishers divided by the total number of clicks over the past seven days on this link. This value should be multiplied by 100 at the time of display.
+      "amount": 3.14, # The amount of money.
+      "currencyCode": "A String", # The 3-letter code of the currency in question.
+    },
+    "createDate": "A String", # Date that this link was created.
+    "imageAltText": "A String", # image alt text.
+    "epcNinetyDayAverage": { # An ApiMoneyProto. # The sum of fees paid to publishers divided by the total number of clicks over the past three months on this link. This value should be multiplied by 100 at the time of display.
+      "amount": 3.14, # The amount of money.
+      "currencyCode": "A String", # The 3-letter code of the currency in question.
+    },
+    "advertiserId": "A String", # The advertiser id for the advertiser who owns this link.
+    "id": "A String", # The ID of this link.
+    "impressionTrackingUrl": "A String", # Tracking url for impressions.
+    "promotionType": "A String", # Promotion Type
+    "duration": "A String", # Duration
+    "authorship": "A String", # Authorship
+    "startDate": "A String", # Date that this link becomes active.
+    "availability": "A String", # Availability.
+    "clickTrackingUrl": "A String", # Tracking url for clicks.
+    "destinationUrl": "A String", # The destination URL for the link.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A LinkResource.
+      "isActive": True or False, # Flag for if this link is active.
+      "linkType": "A String", # The link type.
+      "kind": "gan#link", # The kind for one entity.
+      "endDate": "A String", # Date that this link becomes inactive.
+      "description": "A String", # Description.
+      "name": "A String", # The logical name for this link.
+      "specialOffers": { # Special offers on the link.
+        "priceCut": { # An ApiMoneyProto. # Price cut on the purchase
+          "amount": 3.14, # The amount of money.
+          "currencyCode": "A String", # The 3-letter code of the currency in question.
+        },
+        "priceCutMin": { # An ApiMoneyProto. # Minimum purchase amount for price cut promotion
+          "amount": 3.14, # The amount of money.
+          "currencyCode": "A String", # The 3-letter code of the currency in question.
+        },
+        "freeShipping": True or False, # Whether there is free shipping
+        "promotionCodes": [ # List of promotion code associated with the link
+          "A String",
+        ],
+        "percentOff": 3.14, # Percent off on the purchase
+        "percentOffMin": { # An ApiMoneyProto. # Minimum purchase amount for percent off promotion
+          "amount": 3.14, # The amount of money.
+          "currencyCode": "A String", # The 3-letter code of the currency in question.
+        },
+        "freeGift": True or False, # Whether there is a free gift
+        "freeShippingMin": { # An ApiMoneyProto. # Minimum purchase amount for free shipping promotion
+          "amount": 3.14, # The amount of money.
+          "currencyCode": "A String", # The 3-letter code of the currency in question.
+        },
+      },
+      "epcSevenDayAverage": { # An ApiMoneyProto. # The sum of fees paid to publishers divided by the total number of clicks over the past seven days on this link. This value should be multiplied by 100 at the time of display.
+        "amount": 3.14, # The amount of money.
+        "currencyCode": "A String", # The 3-letter code of the currency in question.
+      },
+      "createDate": "A String", # Date that this link was created.
+      "imageAltText": "A String", # image alt text.
+      "epcNinetyDayAverage": { # An ApiMoneyProto. # The sum of fees paid to publishers divided by the total number of clicks over the past three months on this link. This value should be multiplied by 100 at the time of display.
+        "amount": 3.14, # The amount of money.
+        "currencyCode": "A String", # The 3-letter code of the currency in question.
+      },
+      "advertiserId": "A String", # The advertiser id for the advertiser who owns this link.
+      "id": "A String", # The ID of this link.
+      "impressionTrackingUrl": "A String", # Tracking url for impressions.
+      "promotionType": "A String", # Promotion Type
+      "duration": "A String", # Duration
+      "authorship": "A String", # Authorship
+      "startDate": "A String", # Date that this link becomes active.
+      "availability": "A String", # Availability.
+      "clickTrackingUrl": "A String", # Tracking url for clicks.
+      "destinationUrl": "A String", # The destination URL for the link.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(role, roleId, linkType=None, promotionType=None, createDateMax=None, advertiserId=None, pageToken=None, relationshipStatus=None, maxResults=None, authorship=None, startDateMin=None, assetSize=None, searchText=None, startDateMax=None, createDateMin=None)</code>
+  <pre>Retrieves all links that match the query parameters.
+
+Args:
+  role: string, The role of the requester. Valid values: 'advertisers' or 'publishers'. (required)
+    Allowed values
+      advertisers - The requester is requesting as an advertiser.
+      publishers - The requester is requesting as a publisher.
+  roleId: string, The ID of the requesting advertiser or publisher. (required)
+  linkType: string, The type of the link.
+    Allowed values
+      banner - 
+      text - 
+  promotionType: string, The promotion type. (repeated)
+    Allowed values
+      coupon - 
+      free_gift - 
+      free_shipping - 
+      percent_off - 
+      price_cut - 
+  createDateMax: string, The end of the create date range.
+  advertiserId: string, Limits the resulting links to the ones belonging to the listed advertisers. (repeated)
+  pageToken: string, The value of 'nextPageToken' from the previous page. Optional.
+  relationshipStatus: string, The status of the relationship.
+    Allowed values
+      approved - 
+      available - 
+  maxResults: integer, Max number of items to return in this page. Optional. Defaults to 20.
+  authorship: string, The role of the author of the link.
+    Allowed values
+      advertiser - 
+      publisher - 
+  startDateMin: string, The beginning of the start date range.
+  assetSize: string, The size of the given asset. (repeated)
+  searchText: string, Field for full text search across title and merchandising text, supports link id search.
+  startDateMax: string, The end of the start date range.
+  createDateMin: string, The beginning of the create date range.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # The next page token.
+    "items": [ # The links.
+      { # A LinkResource.
+          "isActive": True or False, # Flag for if this link is active.
+          "linkType": "A String", # The link type.
+          "kind": "gan#link", # The kind for one entity.
+          "endDate": "A String", # Date that this link becomes inactive.
+          "description": "A String", # Description.
+          "name": "A String", # The logical name for this link.
+          "specialOffers": { # Special offers on the link.
+            "priceCut": { # An ApiMoneyProto. # Price cut on the purchase
+              "amount": 3.14, # The amount of money.
+              "currencyCode": "A String", # The 3-letter code of the currency in question.
+            },
+            "priceCutMin": { # An ApiMoneyProto. # Minimum purchase amount for price cut promotion
+              "amount": 3.14, # The amount of money.
+              "currencyCode": "A String", # The 3-letter code of the currency in question.
+            },
+            "freeShipping": True or False, # Whether there is free shipping
+            "promotionCodes": [ # List of promotion code associated with the link
+              "A String",
+            ],
+            "percentOff": 3.14, # Percent off on the purchase
+            "percentOffMin": { # An ApiMoneyProto. # Minimum purchase amount for percent off promotion
+              "amount": 3.14, # The amount of money.
+              "currencyCode": "A String", # The 3-letter code of the currency in question.
+            },
+            "freeGift": True or False, # Whether there is a free gift
+            "freeShippingMin": { # An ApiMoneyProto. # Minimum purchase amount for free shipping promotion
+              "amount": 3.14, # The amount of money.
+              "currencyCode": "A String", # The 3-letter code of the currency in question.
+            },
+          },
+          "epcSevenDayAverage": { # An ApiMoneyProto. # The sum of fees paid to publishers divided by the total number of clicks over the past seven days on this link. This value should be multiplied by 100 at the time of display.
+            "amount": 3.14, # The amount of money.
+            "currencyCode": "A String", # The 3-letter code of the currency in question.
+          },
+          "createDate": "A String", # Date that this link was created.
+          "imageAltText": "A String", # image alt text.
+          "epcNinetyDayAverage": { # An ApiMoneyProto. # The sum of fees paid to publishers divided by the total number of clicks over the past three months on this link. This value should be multiplied by 100 at the time of display.
+            "amount": 3.14, # The amount of money.
+            "currencyCode": "A String", # The 3-letter code of the currency in question.
+          },
+          "advertiserId": "A String", # The advertiser id for the advertiser who owns this link.
+          "id": "A String", # The ID of this link.
+          "impressionTrackingUrl": "A String", # Tracking url for impressions.
+          "promotionType": "A String", # Promotion Type
+          "duration": "A String", # Duration
+          "authorship": "A String", # Authorship
+          "startDate": "A String", # Date that this link becomes active.
+          "availability": "A String", # Availability.
+          "clickTrackingUrl": "A String", # Tracking url for clicks.
+          "destinationUrl": "A String", # The destination URL for the link.
+        },
+    ],
+    "kind": "gan#links", # The kind for a page of links.
+  }</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/gan_v1beta1.publishers.html b/docs/dyn/gan_v1beta1.publishers.html
new file mode 100644
index 0000000..5d6a741
--- /dev/null
+++ b/docs/dyn/gan_v1beta1.publishers.html
@@ -0,0 +1,195 @@
+<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="gan_v1beta1.html">Google Affiliate Network API</a> . <a href="gan_v1beta1.publishers.html">publishers</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(role, roleId, publisherId=None)</a></code></p>
+<p class="firstline">Retrieves data about a single advertiser if that the requesting advertiser/publisher has access to it. Only advertisers can look up publishers. Publishers can request information about themselves by omitting the publisherId query parameter.</p>
+<p class="toc_element">
+  <code><a href="#list">list(role, roleId, publisherCategory=None, relationshipStatus=None, pageToken=None, minSevenDayEpc=None, minNinetyDayEpc=None, maxResults=None, minPayoutRank=None)</a></code></p>
+<p class="firstline">Retrieves data about all publishers that the requesting advertiser/publisher has access to.</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(role, roleId, publisherId=None)</code>
+  <pre>Retrieves data about a single advertiser if that the requesting advertiser/publisher has access to it. Only advertisers can look up publishers. Publishers can request information about themselves by omitting the publisherId query parameter.
+
+Args:
+  role: string, The role of the requester. Valid values: 'advertisers' or 'publishers'. (required)
+    Allowed values
+      advertisers - The requester is requesting as an advertiser.
+      publishers - The requester is requesting as a publisher.
+  roleId: string, The ID of the requesting advertiser or publisher. (required)
+  publisherId: string, The ID of the publisher to look up. Optional.
+
+Returns:
+  An object of the form:
+
+    { # A PublisherResource.
+    "status": "A String", # The status of the requesting advertiser's relationship with this publisher.
+    "kind": "gan#publisher", # The kind for a publisher.
+    "name": "A String", # The name of this publisher.
+    "classification": "A String", # Classification that this publisher belongs to. See this link for all publisher classifications: http://www.google.com/support/affiliatenetwork/advertiser/bin/answer.py?hl=en&answer=107625&ctx=cb&src=cb&cbid=-k5fihzthfaik&cbrank=4
+    "epcSevenDayAverage": { # An ApiMoneyProto. # The sum of fees paid to this publisher divided by the total number of clicks over the past seven days. Values are multiplied by 100 for display purposes.
+      "amount": 3.14, # The amount of money.
+      "currencyCode": "A String", # The 3-letter code of the currency in question.
+    },
+    "payoutRank": "A String", # A rank based on commissions paid to this publisher over the past 90 days. A number between 1 and 4 where 4 means the top quartile (most money paid) and 1 means the bottom quartile (least money paid).
+    "epcNinetyDayAverage": { # An ApiMoneyProto. # The sum of fees paid to this publisher divided by the total number of clicks over the past three months. Values are multiplied by 100 for display purposes.
+      "amount": 3.14, # The amount of money.
+      "currencyCode": "A String", # The 3-letter code of the currency in question.
+    },
+    "item": # Object with schema name: Publisher # The requested publisher.
+    "joinDate": "A String", # Date that this publisher was approved as a Google Affiliate Network publisher.
+    "sites": [ # Websites that this publisher uses to advertise.
+      "A String",
+    ],
+    "id": "A String", # The ID of this publisher.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(role, roleId, publisherCategory=None, relationshipStatus=None, pageToken=None, minSevenDayEpc=None, minNinetyDayEpc=None, maxResults=None, minPayoutRank=None)</code>
+  <pre>Retrieves data about all publishers that the requesting advertiser/publisher has access to.
+
+Args:
+  role: string, The role of the requester. Valid values: 'advertisers' or 'publishers'. (required)
+    Allowed values
+      advertisers - The requester is requesting as an advertiser.
+      publishers - The requester is requesting as a publisher.
+  roleId: string, The ID of the requesting advertiser or publisher. (required)
+  publisherCategory: string, Caret(^) delimted list of publisher categories. Valid categories: (unclassified|community_and_content|shopping_and_promotion|loyalty_and_rewards|network|search_specialist|comparison_shopping|email). Filters out all publishers not in one of the given advertiser categories. Optional.
+  relationshipStatus: string, Filters out all publishers for which do not have the given relationship status with the requesting publisher.
+    Allowed values
+      approved - Publishers you've approved to your program.
+      available - Publishers available for you to recruit.
+      deactivated - A publisher that you terminated from your program. Publishers also have the ability to remove themselves from your program.
+      declined - A publisher that you did not approve to your program.
+      pending - Publishers that have applied to your program. We recommend reviewing and deciding on pending publishers on a weekly basis.
+  pageToken: string, The value of 'nextPageToken' from the previous page. Optional.
+  minSevenDayEpc: number, Filters out all publishers that have a seven day EPC average lower than the given value (inclusive). Min value 0.0. Optional.
+  minNinetyDayEpc: number, Filters out all publishers that have a ninety day EPC average lower than the given value (inclusive). Min value: 0.0. Optional.
+  maxResults: integer, Max number of items to return in this page. Optional. Defaults to 20.
+  minPayoutRank: integer, A value between 1 and 4, where 1 represents the quartile of publishers with the lowest ranks and 4 represents the quartile of publishers with the highest ranks. Filters out all publishers with a lower rank than the given quartile. For example if a 2 was given only publishers with a payout rank of 25 or higher would be included. Optional.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # The 'pageToken' to pass to the next request to get the next page, if there are more to retrieve.
+    "items": [ # The entity list.
+      { # A PublisherResource.
+        "status": "A String", # The status of the requesting advertiser's relationship with this publisher.
+        "kind": "gan#publisher", # The kind for a publisher.
+        "name": "A String", # The name of this publisher.
+        "classification": "A String", # Classification that this publisher belongs to. See this link for all publisher classifications: http://www.google.com/support/affiliatenetwork/advertiser/bin/answer.py?hl=en&answer=107625&ctx=cb&src=cb&cbid=-k5fihzthfaik&cbrank=4
+        "epcSevenDayAverage": { # An ApiMoneyProto. # The sum of fees paid to this publisher divided by the total number of clicks over the past seven days. Values are multiplied by 100 for display purposes.
+          "amount": 3.14, # The amount of money.
+          "currencyCode": "A String", # The 3-letter code of the currency in question.
+        },
+        "payoutRank": "A String", # A rank based on commissions paid to this publisher over the past 90 days. A number between 1 and 4 where 4 means the top quartile (most money paid) and 1 means the bottom quartile (least money paid).
+        "epcNinetyDayAverage": { # An ApiMoneyProto. # The sum of fees paid to this publisher divided by the total number of clicks over the past three months. Values are multiplied by 100 for display purposes.
+          "amount": 3.14, # The amount of money.
+          "currencyCode": "A String", # The 3-letter code of the currency in question.
+        },
+        "item": # Object with schema name: Publisher # The requested publisher.
+        "joinDate": "A String", # Date that this publisher was approved as a Google Affiliate Network publisher.
+        "sites": [ # Websites that this publisher uses to advertise.
+          "A String",
+        ],
+        "id": "A String", # The ID of this publisher.
+      },
+    ],
+    "kind": "gan#publishers", # The kind for a page of entities.
+  }</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/gan_v1beta1.reports.html b/docs/dyn/gan_v1beta1.reports.html
new file mode 100644
index 0000000..8c1d646
--- /dev/null
+++ b/docs/dyn/gan_v1beta1.reports.html
@@ -0,0 +1,139 @@
+<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="gan_v1beta1.html">Google Affiliate Network API</a> . <a href="gan_v1beta1.reports.html">reports</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(role, roleId, reportType, startDate=None, endDate=None, eventType=None, advertiserId=None, startIndex=None, calculateTotals=None, linkId=None, orderId=None, maxResults=None, status=None, publisherId=None)</a></code></p>
+<p class="firstline">Retrieves a report of the specified type.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(role, roleId, reportType, startDate=None, endDate=None, eventType=None, advertiserId=None, startIndex=None, calculateTotals=None, linkId=None, orderId=None, maxResults=None, status=None, publisherId=None)</code>
+  <pre>Retrieves a report of the specified type.
+
+Args:
+  role: string, The role of the requester. Valid values: 'advertisers' or 'publishers'. (required)
+    Allowed values
+      advertisers - The requester is requesting as an advertiser.
+      publishers - The requester is requesting as a publisher.
+  roleId: string, The ID of the requesting advertiser or publisher. (required)
+  reportType: string, The type of report being requested. Valid values: 'order_delta'. Required. (required)
+    Allowed values
+      order_delta - The order delta report type.
+  startDate: string, The start date (inclusive), in RFC 3339 format, for the report data to be returned. Defaults to one day before endDate, if that is given, or yesterday. Optional.
+  endDate: string, The end date (exclusive), in RFC 3339 format, for the report data to be returned. Defaults to one day after startDate, if that is given, or today. Optional.
+  eventType: string, Filters out all events that are not of the given type. Valid values: 'action', 'transaction', or 'charge'. Optional.
+    Allowed values
+      action - Event type is action.
+      charge - Event type is charge.
+      transaction - Event type is transaction.
+  advertiserId: string, The IDs of the advertisers to look up, if applicable. (repeated)
+  startIndex: integer, Offset on which to return results when paging. Optional.
+  calculateTotals: boolean, Whether or not to calculate totals rows. Optional.
+  linkId: string, Filters to capture one of given link IDs. Optional. (repeated)
+  orderId: string, Filters to capture one of the given order IDs. Optional. (repeated)
+  maxResults: integer, Max number of items to return in this page. Optional. Defaults to return all results.
+  status: string, Filters out all events that do not have the given status. Valid values: 'active', 'canceled', or 'invalid'. Optional.
+    Allowed values
+      active - Event is currently active.
+      canceled - Event is currently canceled.
+      invalid - Event is currently invalid.
+  publisherId: string, The IDs of the publishers to look up, if applicable. (repeated)
+
+Returns:
+  An object of the form:
+
+    { # A ReportResource representing a report of a certain type either for an advertiser or publisher.
+    "totals_rows": [ # The totals rows for the report
+      [ # Loop over each column in the row.
+        "",
+      ],
+    ],
+    "kind": "gan#report", # The kind for a report.
+    "rows": [ # The rows of data for the report
+      [ # Loop over each column in the row.
+        "",
+      ],
+    ],
+    "end_date": "A String", # The end of the date range for this report, exclusive.
+    "matching_row_count": "A String", # The number of matching rows before paging is applied.
+    "column_names": [ # The column names for the report
+      "A String",
+    ],
+    "type": "A String", # The report type.
+    "start_date": "A String", # The start of the date range for this report, inclusive.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/groupsmigration_v1.archive.html b/docs/dyn/groupsmigration_v1.archive.html
new file mode 100644
index 0000000..8bf8875
--- /dev/null
+++ b/docs/dyn/groupsmigration_v1.archive.html
@@ -0,0 +1,98 @@
+<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="groupsmigration_v1.html">Groups Migration API</a> . <a href="groupsmigration_v1.archive.html">archive</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#insert">insert(groupId, media_body=None)</a></code></p>
+<p class="firstline">Inserts a new mail into the archive of the Google group.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="insert">insert(groupId, media_body=None)</code>
+  <pre>Inserts a new mail into the archive of the Google group.
+
+Args:
+  groupId: string, The group ID (required)
+  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
+
+Returns:
+  An object of the form:
+
+    { # JSON response template for groups migration API.
+    "kind": "groupsmigration#groups", # The kind of insert resource this is.
+    "responseCode": "A String", # The status of the insert request.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/groupsmigration_v1.html b/docs/dyn/groupsmigration_v1.html
new file mode 100644
index 0000000..4ff4e68
--- /dev/null
+++ b/docs/dyn/groupsmigration_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="groupsmigration_v1.html">Groups Migration API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="groupsmigration_v1.archive.html">archive()</a></code>
+</p>
+<p class="firstline">Returns the archive Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/groupssettings_v1.groups.html b/docs/dyn/groupssettings_v1.groups.html
new file mode 100644
index 0000000..3965ca2
--- /dev/null
+++ b/docs/dyn/groupssettings_v1.groups.html
@@ -0,0 +1,281 @@
+<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="groupssettings_v1.html">Groups Settings API</a> . <a href="groupssettings_v1.groups.html">groups</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(groupUniqueId)</a></code></p>
+<p class="firstline">Gets one resource by id.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(groupUniqueId, body)</a></code></p>
+<p class="firstline">Updates an existing resource. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(groupUniqueId, body)</a></code></p>
+<p class="firstline">Updates an existing resource.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(groupUniqueId)</code>
+  <pre>Gets one resource by id.
+
+Args:
+  groupUniqueId: string, The resource ID (required)
+
+Returns:
+  An object of the form:
+
+    { # JSON template for Group resource
+      "allowExternalMembers": "A String", # Are external members allowed to join the group.
+      "whoCanPostMessage": "A String", # Permissions to post messages to the group. Possible values are: NONE_CAN_POST ALL_MANAGERS_CAN_POST ALL_MEMBERS_CAN_POST ALL_IN_DOMAIN_CAN_POST ANYONE_CAN_POST
+      "primaryLanguage": "A String", # Primary language for the group.
+      "whoCanViewMembership": "A String", # Permissions to view membership. Possbile values are: ALL_IN_DOMAIN_CAN_VIEW ALL_MEMBERS_CAN_VIEW ALL_MANAGERS_CAN_VIEW
+      "defaultMessageDenyNotificationText": "A String", # Default message deny notification message
+      "includeInGlobalAddressList": "A String", # If this groups should be included in global address list or not.
+      "archiveOnly": "A String", # If the group is archive only
+      "isArchived": "A String", # If the contents of the group are archived.
+      "membersCanPostAsTheGroup": "A String", # Can members post using the group email address.
+      "allowWebPosting": "A String", # If posting from web is allowed.
+      "email": "A String", # Email id of the group
+      "messageModerationLevel": "A String", # Moderation level for messages. Possible values are: MODERATE_ALL_MESSAGES MODERATE_NON_MEMBERS MODERATE_NEW_MEMBERS MODERATE_NONE
+      "description": "A String", # Description of the group
+      "replyTo": "A String", # Whome should the default reply to a message go to. Possible values are: REPLY_TO_CUSTOM REPLY_TO_SENDER REPLY_TO_LIST REPLY_TO_OWNER REPLY_TO_IGNORE REPLY_TO_MANAGERS
+      "customReplyTo": "A String", # Default email to which reply to any message should go.
+      "sendMessageDenyNotification": "A String", # Should the member be notified if his message is denied by owner.
+      "whoCanContactOwner": "A String", # Permission to contact owner of the group via web UI. Possbile values are: ANYONE_CAN_CONTACT ALL_IN_DOMAIN_CAN_CONTACT ALL_MEMBERS_CAN_CONTACT ALL_MANAGERS_CAN_CONTACT
+      "messageDisplayFont": "A String", # Default message display font. Possible values are: DEFAULT_FONT FIXED_WIDTH_FONT
+      "whoCanLeaveGroup": "A String", # Permission to leave the group. Possible values are: ALL_MANAGERS_CAN_LEAVE ALL_MEMBERS_CAN_LEAVE
+      "whoCanJoin": "A String", # Permissions to join the group. Possible values are: ANYONE_CAN_JOIN ALL_IN_DOMAIN_CAN_JOIN INVITED_CAN_JOIN CAN_REQUEST_TO_JOIN
+      "whoCanInvite": "A String", # Permissions to invite members. Possbile values are: ALL_MEMBERS_CAN_INVITE ALL_MANAGERS_CAN_INVITE
+      "kind": "groupsSettings#groups", # The type of the resource.
+      "name": "A String", # Name of the Group
+      "spamModerationLevel": "A String", # Moderation level for messages detected as spam. Possible values are: ALLOW MODERATE SILENTLY_MODERATE REJECT
+      "whoCanViewGroup": "A String", # Permissions to view group. Possbile values are: ANYONE_CAN_VIEW ALL_IN_DOMAIN_CAN_VIEW ALL_MEMBERS_CAN_VIEW ALL_MANAGERS_CAN_VIEW
+      "showInGroupDirectory": "A String", # Is the group listed in groups directory
+      "maxMessageBytes": 42, # Maximum message size allowed.
+      "allowGoogleCommunication": "A String", # Is google allowed to contact admins.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(groupUniqueId, body)</code>
+  <pre>Updates an existing resource. This method supports patch semantics.
+
+Args:
+  groupUniqueId: string, The resource ID (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # JSON template for Group resource
+    "allowExternalMembers": "A String", # Are external members allowed to join the group.
+    "whoCanPostMessage": "A String", # Permissions to post messages to the group. Possible values are: NONE_CAN_POST ALL_MANAGERS_CAN_POST ALL_MEMBERS_CAN_POST ALL_IN_DOMAIN_CAN_POST ANYONE_CAN_POST
+    "primaryLanguage": "A String", # Primary language for the group.
+    "whoCanViewMembership": "A String", # Permissions to view membership. Possbile values are: ALL_IN_DOMAIN_CAN_VIEW ALL_MEMBERS_CAN_VIEW ALL_MANAGERS_CAN_VIEW
+    "defaultMessageDenyNotificationText": "A String", # Default message deny notification message
+    "includeInGlobalAddressList": "A String", # If this groups should be included in global address list or not.
+    "archiveOnly": "A String", # If the group is archive only
+    "isArchived": "A String", # If the contents of the group are archived.
+    "membersCanPostAsTheGroup": "A String", # Can members post using the group email address.
+    "allowWebPosting": "A String", # If posting from web is allowed.
+    "email": "A String", # Email id of the group
+    "messageModerationLevel": "A String", # Moderation level for messages. Possible values are: MODERATE_ALL_MESSAGES MODERATE_NON_MEMBERS MODERATE_NEW_MEMBERS MODERATE_NONE
+    "description": "A String", # Description of the group
+    "replyTo": "A String", # Whome should the default reply to a message go to. Possible values are: REPLY_TO_CUSTOM REPLY_TO_SENDER REPLY_TO_LIST REPLY_TO_OWNER REPLY_TO_IGNORE REPLY_TO_MANAGERS
+    "customReplyTo": "A String", # Default email to which reply to any message should go.
+    "sendMessageDenyNotification": "A String", # Should the member be notified if his message is denied by owner.
+    "whoCanContactOwner": "A String", # Permission to contact owner of the group via web UI. Possbile values are: ANYONE_CAN_CONTACT ALL_IN_DOMAIN_CAN_CONTACT ALL_MEMBERS_CAN_CONTACT ALL_MANAGERS_CAN_CONTACT
+    "messageDisplayFont": "A String", # Default message display font. Possible values are: DEFAULT_FONT FIXED_WIDTH_FONT
+    "whoCanLeaveGroup": "A String", # Permission to leave the group. Possible values are: ALL_MANAGERS_CAN_LEAVE ALL_MEMBERS_CAN_LEAVE
+    "whoCanJoin": "A String", # Permissions to join the group. Possible values are: ANYONE_CAN_JOIN ALL_IN_DOMAIN_CAN_JOIN INVITED_CAN_JOIN CAN_REQUEST_TO_JOIN
+    "whoCanInvite": "A String", # Permissions to invite members. Possbile values are: ALL_MEMBERS_CAN_INVITE ALL_MANAGERS_CAN_INVITE
+    "kind": "groupsSettings#groups", # The type of the resource.
+    "name": "A String", # Name of the Group
+    "spamModerationLevel": "A String", # Moderation level for messages detected as spam. Possible values are: ALLOW MODERATE SILENTLY_MODERATE REJECT
+    "whoCanViewGroup": "A String", # Permissions to view group. Possbile values are: ANYONE_CAN_VIEW ALL_IN_DOMAIN_CAN_VIEW ALL_MEMBERS_CAN_VIEW ALL_MANAGERS_CAN_VIEW
+    "showInGroupDirectory": "A String", # Is the group listed in groups directory
+    "maxMessageBytes": 42, # Maximum message size allowed.
+    "allowGoogleCommunication": "A String", # Is google allowed to contact admins.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # JSON template for Group resource
+      "allowExternalMembers": "A String", # Are external members allowed to join the group.
+      "whoCanPostMessage": "A String", # Permissions to post messages to the group. Possible values are: NONE_CAN_POST ALL_MANAGERS_CAN_POST ALL_MEMBERS_CAN_POST ALL_IN_DOMAIN_CAN_POST ANYONE_CAN_POST
+      "primaryLanguage": "A String", # Primary language for the group.
+      "whoCanViewMembership": "A String", # Permissions to view membership. Possbile values are: ALL_IN_DOMAIN_CAN_VIEW ALL_MEMBERS_CAN_VIEW ALL_MANAGERS_CAN_VIEW
+      "defaultMessageDenyNotificationText": "A String", # Default message deny notification message
+      "includeInGlobalAddressList": "A String", # If this groups should be included in global address list or not.
+      "archiveOnly": "A String", # If the group is archive only
+      "isArchived": "A String", # If the contents of the group are archived.
+      "membersCanPostAsTheGroup": "A String", # Can members post using the group email address.
+      "allowWebPosting": "A String", # If posting from web is allowed.
+      "email": "A String", # Email id of the group
+      "messageModerationLevel": "A String", # Moderation level for messages. Possible values are: MODERATE_ALL_MESSAGES MODERATE_NON_MEMBERS MODERATE_NEW_MEMBERS MODERATE_NONE
+      "description": "A String", # Description of the group
+      "replyTo": "A String", # Whome should the default reply to a message go to. Possible values are: REPLY_TO_CUSTOM REPLY_TO_SENDER REPLY_TO_LIST REPLY_TO_OWNER REPLY_TO_IGNORE REPLY_TO_MANAGERS
+      "customReplyTo": "A String", # Default email to which reply to any message should go.
+      "sendMessageDenyNotification": "A String", # Should the member be notified if his message is denied by owner.
+      "whoCanContactOwner": "A String", # Permission to contact owner of the group via web UI. Possbile values are: ANYONE_CAN_CONTACT ALL_IN_DOMAIN_CAN_CONTACT ALL_MEMBERS_CAN_CONTACT ALL_MANAGERS_CAN_CONTACT
+      "messageDisplayFont": "A String", # Default message display font. Possible values are: DEFAULT_FONT FIXED_WIDTH_FONT
+      "whoCanLeaveGroup": "A String", # Permission to leave the group. Possible values are: ALL_MANAGERS_CAN_LEAVE ALL_MEMBERS_CAN_LEAVE
+      "whoCanJoin": "A String", # Permissions to join the group. Possible values are: ANYONE_CAN_JOIN ALL_IN_DOMAIN_CAN_JOIN INVITED_CAN_JOIN CAN_REQUEST_TO_JOIN
+      "whoCanInvite": "A String", # Permissions to invite members. Possbile values are: ALL_MEMBERS_CAN_INVITE ALL_MANAGERS_CAN_INVITE
+      "kind": "groupsSettings#groups", # The type of the resource.
+      "name": "A String", # Name of the Group
+      "spamModerationLevel": "A String", # Moderation level for messages detected as spam. Possible values are: ALLOW MODERATE SILENTLY_MODERATE REJECT
+      "whoCanViewGroup": "A String", # Permissions to view group. Possbile values are: ANYONE_CAN_VIEW ALL_IN_DOMAIN_CAN_VIEW ALL_MEMBERS_CAN_VIEW ALL_MANAGERS_CAN_VIEW
+      "showInGroupDirectory": "A String", # Is the group listed in groups directory
+      "maxMessageBytes": 42, # Maximum message size allowed.
+      "allowGoogleCommunication": "A String", # Is google allowed to contact admins.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(groupUniqueId, body)</code>
+  <pre>Updates an existing resource.
+
+Args:
+  groupUniqueId: string, The resource ID (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # JSON template for Group resource
+    "allowExternalMembers": "A String", # Are external members allowed to join the group.
+    "whoCanPostMessage": "A String", # Permissions to post messages to the group. Possible values are: NONE_CAN_POST ALL_MANAGERS_CAN_POST ALL_MEMBERS_CAN_POST ALL_IN_DOMAIN_CAN_POST ANYONE_CAN_POST
+    "primaryLanguage": "A String", # Primary language for the group.
+    "whoCanViewMembership": "A String", # Permissions to view membership. Possbile values are: ALL_IN_DOMAIN_CAN_VIEW ALL_MEMBERS_CAN_VIEW ALL_MANAGERS_CAN_VIEW
+    "defaultMessageDenyNotificationText": "A String", # Default message deny notification message
+    "includeInGlobalAddressList": "A String", # If this groups should be included in global address list or not.
+    "archiveOnly": "A String", # If the group is archive only
+    "isArchived": "A String", # If the contents of the group are archived.
+    "membersCanPostAsTheGroup": "A String", # Can members post using the group email address.
+    "allowWebPosting": "A String", # If posting from web is allowed.
+    "email": "A String", # Email id of the group
+    "messageModerationLevel": "A String", # Moderation level for messages. Possible values are: MODERATE_ALL_MESSAGES MODERATE_NON_MEMBERS MODERATE_NEW_MEMBERS MODERATE_NONE
+    "description": "A String", # Description of the group
+    "replyTo": "A String", # Whome should the default reply to a message go to. Possible values are: REPLY_TO_CUSTOM REPLY_TO_SENDER REPLY_TO_LIST REPLY_TO_OWNER REPLY_TO_IGNORE REPLY_TO_MANAGERS
+    "customReplyTo": "A String", # Default email to which reply to any message should go.
+    "sendMessageDenyNotification": "A String", # Should the member be notified if his message is denied by owner.
+    "whoCanContactOwner": "A String", # Permission to contact owner of the group via web UI. Possbile values are: ANYONE_CAN_CONTACT ALL_IN_DOMAIN_CAN_CONTACT ALL_MEMBERS_CAN_CONTACT ALL_MANAGERS_CAN_CONTACT
+    "messageDisplayFont": "A String", # Default message display font. Possible values are: DEFAULT_FONT FIXED_WIDTH_FONT
+    "whoCanLeaveGroup": "A String", # Permission to leave the group. Possible values are: ALL_MANAGERS_CAN_LEAVE ALL_MEMBERS_CAN_LEAVE
+    "whoCanJoin": "A String", # Permissions to join the group. Possible values are: ANYONE_CAN_JOIN ALL_IN_DOMAIN_CAN_JOIN INVITED_CAN_JOIN CAN_REQUEST_TO_JOIN
+    "whoCanInvite": "A String", # Permissions to invite members. Possbile values are: ALL_MEMBERS_CAN_INVITE ALL_MANAGERS_CAN_INVITE
+    "kind": "groupsSettings#groups", # The type of the resource.
+    "name": "A String", # Name of the Group
+    "spamModerationLevel": "A String", # Moderation level for messages detected as spam. Possible values are: ALLOW MODERATE SILENTLY_MODERATE REJECT
+    "whoCanViewGroup": "A String", # Permissions to view group. Possbile values are: ANYONE_CAN_VIEW ALL_IN_DOMAIN_CAN_VIEW ALL_MEMBERS_CAN_VIEW ALL_MANAGERS_CAN_VIEW
+    "showInGroupDirectory": "A String", # Is the group listed in groups directory
+    "maxMessageBytes": 42, # Maximum message size allowed.
+    "allowGoogleCommunication": "A String", # Is google allowed to contact admins.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # JSON template for Group resource
+      "allowExternalMembers": "A String", # Are external members allowed to join the group.
+      "whoCanPostMessage": "A String", # Permissions to post messages to the group. Possible values are: NONE_CAN_POST ALL_MANAGERS_CAN_POST ALL_MEMBERS_CAN_POST ALL_IN_DOMAIN_CAN_POST ANYONE_CAN_POST
+      "primaryLanguage": "A String", # Primary language for the group.
+      "whoCanViewMembership": "A String", # Permissions to view membership. Possbile values are: ALL_IN_DOMAIN_CAN_VIEW ALL_MEMBERS_CAN_VIEW ALL_MANAGERS_CAN_VIEW
+      "defaultMessageDenyNotificationText": "A String", # Default message deny notification message
+      "includeInGlobalAddressList": "A String", # If this groups should be included in global address list or not.
+      "archiveOnly": "A String", # If the group is archive only
+      "isArchived": "A String", # If the contents of the group are archived.
+      "membersCanPostAsTheGroup": "A String", # Can members post using the group email address.
+      "allowWebPosting": "A String", # If posting from web is allowed.
+      "email": "A String", # Email id of the group
+      "messageModerationLevel": "A String", # Moderation level for messages. Possible values are: MODERATE_ALL_MESSAGES MODERATE_NON_MEMBERS MODERATE_NEW_MEMBERS MODERATE_NONE
+      "description": "A String", # Description of the group
+      "replyTo": "A String", # Whome should the default reply to a message go to. Possible values are: REPLY_TO_CUSTOM REPLY_TO_SENDER REPLY_TO_LIST REPLY_TO_OWNER REPLY_TO_IGNORE REPLY_TO_MANAGERS
+      "customReplyTo": "A String", # Default email to which reply to any message should go.
+      "sendMessageDenyNotification": "A String", # Should the member be notified if his message is denied by owner.
+      "whoCanContactOwner": "A String", # Permission to contact owner of the group via web UI. Possbile values are: ANYONE_CAN_CONTACT ALL_IN_DOMAIN_CAN_CONTACT ALL_MEMBERS_CAN_CONTACT ALL_MANAGERS_CAN_CONTACT
+      "messageDisplayFont": "A String", # Default message display font. Possible values are: DEFAULT_FONT FIXED_WIDTH_FONT
+      "whoCanLeaveGroup": "A String", # Permission to leave the group. Possible values are: ALL_MANAGERS_CAN_LEAVE ALL_MEMBERS_CAN_LEAVE
+      "whoCanJoin": "A String", # Permissions to join the group. Possible values are: ANYONE_CAN_JOIN ALL_IN_DOMAIN_CAN_JOIN INVITED_CAN_JOIN CAN_REQUEST_TO_JOIN
+      "whoCanInvite": "A String", # Permissions to invite members. Possbile values are: ALL_MEMBERS_CAN_INVITE ALL_MANAGERS_CAN_INVITE
+      "kind": "groupsSettings#groups", # The type of the resource.
+      "name": "A String", # Name of the Group
+      "spamModerationLevel": "A String", # Moderation level for messages detected as spam. Possible values are: ALLOW MODERATE SILENTLY_MODERATE REJECT
+      "whoCanViewGroup": "A String", # Permissions to view group. Possbile values are: ANYONE_CAN_VIEW ALL_IN_DOMAIN_CAN_VIEW ALL_MEMBERS_CAN_VIEW ALL_MANAGERS_CAN_VIEW
+      "showInGroupDirectory": "A String", # Is the group listed in groups directory
+      "maxMessageBytes": 42, # Maximum message size allowed.
+      "allowGoogleCommunication": "A String", # Is google allowed to contact admins.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/groupssettings_v1.html b/docs/dyn/groupssettings_v1.html
new file mode 100644
index 0000000..4c44371
--- /dev/null
+++ b/docs/dyn/groupssettings_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="groupssettings_v1.html">Groups Settings API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="groupssettings_v1.groups.html">groups()</a></code>
+</p>
+<p class="firstline">Returns the groups Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/identitytoolkit_v3.html b/docs/dyn/identitytoolkit_v3.html
new file mode 100644
index 0000000..5922397
--- /dev/null
+++ b/docs/dyn/identitytoolkit_v3.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="identitytoolkit_v3.html">Google Identity Toolkit API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="identitytoolkit_v3.relyingparty.html">relyingparty()</a></code>
+</p>
+<p class="firstline">Returns the relyingparty Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/identitytoolkit_v3.relyingparty.html b/docs/dyn/identitytoolkit_v3.relyingparty.html
new file mode 100644
index 0000000..24429ca
--- /dev/null
+++ b/docs/dyn/identitytoolkit_v3.relyingparty.html
@@ -0,0 +1,503 @@
+<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="identitytoolkit_v3.html">Google Identity Toolkit API</a> . <a href="identitytoolkit_v3.relyingparty.html">relyingparty</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#createAuthUri">createAuthUri(body)</a></code></p>
+<p class="firstline">Creates the URI used by the IdP to authenticate the user.</p>
+<p class="toc_element">
+  <code><a href="#deleteAccount">deleteAccount(body)</a></code></p>
+<p class="firstline">Delete user account.</p>
+<p class="toc_element">
+  <code><a href="#downloadAccount">downloadAccount(body)</a></code></p>
+<p class="firstline">Batch download user accounts.</p>
+<p class="toc_element">
+  <code><a href="#getAccountInfo">getAccountInfo(body)</a></code></p>
+<p class="firstline">Returns the account info.</p>
+<p class="toc_element">
+  <code><a href="#getOobConfirmationCode">getOobConfirmationCode(body)</a></code></p>
+<p class="firstline">Get a code for user action confirmation.</p>
+<p class="toc_element">
+  <code><a href="#getPublicKeys">getPublicKeys()</a></code></p>
+<p class="firstline">Get token signing public key.</p>
+<p class="toc_element">
+  <code><a href="#resetPassword">resetPassword(body)</a></code></p>
+<p class="firstline">Set account info for a user.</p>
+<p class="toc_element">
+  <code><a href="#setAccountInfo">setAccountInfo(body)</a></code></p>
+<p class="firstline">Set account info for a user.</p>
+<p class="toc_element">
+  <code><a href="#uploadAccount">uploadAccount(body)</a></code></p>
+<p class="firstline">Batch upload existing user accounts.</p>
+<p class="toc_element">
+  <code><a href="#verifyAssertion">verifyAssertion(body)</a></code></p>
+<p class="firstline">Verifies the assertion returned by the IdP.</p>
+<p class="toc_element">
+  <code><a href="#verifyPassword">verifyPassword(body)</a></code></p>
+<p class="firstline">Verifies the user entered password.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="createAuthUri">createAuthUri(body)</code>
+  <pre>Creates the URI used by the IdP to authenticate the user.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request to get the IDP authentication URL.
+    "identifier": "A String", # The email or federated ID of the user.
+    "clientId": "A String", # The relying party OAuth client ID.
+    "otaApp": "A String", # The native app package for OTA installation.
+    "providerId": "A String", # The IdP ID. For white listed IdPs it's a short domain name e.g. google.com, aol.com, live.net and yahoo.com. For other OpenID IdPs it's the OP identifier.
+    "context": "A String", # The opaque value used by the client to maintain context info between the authentication request and the IDP callback.
+    "appId": "A String", # The app ID of the mobile app, base64(CERT_SHA1):PACKAGE_NAME for Android, BUNDLE_ID for iOS.
+    "continueUri": "A String", # The URI to which the IDP redirects the user after the federated login flow.
+    "openidRealm": "A String", # Optional realm for OpenID protocol. The sub string "scheme://domain:port" of the param "continueUri" is used if this is not set.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Response of creating the IDP authentication URL.
+    "kind": "identitytoolkit#CreateAuthUriResponse", # The fixed string identitytoolkit#CreateAuthUriResponse".
+    "providers": [ # Existing IDP's for the user.
+      "A String",
+    ],
+    "registered": True or False, # Whether the user is registered if the identifier is an email.
+    "providerId": "A String", # The provider ID of the auth URI.
+    "authUri": "A String", # The URI used by the IDP to authenticate the user.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="deleteAccount">deleteAccount(body)</code>
+  <pre>Delete user account.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request to delete account.
+    "localId": "A String", # The local ID of the user.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Respone of deleting account.
+    "kind": "identitytoolkit#DeleteAccountResponse", # The fixed string "identitytoolkit#DeleteAccountResponse".
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="downloadAccount">downloadAccount(body)</code>
+  <pre>Batch download user accounts.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request to download user account in batch.
+    "nextPageToken": "A String", # The token for the next page. This should be taken from the previous response.
+    "maxResults": 42, # The max number of results to return in the response.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Respone of downloading accounts in batch.
+    "nextPageToken": "A String", # The next page token. To be used in a subsequent request to return the next page of results.
+    "kind": "identitytoolkit#DownloadAccountResponse", # The fixed string "identitytoolkit#DownloadAccountResponse".
+    "users": [ # The user accounts data.
+      { # Template for an individual account info.
+        "displayName": "A String", # The name of the user.
+        "localId": "A String", # The local ID of the user.
+        "photoUrl": "A String", # The URL of the user profile photo.
+        "emailVerified": True or False, # Whether the email has been verified.
+        "passwordHash": "A String", # The user's hashed password.
+        "version": 42, # Version of the user's password.
+        "providerUserInfo": [ # The IDP of the user.
+          {
+            "federatedId": "A String", # User's identifier at IDP.
+            "providerId": "A String", # The IdP ID. For white listed IdPs it's a short domain name, e.g., google.com, aol.com, live.net and yahoo.com. For other OpenID IdPs it's the OP identifier.
+            "displayName": "A String", # The user's display name at the IDP.
+            "photoUrl": "A String", # The user's photo url at the IDP.
+          },
+        ],
+        "passwordUpdatedAt": 3.14, # The timestamp when the password was last updated.
+        "salt": "A String", # The user's password salt.
+        "email": "A String", # The email of the user.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getAccountInfo">getAccountInfo(body)</code>
+  <pre>Returns the account info.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request to get the account information.
+    "idToken": "A String", # The GITKit token of the authenticated user.
+    "email": [ # The list of emails of the users to inquiry.
+      "A String",
+    ],
+    "localId": [ # The list of local ID's of the users to inquiry.
+      "A String",
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Response of getting account information.
+    "kind": "identitytoolkit#GetAccountInfoResponse", # The fixed string "identitytoolkit#GetAccountInfoResponse".
+    "users": [ # The info of the users.
+      { # Template for an individual account info.
+        "displayName": "A String", # The name of the user.
+        "localId": "A String", # The local ID of the user.
+        "photoUrl": "A String", # The URL of the user profile photo.
+        "emailVerified": True or False, # Whether the email has been verified.
+        "passwordHash": "A String", # The user's hashed password.
+        "version": 42, # Version of the user's password.
+        "providerUserInfo": [ # The IDP of the user.
+          {
+            "federatedId": "A String", # User's identifier at IDP.
+            "providerId": "A String", # The IdP ID. For white listed IdPs it's a short domain name, e.g., google.com, aol.com, live.net and yahoo.com. For other OpenID IdPs it's the OP identifier.
+            "displayName": "A String", # The user's display name at the IDP.
+            "photoUrl": "A String", # The user's photo url at the IDP.
+          },
+        ],
+        "passwordUpdatedAt": 3.14, # The timestamp when the password was last updated.
+        "salt": "A String", # The user's password salt.
+        "email": "A String", # The email of the user.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getOobConfirmationCode">getOobConfirmationCode(body)</code>
+  <pre>Get a code for user action confirmation.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request of getting a code for user confirmation (reset password, change email etc.)
+    "kind": "identitytoolkit#relyingparty", # The fixed string "identitytoolkit#relyingparty".
+    "requestType": "A String", # The request type.
+    "idToken": "A String", # The user's Gitkit login token for email change.
+    "challenge": "A String", # The recaptcha challenge presented to the user.
+    "newEmail": "A String", # The new email if the code is for email change.
+    "userIp": "A String", # The IP address of the user.
+    "email": "A String", # The email of the user.
+    "captchaResp": "A String", # The recaptcha response from the user.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Response of getting a code for user confirmation (reset password, change email etc.).
+    "kind": "identitytoolkit#GetOobConfirmationCodeResponse", # The fixed string "identitytoolkit#GetOobConfirmationCodeResponse".
+    "oobCode": "A String", # The code to be send to the user.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getPublicKeys">getPublicKeys()</code>
+  <pre>Get token signing public key.
+
+Args:
+
+Returns:
+  An object of the form:
+
+    { # Respone of getting public keys.
+    "a_key": "A String",
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="resetPassword">resetPassword(body)</code>
+  <pre>Set account info for a user.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request to reset the password.
+    "newPassword": "A String", # The new password inputted by the user.
+    "oldPassword": "A String", # The old password inputted by the user.
+    "oobCode": "A String", # The confirmation code.
+    "email": "A String", # The email address of the user.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Response of resetting the password.
+    "kind": "identitytoolkit#ResetPasswordResponse", # The fixed string "identitytoolkit#ResetPasswordResponse".
+    "email": "A String", # The user's email.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setAccountInfo">setAccountInfo(body)</code>
+  <pre>Set account info for a user.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request to set the account information.
+    "displayName": "A String", # The name of the user.
+    "localId": "A String", # The local ID of the user.
+    "upgradeToFederatedLogin": True or False, # Mark the user to upgrade to federated login.
+    "captchaResponse": "A String", # Response to the captcha.
+    "idToken": "A String", # The GITKit token of the authenticated user.
+    "provider": [ # The associated IDPs of the user.
+      "A String",
+    ],
+    "captchaChallenge": "A String", # The captcha challenge.
+    "emailVerified": True or False, # Mark the email as verified or not.
+    "oobCode": "A String", # The out-of-band code of the change email request.
+    "password": "A String", # The new password of the user.
+    "email": "A String", # The email of the user.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Respone of setting the account information.
+    "idToken": "A String", # The Gitkit id token to login the newly sign up user.
+    "kind": "identitytoolkit#SetAccountInfoResponse", # The fixed string "identitytoolkit#SetAccountInfoResponse".
+    "displayName": "A String", # The name of the user.
+    "email": "A String", # The email of the user.
+    "providerUserInfo": [ # The user's profiles at the associated IdPs.
+      {
+        "providerId": "A String", # The IdP ID. For whitelisted IdPs it's a short domain name, e.g., google.com, aol.com, live.net and yahoo.com. For other OpenID IdPs it's the OP identifier.
+        "displayName": "A String", # The user's display name at the IDP.
+        "photoUrl": "A String", # The user's photo url at the IDP.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="uploadAccount">uploadAccount(body)</code>
+  <pre>Batch upload existing user accounts.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request to upload user account in batch.
+    "hashAlgorithm": "A String",
+    "users": [ # The account info to be stored.
+      { # Template for an individual account info.
+        "displayName": "A String", # The name of the user.
+        "localId": "A String", # The local ID of the user.
+        "photoUrl": "A String", # The URL of the user profile photo.
+        "emailVerified": True or False, # Whether the email has been verified.
+        "passwordHash": "A String", # The user's hashed password.
+        "version": 42, # Version of the user's password.
+        "providerUserInfo": [ # The IDP of the user.
+          {
+            "federatedId": "A String", # User's identifier at IDP.
+            "providerId": "A String", # The IdP ID. For white listed IdPs it's a short domain name, e.g., google.com, aol.com, live.net and yahoo.com. For other OpenID IdPs it's the OP identifier.
+            "displayName": "A String", # The user's display name at the IDP.
+            "photoUrl": "A String", # The user's photo url at the IDP.
+          },
+        ],
+        "passwordUpdatedAt": 3.14, # The timestamp when the password was last updated.
+        "salt": "A String", # The user's password salt.
+        "email": "A String", # The email of the user.
+      },
+    ],
+    "signerKey": "A String",
+    "memoryCost": 42,
+    "saltSeparator": "A String",
+    "rounds": 42,
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Respone of uploading accounts in batch.
+    "kind": "identitytoolkit#UploadAccountResponse", # The fixed string "identitytoolkit#UploadAccountResponse".
+    "error": [ # The error encountered while processing the account info.
+      {
+        "index": 42, # The index of the malformed account, starting from 0.
+        "message": "A String", # Detailed error message for the account info.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="verifyAssertion">verifyAssertion(body)</code>
+  <pre>Verifies the assertion returned by the IdP.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request to verify the IDP assertion.
+    "requestUri": "A String", # The URI to which the IDP redirects the user back. It may contain federated login result params added by the IDP.
+    "postBody": "A String", # The post body if the request is a HTTP POST.
+    "pendingIdToken": "A String", # The GITKit token for the non-trusted IDP pending to be confirmed by the user.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Response of verifying the IDP assertion.
+    "federatedId": "A String", # The unique ID identifies the IdP account.
+    "localId": "A String", # The RP local ID if it's already been mapped to the IdP account identified by the federated ID.
+    "photoUrl": "A String", # The URI of the public accessible profiel picture.
+    "inputEmail": "A String", # It's the identifier param in the createAuthUri request if the identifier is an email. It can be used to check whether the user input email is different from the asserted email.
+    "appScheme": "A String", # The custom scheme used by mobile app.
+    "verifiedProvider": [ # When action is 'map', contains the idps which can be used for confirmation.
+      "A String",
+    ],
+    "providerId": "A String", # The IdP ID. For white listed IdPs it's a short domain name e.g. google.com, aol.com, live.net and yahoo.com. If the "providerId" param is set to OpenID OP identifer other than the whilte listed IdPs the OP identifier is returned. If the "identifier" param is federated ID in the createAuthUri request. The domain part of the federated ID is returned.
+    "dateOfBirth": "A String", # The birth date of the IdP account.
+    "nickName": "A String", # The nick name of the user.
+    "email": "A String", # The email returned by the IdP. NOTE: The federated login user may not own the email.
+    "language": "A String", # The language preference of the user.
+    "needConfirmation": True or False, # Whether the assertion is from a non-trusted IDP and need account linking confirmation.
+    "fullName": "A String", # The full name of the user.
+    "kind": "identitytoolkit#VerifyAssertionResponse", # The fixed string "identitytoolkit#VerifyAssertionResponse".
+    "idToken": "A String", # The ID token.
+    "displayName": "A String", # The display name of the user.
+    "appInstallationUrl": "A String", # URL for OTA app installation.
+    "firstName": "A String", # The first name of the user.
+    "emailVerified": True or False, # The value is true if the IDP is also the email provider. It means the user owns the email.
+    "oauthScope": "A String", # The scope for the OpenID OAuth extension.
+    "oauthRequestToken": "A String", # The user approved request token for the OpenID OAuth extension.
+    "originalEmail": "A String", # The original email stored in the mapping storage. It's returned when the federated ID is associated to a different email.
+    "context": "A String", # The opaque value used by the client to maintain context info between the authentication request and the IDP callback.
+    "lastName": "A String", # The last name of the user.
+    "action": "A String", # The action code.
+    "timeZone": "A String", # The timezone of the user.
+    "emailRecycled": True or False, # It's true if the email is recycled.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="verifyPassword">verifyPassword(body)</code>
+  <pre>Verifies the user entered password.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request to verify the password.
+    "captchaResponse": "A String", # Response to the captcha.
+    "captchaChallenge": "A String", # The captcha challenge.
+    "password": "A String", # The password inputed by the user.
+    "email": "A String", # The email of the user.
+    "pendingIdToken": "A String", # The GITKit token for the non-trusted IDP, which is to be confirmed by the user.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Request of verifying the password.
+    "kind": "identitytoolkit#VerifyPasswordResponse", # The fixed string "identitytoolkit#VerifyPasswordResponse".
+    "displayName": "A String", # The name of the user.
+    "localId": "A String", # The RP local ID if it's already been mapped to the IdP account identified by the federated ID.
+    "photoUrl": "A String", # The URI of the user's photo at IdP
+    "idToken": "A String", # The GITKit token for authenticated user.
+    "registered": True or False, # Whether the email is registered.
+    "email": "A String", # The email returned by the IdP. NOTE: The federated login user may not own the email.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/licensing_v1.html b/docs/dyn/licensing_v1.html
new file mode 100644
index 0000000..ab4efbb
--- /dev/null
+++ b/docs/dyn/licensing_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="licensing_v1.html">Enterprise License Manager API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="licensing_v1.licenseAssignments.html">licenseAssignments()</a></code>
+</p>
+<p class="firstline">Returns the licenseAssignments Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/licensing_v1.licenseAssignments.html b/docs/dyn/licensing_v1.licenseAssignments.html
new file mode 100644
index 0000000..c0df2a5
--- /dev/null
+++ b/docs/dyn/licensing_v1.licenseAssignments.html
@@ -0,0 +1,323 @@
+<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="licensing_v1.html">Enterprise License Manager API</a> . <a href="licensing_v1.licenseAssignments.html">licenseAssignments</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(productId, skuId, userId)</a></code></p>
+<p class="firstline">Revoke License.</p>
+<p class="toc_element">
+  <code><a href="#get">get(productId, skuId, userId)</a></code></p>
+<p class="firstline">Get license assignment of a particular product and sku for a user</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(productId, skuId, body)</a></code></p>
+<p class="firstline">Assign License.</p>
+<p class="toc_element">
+  <code><a href="#listForProduct">listForProduct(productId, customerId, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">List license assignments for given product of the customer.</p>
+<p class="toc_element">
+  <code><a href="#listForProductAndSku">listForProductAndSku(productId, skuId, customerId, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">List license assignments for given product and sku of the customer.</p>
+<p class="toc_element">
+  <code><a href="#listForProductAndSku_next">listForProductAndSku_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="#listForProduct_next">listForProduct_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(productId, skuId, userId, body)</a></code></p>
+<p class="firstline">Assign License. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(productId, skuId, userId, body)</a></code></p>
+<p class="firstline">Assign License.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(productId, skuId, userId)</code>
+  <pre>Revoke License.
+
+Args:
+  productId: string, Name for product (required)
+  skuId: string, Name for sku (required)
+  userId: string, email id or unique Id of the user (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(productId, skuId, userId)</code>
+  <pre>Get license assignment of a particular product and sku for a user
+
+Args:
+  productId: string, Name for product (required)
+  skuId: string, Name for sku (required)
+  userId: string, email id or unique Id of the user (required)
+
+Returns:
+  An object of the form:
+
+    { # Template for LiscenseAssignment Resource
+    "skuId": "A String", # Name of the sku of the product.
+    "kind": "licensing#licenseAssignment", # Identifies the resource as a LicenseAssignment.
+    "userId": "A String", # Email id of the user.
+    "etags": "A String", # ETag of the resource.
+    "selfLink": "A String", # Link to this page.
+    "productId": "A String", # Name of the product.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(productId, skuId, body)</code>
+  <pre>Assign License.
+
+Args:
+  productId: string, Name for product (required)
+  skuId: string, Name for sku (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Template for LicenseAssignment Insert request
+    "userId": "A String", # Email id of the user
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Template for LiscenseAssignment Resource
+    "skuId": "A String", # Name of the sku of the product.
+    "kind": "licensing#licenseAssignment", # Identifies the resource as a LicenseAssignment.
+    "userId": "A String", # Email id of the user.
+    "etags": "A String", # ETag of the resource.
+    "selfLink": "A String", # Link to this page.
+    "productId": "A String", # Name of the product.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="listForProduct">listForProduct(productId, customerId, pageToken=None, maxResults=None)</code>
+  <pre>List license assignments for given product of the customer.
+
+Args:
+  productId: string, Name for product (required)
+  customerId: string, CustomerId represents the customer for whom licenseassignments are queried (required)
+  pageToken: string, Token to fetch the next page.Optional. By default server will return first page
+  maxResults: integer, Maximum number of campaigns to return at one time. Must be positive. Optional. Default value is 100.
+
+Returns:
+  An object of the form:
+
+    { # LicesnseAssignment List for a given product/sku for a customer.
+    "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": [ # The LicenseAssignments in this page of results.
+      { # Template for LiscenseAssignment Resource
+        "skuId": "A String", # Name of the sku of the product.
+        "kind": "licensing#licenseAssignment", # Identifies the resource as a LicenseAssignment.
+        "userId": "A String", # Email id of the user.
+        "etags": "A String", # ETag of the resource.
+        "selfLink": "A String", # Link to this page.
+        "productId": "A String", # Name of the product.
+      },
+    ],
+    "kind": "licensing#licenseAssignmentList", # Identifies the resource as a collection of LicenseAssignments.
+    "etag": "A String", # ETag of the resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="listForProductAndSku">listForProductAndSku(productId, skuId, customerId, pageToken=None, maxResults=None)</code>
+  <pre>List license assignments for given product and sku of the customer.
+
+Args:
+  productId: string, Name for product (required)
+  skuId: string, Name for sku (required)
+  customerId: string, CustomerId represents the customer for whom licenseassignments are queried (required)
+  pageToken: string, Token to fetch the next page.Optional. By default server will return first page
+  maxResults: integer, Maximum number of campaigns to return at one time. Must be positive. Optional. Default value is 100.
+
+Returns:
+  An object of the form:
+
+    { # LicesnseAssignment List for a given product/sku for a customer.
+    "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": [ # The LicenseAssignments in this page of results.
+      { # Template for LiscenseAssignment Resource
+        "skuId": "A String", # Name of the sku of the product.
+        "kind": "licensing#licenseAssignment", # Identifies the resource as a LicenseAssignment.
+        "userId": "A String", # Email id of the user.
+        "etags": "A String", # ETag of the resource.
+        "selfLink": "A String", # Link to this page.
+        "productId": "A String", # Name of the product.
+      },
+    ],
+    "kind": "licensing#licenseAssignmentList", # Identifies the resource as a collection of LicenseAssignments.
+    "etag": "A String", # ETag of the resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="listForProductAndSku_next">listForProductAndSku_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="listForProduct_next">listForProduct_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(productId, skuId, userId, body)</code>
+  <pre>Assign License. This method supports patch semantics.
+
+Args:
+  productId: string, Name for product (required)
+  skuId: string, Name for sku for which license would be revoked (required)
+  userId: string, email id or unique Id of the user (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Template for LiscenseAssignment Resource
+  "skuId": "A String", # Name of the sku of the product.
+  "kind": "licensing#licenseAssignment", # Identifies the resource as a LicenseAssignment.
+  "userId": "A String", # Email id of the user.
+  "etags": "A String", # ETag of the resource.
+  "selfLink": "A String", # Link to this page.
+  "productId": "A String", # Name of the product.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # Template for LiscenseAssignment Resource
+    "skuId": "A String", # Name of the sku of the product.
+    "kind": "licensing#licenseAssignment", # Identifies the resource as a LicenseAssignment.
+    "userId": "A String", # Email id of the user.
+    "etags": "A String", # ETag of the resource.
+    "selfLink": "A String", # Link to this page.
+    "productId": "A String", # Name of the product.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(productId, skuId, userId, body)</code>
+  <pre>Assign License.
+
+Args:
+  productId: string, Name for product (required)
+  skuId: string, Name for sku for which license would be revoked (required)
+  userId: string, email id or unique Id of the user (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Template for LiscenseAssignment Resource
+  "skuId": "A String", # Name of the sku of the product.
+  "kind": "licensing#licenseAssignment", # Identifies the resource as a LicenseAssignment.
+  "userId": "A String", # Email id of the user.
+  "etags": "A String", # ETag of the resource.
+  "selfLink": "A String", # Link to this page.
+  "productId": "A String", # Name of the product.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # Template for LiscenseAssignment Resource
+    "skuId": "A String", # Name of the sku of the product.
+    "kind": "licensing#licenseAssignment", # Identifies the resource as a LicenseAssignment.
+    "userId": "A String", # Email id of the user.
+    "etags": "A String", # ETag of the resource.
+    "selfLink": "A String", # Link to this page.
+    "productId": "A String", # Name of the product.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/mapsengine_v1.assets.html b/docs/dyn/mapsengine_v1.assets.html
new file mode 100644
index 0000000..79dbb26
--- /dev/null
+++ b/docs/dyn/mapsengine_v1.assets.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="mapsengine_v1.html">Google Maps Engine API</a> . <a href="mapsengine_v1.assets.html">assets</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="mapsengine_v1.assets.parents.html">parents()</a></code>
+</p>
+<p class="firstline">Returns the parents Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#get">get(id)</a></code></p>
+<p class="firstline">Return metadata for a particular asset.</p>
+<p class="toc_element">
+  <code><a href="#list">list(modifiedAfter=None, createdAfter=None, type=None, pageToken=None, projectId=None, maxResults=None, createdBefore=None, bbox=None, creatorEmail=None, modifiedBefore=None)</a></code></p>
+<p class="firstline">Return all assets readable by the current user.</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(id)</code>
+  <pre>Return metadata for a particular asset.
+
+Args:
+  id: string, The ID of the asset. (required)
+
+Returns:
+  An object of the form:
+
+    { # An asset is any Google Maps Engine resource that has a globally unique ID. Assets include maps, layers, vector tables, raster collections, and rasters. Projects and features are not considered assets.
+      #
+      # More detailed information about an asset can be obtained by querying the asset's particular endpoint.
+    "resource": "A String", # The URL to query to retrieve the asset's complete object. The assets endpoint only returns high-level information about a resource.
+    "name": "A String", # The asset's name.
+    "tags": [ # An array of text strings, with each string representing a tag. More information about tags can be found in the Tagging data article of the Maps Engine help center.
+      "A String",
+    ],
+    "projectId": "A String", # The ID of the project to which the asset belongs.
+    "creationTime": "A String", # The creation time of this asset. The value is an RFC 3339-formatted date-time value (for example, 1970-01-01T00:00:00Z).
+    "bbox": [ # An array of four numbers (west, south, east, north) which define the rectangular bounding box which contains all of the data in this asset. The numbers represent latitude and longitude in decimal degrees.
+      3.14,
+    ],
+    "lastModifiedTime": "A String", # The last modified time of this asset. The value is an RFC 3339-formatted date-time value (for example, 1970-01-01T00:00:00Z).
+    "type": "A String", # The type of asset. One of raster, rasterCollection, table, map, or layer.
+    "id": "A String", # The asset's globally unique ID.
+    "description": "A String", # The asset's description.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(modifiedAfter=None, createdAfter=None, type=None, pageToken=None, projectId=None, maxResults=None, createdBefore=None, bbox=None, creatorEmail=None, modifiedBefore=None)</code>
+  <pre>Return all assets readable by the current user.
+
+Args:
+  modifiedAfter: string, An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or after this time.
+  createdAfter: string, An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or after this time.
+  type: string, An asset type restriction. If set, only resources of this type will be returned.
+    Allowed values
+      layer - Return layers.
+      map - Return maps.
+      rasterCollection - Return raster collections.
+      table - Return tables.
+  pageToken: string, The continuation token, 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.
+  projectId: string, The ID of a Maps Engine project, used to filter the response. To list all available projects with their IDs, send a Projects: list request. You can also find your project ID as the value of the DashboardPlace:cid URL parameter when signed in to mapsengine.google.com.
+  maxResults: integer, The maximum number of items to include in a single response page. The maximum supported value is 100.
+  createdBefore: string, An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or before this time.
+  bbox: string, A bounding box, expressed as "west,south,east,north". If set, only assets which intersect this bounding box will be returned.
+  creatorEmail: string, An email address representing a user. Returned assets that have been created by the user associated with the provided email address.
+  modifiedBefore: string, An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or before this time.
+
+Returns:
+  An object of the form:
+
+    { # The response returned by a call to resources.List.
+    "nextPageToken": "A String", # Next page token.
+    "assets": [ # Assets returned.
+      { # An asset is any Google Maps Engine resource that has a globally unique ID. Assets include maps, layers, vector tables, raster collections, and rasters. Projects and features are not considered assets.
+          #
+          # More detailed information about an asset can be obtained by querying the asset's particular endpoint.
+        "resource": "A String", # The URL to query to retrieve the asset's complete object. The assets endpoint only returns high-level information about a resource.
+        "name": "A String", # The asset's name.
+        "tags": [ # An array of text strings, with each string representing a tag. More information about tags can be found in the Tagging data article of the Maps Engine help center.
+          "A String",
+        ],
+        "projectId": "A String", # The ID of the project to which the asset belongs.
+        "creationTime": "A String", # The creation time of this asset. The value is an RFC 3339-formatted date-time value (for example, 1970-01-01T00:00:00Z).
+        "bbox": [ # An array of four numbers (west, south, east, north) which define the rectangular bounding box which contains all of the data in this asset. The numbers represent latitude and longitude in decimal degrees.
+          3.14,
+        ],
+        "lastModifiedTime": "A String", # The last modified time of this asset. The value is an RFC 3339-formatted date-time value (for example, 1970-01-01T00:00:00Z).
+        "type": "A String", # The type of asset. One of raster, rasterCollection, table, map, or layer.
+        "id": "A String", # The asset's globally unique ID.
+        "description": "A String", # The asset's description.
+      },
+    ],
+  }</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/mapsengine_v1.assets.parents.html b/docs/dyn/mapsengine_v1.assets.parents.html
new file mode 100644
index 0000000..2fbab5c
--- /dev/null
+++ b/docs/dyn/mapsengine_v1.assets.parents.html
@@ -0,0 +1,120 @@
+<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="mapsengine_v1.html">Google Maps Engine API</a> . <a href="mapsengine_v1.assets.html">assets</a> . <a href="mapsengine_v1.assets.parents.html">parents</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(id, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Return all parent ids of the specified asset.</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(id, pageToken=None, maxResults=None)</code>
+  <pre>Return all parent ids of the specified asset.
+
+Args:
+  id: string, The ID of the asset whose parents will be listed. (required)
+  pageToken: string, The continuation token, 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.
+  maxResults: integer, The maximum number of items to include in a single response page. The maximum supported value is 50.
+
+Returns:
+  An object of the form:
+
+    { # The response returned by a call to parents.List.
+    "nextPageToken": "A String", # Next page token.
+    "parents": [ # Resources returned.
+      { # A list of the parents of an asset.
+        "id": "A String", # The ID of this parent.
+      },
+    ],
+  }</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/mapsengine_v1.html b/docs/dyn/mapsengine_v1.html
new file mode 100644
index 0000000..8e42f78
--- /dev/null
+++ b/docs/dyn/mapsengine_v1.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="mapsengine_v1.html">Google Maps Engine API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="mapsengine_v1.assets.html">assets()</a></code>
+</p>
+<p class="firstline">Returns the assets Resource.</p>
+
+<p class="toc_element">
+  <code><a href="mapsengine_v1.layers.html">layers()</a></code>
+</p>
+<p class="firstline">Returns the layers Resource.</p>
+
+<p class="toc_element">
+  <code><a href="mapsengine_v1.maps.html">maps()</a></code>
+</p>
+<p class="firstline">Returns the maps Resource.</p>
+
+<p class="toc_element">
+  <code><a href="mapsengine_v1.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
+  <code><a href="mapsengine_v1.rasterCollections.html">rasterCollections()</a></code>
+</p>
+<p class="firstline">Returns the rasterCollections Resource.</p>
+
+<p class="toc_element">
+  <code><a href="mapsengine_v1.rasters.html">rasters()</a></code>
+</p>
+<p class="firstline">Returns the rasters Resource.</p>
+
+<p class="toc_element">
+  <code><a href="mapsengine_v1.tables.html">tables()</a></code>
+</p>
+<p class="firstline">Returns the tables Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/mapsengine_v1.layers.html b/docs/dyn/mapsengine_v1.layers.html
new file mode 100644
index 0000000..15f8b26
--- /dev/null
+++ b/docs/dyn/mapsengine_v1.layers.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="mapsengine_v1.html">Google Maps Engine API</a> . <a href="mapsengine_v1.layers.html">layers</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="mapsengine_v1.layers.parents.html">parents()</a></code>
+</p>
+<p class="firstline">Returns the parents Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#create">create(body, process=None)</a></code></p>
+<p class="firstline">Create a layer asset.</p>
+<p class="toc_element">
+  <code><a href="#get">get(id, version=None)</a></code></p>
+<p class="firstline">Return metadata for a particular layer.</p>
+<p class="toc_element">
+  <code><a href="#list">list(modifiedAfter=None, createdAfter=None, pageToken=None, projectId=None, maxResults=None, createdBefore=None, bbox=None, creatorEmail=None, modifiedBefore=None)</a></code></p>
+<p class="firstline">Return all layers readable by the current user.</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="#process">process(id)</a></code></p>
+<p class="firstline">Process a layer asset.</p>
+<p class="toc_element">
+  <code><a href="#publish">publish(id)</a></code></p>
+<p class="firstline">Publish a layer asset.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(body, process=None)</code>
+  <pre>Create a layer asset.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A Layer combines multiple datasources, with styling information, for presentation on a map.
+    "style": { # A vector style contains styling information for vector layer. # The Styling information for a vector layer.
+      "featureInfo": { # A feature info contains information about individual feature. # Individual feature info, this is called Info Window in Maps Engine UI. If not provided, a default template with all attributes will be generated.
+        "content": "A String", # HTML template of the info window. If not provided, a default template with all attributes will be generated.
+      },
+      "type": "A String", # The type of the vector style. Currently, only displayRule is supported.
+      "displayRules": [ # Display rules of the vector style. The first matched rule will apply to the features. If no display rule is provided, a default display rule will be generated according to Geometry type.
+        { # A display rule of the vector style.
+          "pointOptions": { # Style for points. # Style applied to points. Required for Point Geometry.
+            "label": { # Text label style. # Label style for the point.
+              "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.
+            },
+            "icon": { # Style for icon, this is part of point style. # Icon for the point; exactly one field in 'icon' must be set.
+              "id": "A String", # Custom icon id.
+              "name": "A String", # Stock icon name. To use a stock icon, prefix it with 'gx_'. See Stock icon names for valid icon names. For example, to specify small_red, set name to 'gx_small_red'.
+            },
+          },
+          "name": "A String", # Display rule name. Name is not unique and cannot be used for identification purpose.
+          "polygonOptions": { # Style for polygons. # Style applied to polygons. Required for Polygon Geometry.
+            "stroke": { # Border in line style. Both color and width are required. # Border of the polygon. 0 < border.width <= 10.
+              "color": "A String", # Color of the border.
+              "opacity": 3.14, # Opacity of the border.
+              "width": 3.14, # Width of the border, in pixels.
+            },
+            "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.
+            },
+          },
+          "lineOptions": { # Style for lines. # Style applied to lines. Required for LineString Geometry.
+            "dash": [ # Dash defines the pattern of the line, the values are pixel lengths of alternating dash and gap. If dash is not provided, then it means a solid line. Dash can contain up to 10 values and must contain even number of values.
+              3.14,
+            ],
+            "stroke": { # Stroke of the line.
+              "color": "A String", # Color of the line.
+              "opacity": 3.14, # Opacity of the line.
+              "width": 3.14, # Width of the line, in pixels. 0 <= width <= 10. If width is set to 0, the line will be invisible.
+            },
+            "border": { # Border in line style. Both color and width are required. # Border of the line. 0 < border.width <= 5.
+              "color": "A String", # Color of the border.
+              "opacity": 3.14, # Opacity of the border.
+              "width": 3.14, # Width of the border, in pixels.
+            },
+            "label": { # Text label style. # Label style for the line.
+              "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.
+            },
+          },
+          "zoomLevels": { # Zoom level range. Zoom levels are restricted between 0 and 24, inclusive. # The zoom levels that this display rule apply.
+            "max": 42, # Maximum zoom level.
+            "min": 42, # Minimum zoom level.
+          },
+          "filters": [ # This display rule will only be applied to features that match all of the filters here. If filters is empty, then the rule applies to all features.
+            { # Conditions for filtering features.
+              "column": "A String", # The column name to filter on.
+              "operator": "A String", # Operation used to evaluate the filter.
+              "value": "", # Value to be evaluated against attribute.
+            },
+          ],
+        },
+      ],
+    },
+    "description": "A String", # The description of this Layer, supplied by the author.
+    "processingStatus": "A String", # The processing status of this layer.
+    "draftAccessList": "A String", # The name of an access list of the Map Editor type. The user on whose behalf the request is being sent must be an editor on that access list. Read About access lists in the Google Maps Engine help center for more information.
+    "datasourceType": "A String", # The type of the datasources used to build this Layer. One of either "table" or "image".
+    "tags": [ # Tags of this Layer.
+      "A String",
+    ],
+    "creationTime": "A String", # The creation time of this layer. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+    "name": "A String", # The name of this Layer, supplied by the author.
+    "bbox": [ # An array of four numbers (west, south, east, north) which define the rectangular bounding box which contains all of the data in this Layer. The numbers represent latitudes and longitudes in decimal degrees.
+      3.14,
+    ],
+    "projectId": "A String", # The ID of the project that this Layer is in.
+    "lastModifiedTime": "A String", # The last modified time of this layer. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+    "publishedAccessList": "A String", # The access list to whom view permissions are granted. The value must be the name of a Maps Engine access list of the Map Viewer type, and the user must be a viewer on that list. Read About access lists in the Google Maps Engine help center for more information.
+    "id": "A String", # A globally unique ID, used to refer to this Layer.
+    "datasources": [ # An array of datasources used to build this Layer. If datasourceType is "image", then each element in this array is a reference to an Image or RasterCollection. If datasourceType is "table" then each element in this array is a reference to a Vector Table.
+      {
+        "id": "A String", # The ID of a datasource.
+      },
+    ],
+  }
+
+  process: boolean, Whether to queue the created layer for processing.
+
+Returns:
+  An object of the form:
+
+    { # A Layer combines multiple datasources, with styling information, for presentation on a map.
+      "style": { # A vector style contains styling information for vector layer. # The Styling information for a vector layer.
+        "featureInfo": { # A feature info contains information about individual feature. # Individual feature info, this is called Info Window in Maps Engine UI. If not provided, a default template with all attributes will be generated.
+          "content": "A String", # HTML template of the info window. If not provided, a default template with all attributes will be generated.
+        },
+        "type": "A String", # The type of the vector style. Currently, only displayRule is supported.
+        "displayRules": [ # Display rules of the vector style. The first matched rule will apply to the features. If no display rule is provided, a default display rule will be generated according to Geometry type.
+          { # A display rule of the vector style.
+            "pointOptions": { # Style for points. # Style applied to points. Required for Point Geometry.
+              "label": { # Text label style. # Label style for the point.
+                "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.
+              },
+              "icon": { # Style for icon, this is part of point style. # Icon for the point; exactly one field in 'icon' must be set.
+                "id": "A String", # Custom icon id.
+                "name": "A String", # Stock icon name. To use a stock icon, prefix it with 'gx_'. See Stock icon names for valid icon names. For example, to specify small_red, set name to 'gx_small_red'.
+              },
+            },
+            "name": "A String", # Display rule name. Name is not unique and cannot be used for identification purpose.
+            "polygonOptions": { # Style for polygons. # Style applied to polygons. Required for Polygon Geometry.
+              "stroke": { # Border in line style. Both color and width are required. # Border of the polygon. 0 < border.width <= 10.
+                "color": "A String", # Color of the border.
+                "opacity": 3.14, # Opacity of the border.
+                "width": 3.14, # Width of the border, in pixels.
+              },
+              "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.
+              },
+            },
+            "lineOptions": { # Style for lines. # Style applied to lines. Required for LineString Geometry.
+              "dash": [ # Dash defines the pattern of the line, the values are pixel lengths of alternating dash and gap. If dash is not provided, then it means a solid line. Dash can contain up to 10 values and must contain even number of values.
+                3.14,
+              ],
+              "stroke": { # Stroke of the line.
+                "color": "A String", # Color of the line.
+                "opacity": 3.14, # Opacity of the line.
+                "width": 3.14, # Width of the line, in pixels. 0 <= width <= 10. If width is set to 0, the line will be invisible.
+              },
+              "border": { # Border in line style. Both color and width are required. # Border of the line. 0 < border.width <= 5.
+                "color": "A String", # Color of the border.
+                "opacity": 3.14, # Opacity of the border.
+                "width": 3.14, # Width of the border, in pixels.
+              },
+              "label": { # Text label style. # Label style for the line.
+                "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.
+              },
+            },
+            "zoomLevels": { # Zoom level range. Zoom levels are restricted between 0 and 24, inclusive. # The zoom levels that this display rule apply.
+              "max": 42, # Maximum zoom level.
+              "min": 42, # Minimum zoom level.
+            },
+            "filters": [ # This display rule will only be applied to features that match all of the filters here. If filters is empty, then the rule applies to all features.
+              { # Conditions for filtering features.
+                "column": "A String", # The column name to filter on.
+                "operator": "A String", # Operation used to evaluate the filter.
+                "value": "", # Value to be evaluated against attribute.
+              },
+            ],
+          },
+        ],
+      },
+      "description": "A String", # The description of this Layer, supplied by the author.
+      "processingStatus": "A String", # The processing status of this layer.
+      "draftAccessList": "A String", # The name of an access list of the Map Editor type. The user on whose behalf the request is being sent must be an editor on that access list. Read About access lists in the Google Maps Engine help center for more information.
+      "datasourceType": "A String", # The type of the datasources used to build this Layer. One of either "table" or "image".
+      "tags": [ # Tags of this Layer.
+        "A String",
+      ],
+      "creationTime": "A String", # The creation time of this layer. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+      "name": "A String", # The name of this Layer, supplied by the author.
+      "bbox": [ # An array of four numbers (west, south, east, north) which define the rectangular bounding box which contains all of the data in this Layer. The numbers represent latitudes and longitudes in decimal degrees.
+        3.14,
+      ],
+      "projectId": "A String", # The ID of the project that this Layer is in.
+      "lastModifiedTime": "A String", # The last modified time of this layer. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+      "publishedAccessList": "A String", # The access list to whom view permissions are granted. The value must be the name of a Maps Engine access list of the Map Viewer type, and the user must be a viewer on that list. Read About access lists in the Google Maps Engine help center for more information.
+      "id": "A String", # A globally unique ID, used to refer to this Layer.
+      "datasources": [ # An array of datasources used to build this Layer. If datasourceType is "image", then each element in this array is a reference to an Image or RasterCollection. If datasourceType is "table" then each element in this array is a reference to a Vector Table.
+        {
+          "id": "A String", # The ID of a datasource.
+        },
+      ],
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(id, version=None)</code>
+  <pre>Return metadata for a particular layer.
+
+Args:
+  id: string, The ID of the layer. (required)
+  version: string, A parameter
+    Allowed values
+      draft - The draft version.
+      published - The published version.
+
+Returns:
+  An object of the form:
+
+    { # A Layer combines multiple datasources, with styling information, for presentation on a map.
+      "style": { # A vector style contains styling information for vector layer. # The Styling information for a vector layer.
+        "featureInfo": { # A feature info contains information about individual feature. # Individual feature info, this is called Info Window in Maps Engine UI. If not provided, a default template with all attributes will be generated.
+          "content": "A String", # HTML template of the info window. If not provided, a default template with all attributes will be generated.
+        },
+        "type": "A String", # The type of the vector style. Currently, only displayRule is supported.
+        "displayRules": [ # Display rules of the vector style. The first matched rule will apply to the features. If no display rule is provided, a default display rule will be generated according to Geometry type.
+          { # A display rule of the vector style.
+            "pointOptions": { # Style for points. # Style applied to points. Required for Point Geometry.
+              "label": { # Text label style. # Label style for the point.
+                "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.
+              },
+              "icon": { # Style for icon, this is part of point style. # Icon for the point; exactly one field in 'icon' must be set.
+                "id": "A String", # Custom icon id.
+                "name": "A String", # Stock icon name. To use a stock icon, prefix it with 'gx_'. See Stock icon names for valid icon names. For example, to specify small_red, set name to 'gx_small_red'.
+              },
+            },
+            "name": "A String", # Display rule name. Name is not unique and cannot be used for identification purpose.
+            "polygonOptions": { # Style for polygons. # Style applied to polygons. Required for Polygon Geometry.
+              "stroke": { # Border in line style. Both color and width are required. # Border of the polygon. 0 < border.width <= 10.
+                "color": "A String", # Color of the border.
+                "opacity": 3.14, # Opacity of the border.
+                "width": 3.14, # Width of the border, in pixels.
+              },
+              "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.
+              },
+            },
+            "lineOptions": { # Style for lines. # Style applied to lines. Required for LineString Geometry.
+              "dash": [ # Dash defines the pattern of the line, the values are pixel lengths of alternating dash and gap. If dash is not provided, then it means a solid line. Dash can contain up to 10 values and must contain even number of values.
+                3.14,
+              ],
+              "stroke": { # Stroke of the line.
+                "color": "A String", # Color of the line.
+                "opacity": 3.14, # Opacity of the line.
+                "width": 3.14, # Width of the line, in pixels. 0 <= width <= 10. If width is set to 0, the line will be invisible.
+              },
+              "border": { # Border in line style. Both color and width are required. # Border of the line. 0 < border.width <= 5.
+                "color": "A String", # Color of the border.
+                "opacity": 3.14, # Opacity of the border.
+                "width": 3.14, # Width of the border, in pixels.
+              },
+              "label": { # Text label style. # Label style for the line.
+                "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.
+              },
+            },
+            "zoomLevels": { # Zoom level range. Zoom levels are restricted between 0 and 24, inclusive. # The zoom levels that this display rule apply.
+              "max": 42, # Maximum zoom level.
+              "min": 42, # Minimum zoom level.
+            },
+            "filters": [ # This display rule will only be applied to features that match all of the filters here. If filters is empty, then the rule applies to all features.
+              { # Conditions for filtering features.
+                "column": "A String", # The column name to filter on.
+                "operator": "A String", # Operation used to evaluate the filter.
+                "value": "", # Value to be evaluated against attribute.
+              },
+            ],
+          },
+        ],
+      },
+      "description": "A String", # The description of this Layer, supplied by the author.
+      "processingStatus": "A String", # The processing status of this layer.
+      "draftAccessList": "A String", # The name of an access list of the Map Editor type. The user on whose behalf the request is being sent must be an editor on that access list. Read About access lists in the Google Maps Engine help center for more information.
+      "datasourceType": "A String", # The type of the datasources used to build this Layer. One of either "table" or "image".
+      "tags": [ # Tags of this Layer.
+        "A String",
+      ],
+      "creationTime": "A String", # The creation time of this layer. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+      "name": "A String", # The name of this Layer, supplied by the author.
+      "bbox": [ # An array of four numbers (west, south, east, north) which define the rectangular bounding box which contains all of the data in this Layer. The numbers represent latitudes and longitudes in decimal degrees.
+        3.14,
+      ],
+      "projectId": "A String", # The ID of the project that this Layer is in.
+      "lastModifiedTime": "A String", # The last modified time of this layer. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+      "publishedAccessList": "A String", # The access list to whom view permissions are granted. The value must be the name of a Maps Engine access list of the Map Viewer type, and the user must be a viewer on that list. Read About access lists in the Google Maps Engine help center for more information.
+      "id": "A String", # A globally unique ID, used to refer to this Layer.
+      "datasources": [ # An array of datasources used to build this Layer. If datasourceType is "image", then each element in this array is a reference to an Image or RasterCollection. If datasourceType is "table" then each element in this array is a reference to a Vector Table.
+        {
+          "id": "A String", # The ID of a datasource.
+        },
+      ],
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(modifiedAfter=None, createdAfter=None, pageToken=None, projectId=None, maxResults=None, createdBefore=None, bbox=None, creatorEmail=None, modifiedBefore=None)</code>
+  <pre>Return all layers readable by the current user.
+
+Args:
+  modifiedAfter: string, An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or after this time.
+  createdAfter: string, An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or after this time.
+  pageToken: string, The continuation token, 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.
+  projectId: string, The ID of a Maps Engine project, used to filter the response. To list all available projects with their IDs, send a Projects: list request. You can also find your project ID as the value of the DashboardPlace:cid URL parameter when signed in to mapsengine.google.com.
+  maxResults: integer, The maximum number of items to include in a single response page. The maximum supported value is 100.
+  createdBefore: string, An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or before this time.
+  bbox: string, A bounding box, expressed as "west,south,east,north". If set, only assets which intersect this bounding box will be returned.
+  creatorEmail: string, An email address representing a user. Returned assets that have been created by the user associated with the provided email address.
+  modifiedBefore: string, An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or before this time.
+
+Returns:
+  An object of the form:
+
+    { # The response returned by a call to layers.List.
+    "layers": [ # Resources returned.
+      { # A Layer combines multiple datasources, with styling information, for presentation on a map.
+          "style": { # A vector style contains styling information for vector layer. # The Styling information for a vector layer.
+            "featureInfo": { # A feature info contains information about individual feature. # Individual feature info, this is called Info Window in Maps Engine UI. If not provided, a default template with all attributes will be generated.
+              "content": "A String", # HTML template of the info window. If not provided, a default template with all attributes will be generated.
+            },
+            "type": "A String", # The type of the vector style. Currently, only displayRule is supported.
+            "displayRules": [ # Display rules of the vector style. The first matched rule will apply to the features. If no display rule is provided, a default display rule will be generated according to Geometry type.
+              { # A display rule of the vector style.
+                "pointOptions": { # Style for points. # Style applied to points. Required for Point Geometry.
+                  "label": { # Text label style. # Label style for the point.
+                    "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.
+                  },
+                  "icon": { # Style for icon, this is part of point style. # Icon for the point; exactly one field in 'icon' must be set.
+                    "id": "A String", # Custom icon id.
+                    "name": "A String", # Stock icon name. To use a stock icon, prefix it with 'gx_'. See Stock icon names for valid icon names. For example, to specify small_red, set name to 'gx_small_red'.
+                  },
+                },
+                "name": "A String", # Display rule name. Name is not unique and cannot be used for identification purpose.
+                "polygonOptions": { # Style for polygons. # Style applied to polygons. Required for Polygon Geometry.
+                  "stroke": { # Border in line style. Both color and width are required. # Border of the polygon. 0 < border.width <= 10.
+                    "color": "A String", # Color of the border.
+                    "opacity": 3.14, # Opacity of the border.
+                    "width": 3.14, # Width of the border, in pixels.
+                  },
+                  "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.
+                  },
+                },
+                "lineOptions": { # Style for lines. # Style applied to lines. Required for LineString Geometry.
+                  "dash": [ # Dash defines the pattern of the line, the values are pixel lengths of alternating dash and gap. If dash is not provided, then it means a solid line. Dash can contain up to 10 values and must contain even number of values.
+                    3.14,
+                  ],
+                  "stroke": { # Stroke of the line.
+                    "color": "A String", # Color of the line.
+                    "opacity": 3.14, # Opacity of the line.
+                    "width": 3.14, # Width of the line, in pixels. 0 <= width <= 10. If width is set to 0, the line will be invisible.
+                  },
+                  "border": { # Border in line style. Both color and width are required. # Border of the line. 0 < border.width <= 5.
+                    "color": "A String", # Color of the border.
+                    "opacity": 3.14, # Opacity of the border.
+                    "width": 3.14, # Width of the border, in pixels.
+                  },
+                  "label": { # Text label style. # Label style for the line.
+                    "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.
+                  },
+                },
+                "zoomLevels": { # Zoom level range. Zoom levels are restricted between 0 and 24, inclusive. # The zoom levels that this display rule apply.
+                  "max": 42, # Maximum zoom level.
+                  "min": 42, # Minimum zoom level.
+                },
+                "filters": [ # This display rule will only be applied to features that match all of the filters here. If filters is empty, then the rule applies to all features.
+                  { # Conditions for filtering features.
+                    "column": "A String", # The column name to filter on.
+                    "operator": "A String", # Operation used to evaluate the filter.
+                    "value": "", # Value to be evaluated against attribute.
+                  },
+                ],
+              },
+            ],
+          },
+          "description": "A String", # The description of this Layer, supplied by the author.
+          "processingStatus": "A String", # The processing status of this layer.
+          "draftAccessList": "A String", # The name of an access list of the Map Editor type. The user on whose behalf the request is being sent must be an editor on that access list. Read About access lists in the Google Maps Engine help center for more information.
+          "datasourceType": "A String", # The type of the datasources used to build this Layer. One of either "table" or "image".
+          "tags": [ # Tags of this Layer.
+            "A String",
+          ],
+          "creationTime": "A String", # The creation time of this layer. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+          "name": "A String", # The name of this Layer, supplied by the author.
+          "bbox": [ # An array of four numbers (west, south, east, north) which define the rectangular bounding box which contains all of the data in this Layer. The numbers represent latitudes and longitudes in decimal degrees.
+            3.14,
+          ],
+          "projectId": "A String", # The ID of the project that this Layer is in.
+          "lastModifiedTime": "A String", # The last modified time of this layer. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+          "publishedAccessList": "A String", # The access list to whom view permissions are granted. The value must be the name of a Maps Engine access list of the Map Viewer type, and the user must be a viewer on that list. Read About access lists in the Google Maps Engine help center for more information.
+          "id": "A String", # A globally unique ID, used to refer to this Layer.
+          "datasources": [ # An array of datasources used to build this Layer. If datasourceType is "image", then each element in this array is a reference to an Image or RasterCollection. If datasourceType is "table" then each element in this array is a reference to a Vector Table.
+            {
+              "id": "A String", # The ID of a datasource.
+            },
+          ],
+        },
+    ],
+    "nextPageToken": "A String", # Next page token.
+  }</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="process">process(id)</code>
+  <pre>Process a layer asset.
+
+Args:
+  id: string, The ID of the layer. (required)
+
+Returns:
+  An object of the form:
+
+    { # The response returned by a call to any asset's Process method.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="publish">publish(id)</code>
+  <pre>Publish a layer asset.
+
+Args:
+  id: string, The ID of the layer. (required)
+
+Returns:
+  An object of the form:
+
+    { # The response returned by a call to any asset's Publish method.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/mapsengine_v1.layers.parents.html b/docs/dyn/mapsengine_v1.layers.parents.html
new file mode 100644
index 0000000..e68e1f5
--- /dev/null
+++ b/docs/dyn/mapsengine_v1.layers.parents.html
@@ -0,0 +1,120 @@
+<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="mapsengine_v1.html">Google Maps Engine API</a> . <a href="mapsengine_v1.layers.html">layers</a> . <a href="mapsengine_v1.layers.parents.html">parents</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(id, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Return all parent ids of the specified layer.</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(id, pageToken=None, maxResults=None)</code>
+  <pre>Return all parent ids of the specified layer.
+
+Args:
+  id: string, The ID of the layer whose parents will be listed. (required)
+  pageToken: string, The continuation token, 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.
+  maxResults: integer, The maximum number of items to include in a single response page. The maximum supported value is 50.
+
+Returns:
+  An object of the form:
+
+    { # The response returned by a call to parents.List.
+    "nextPageToken": "A String", # Next page token.
+    "parents": [ # Resources returned.
+      { # A list of the parents of an asset.
+        "id": "A String", # The ID of this parent.
+      },
+    ],
+  }</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/mapsengine_v1.maps.html b/docs/dyn/mapsengine_v1.maps.html
new file mode 100644
index 0000000..63f2347
--- /dev/null
+++ b/docs/dyn/mapsengine_v1.maps.html
@@ -0,0 +1,190 @@
+<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="mapsengine_v1.html">Google Maps Engine API</a> . <a href="mapsengine_v1.maps.html">maps</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(id, version=None)</a></code></p>
+<p class="firstline">Return metadata for a particular map.</p>
+<p class="toc_element">
+  <code><a href="#list">list(modifiedAfter=None, createdAfter=None, pageToken=None, projectId=None, maxResults=None, createdBefore=None, bbox=None, creatorEmail=None, modifiedBefore=None)</a></code></p>
+<p class="firstline">Return all maps readable by the current user.</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(id, version=None)</code>
+  <pre>Return metadata for a particular map.
+
+Args:
+  id: string, The ID of the map. (required)
+  version: string, A parameter
+    Allowed values
+      draft - The draft version.
+      published - The published version.
+
+Returns:
+  An object of the form:
+
+    { # A Map is a collection of Layers, optionally contained within folders.
+    "description": "A String", # The description of this Map, supplied by the author.
+    "defaultViewport": [ # An array of four numbers (west, south, east, north) which defines the rectangular bounding box of the default viewport. The numbers represent latitude and longitude in decimal degrees.
+      3.14,
+    ],
+    "tags": [ # Tags of this Map.
+      "A String",
+    ],
+    "projectId": "A String", # The ID of the project that this Map is in.
+    "versions": [ # An array containing the available versions of this Map. Currently may only contain "published".
+      "A String",
+    ],
+    "creationTime": "A String", # The creation time of this map. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+    "bbox": [ # An array of four numbers (west, south, east, north) which define the rectangular bounding box which contains all of the data in this Map. The numbers represent latitude and longitude in decimal degrees.
+      3.14,
+    ],
+    "lastModifiedTime": "A String", # The last modified time of this map. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+    "id": "A String", # A globally unique ID, used to refer to this Map.
+    "contents": [ # The contents of this Map.
+      { # A map item.
+      },
+    ],
+    "name": "A String", # The name of this Map, supplied by the author.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(modifiedAfter=None, createdAfter=None, pageToken=None, projectId=None, maxResults=None, createdBefore=None, bbox=None, creatorEmail=None, modifiedBefore=None)</code>
+  <pre>Return all maps readable by the current user.
+
+Args:
+  modifiedAfter: string, An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or after this time.
+  createdAfter: string, An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or after this time.
+  pageToken: string, The continuation token, 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.
+  projectId: string, The ID of a Maps Engine project, used to filter the response. To list all available projects with their IDs, send a Projects: list request. You can also find your project ID as the value of the DashboardPlace:cid URL parameter when signed in to mapsengine.google.com.
+  maxResults: integer, The maximum number of items to include in a single response page. The maximum supported value is 100.
+  createdBefore: string, An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or before this time.
+  bbox: string, A bounding box, expressed as "west,south,east,north". If set, only assets which intersect this bounding box will be returned.
+  creatorEmail: string, An email address representing a user. Returned assets that have been created by the user associated with the provided email address.
+  modifiedBefore: string, An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or before this time.
+
+Returns:
+  An object of the form:
+
+    { # The response returned by a call to maps.List.
+    "nextPageToken": "A String", # Next page token.
+    "maps": [ # Resources returned.
+      { # A Map is a collection of Layers, optionally contained within folders.
+        "description": "A String", # The description of this Map, supplied by the author.
+        "defaultViewport": [ # An array of four numbers (west, south, east, north) which defines the rectangular bounding box of the default viewport. The numbers represent latitude and longitude in decimal degrees.
+          3.14,
+        ],
+        "tags": [ # Tags of this Map.
+          "A String",
+        ],
+        "projectId": "A String", # The ID of the project that this Map is in.
+        "versions": [ # An array containing the available versions of this Map. Currently may only contain "published".
+          "A String",
+        ],
+        "creationTime": "A String", # The creation time of this map. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+        "bbox": [ # An array of four numbers (west, south, east, north) which define the rectangular bounding box which contains all of the data in this Map. The numbers represent latitude and longitude in decimal degrees.
+          3.14,
+        ],
+        "lastModifiedTime": "A String", # The last modified time of this map. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+        "id": "A String", # A globally unique ID, used to refer to this Map.
+        "contents": [ # The contents of this Map.
+          { # A map item.
+          },
+        ],
+        "name": "A String", # The name of this Map, supplied by the author.
+      },
+    ],
+  }</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/mapsengine_v1.projects.html b/docs/dyn/mapsengine_v1.projects.html
new file mode 100644
index 0000000..70571a7
--- /dev/null
+++ b/docs/dyn/mapsengine_v1.projects.html
@@ -0,0 +1,100 @@
+<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="mapsengine_v1.html">Google Maps Engine API</a> . <a href="mapsengine_v1.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list()</a></code></p>
+<p class="firstline">Return all projects readable by the current user.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list()</code>
+  <pre>Return all projects readable by the current user.
+
+Args:
+
+Returns:
+  An object of the form:
+
+    { # The response returned by a call to projects.List.
+    "projects": [ # Projects returned.
+      { # A project groups a collection of resources.
+        "id": "A String", # An ID used to refer to this project.
+        "name": "A String", # A user provided name for this project.
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/mapsengine_v1.rasterCollections.html b/docs/dyn/mapsengine_v1.rasterCollections.html
new file mode 100644
index 0000000..a87d758
--- /dev/null
+++ b/docs/dyn/mapsengine_v1.rasterCollections.html
@@ -0,0 +1,238 @@
+<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="mapsengine_v1.html">Google Maps Engine API</a> . <a href="mapsengine_v1.rasterCollections.html">rasterCollections</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="mapsengine_v1.rasterCollections.parents.html">parents()</a></code>
+</p>
+<p class="firstline">Returns the parents Resource.</p>
+
+<p class="toc_element">
+  <code><a href="mapsengine_v1.rasterCollections.rasters.html">rasters()</a></code>
+</p>
+<p class="firstline">Returns the rasters Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#create">create(body)</a></code></p>
+<p class="firstline">Create a raster collection asset.</p>
+<p class="toc_element">
+  <code><a href="#get">get(id)</a></code></p>
+<p class="firstline">Return metadata for a particular raster collection.</p>
+<p class="toc_element">
+  <code><a href="#list">list(modifiedAfter=None, createdAfter=None, pageToken=None, projectId=None, maxResults=None, createdBefore=None, bbox=None, creatorEmail=None, modifiedBefore=None)</a></code></p>
+<p class="firstline">Return all raster collections readable by the current user.</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(body)</code>
+  <pre>Create a raster collection asset.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A raster collection groups multiple Raster resources for inclusion in a Layer.
+    "attribution": "A String", # The name of the attribution to be used for this RasterCollection.
+    "description": "A String", # The description of this RasterCollection, supplied by the author.
+    "tags": [ # Tags of this RasterCollection.
+      "A String",
+    ],
+    "draftAccessList": "A String", # The name of an access list of the Map Editor type. The user on whose behalf the request is being sent must be an editor on that access list. Read About access lists in the Google Maps Engine help center for more information.
+    "projectId": "A String", # The ID of the project that this RasterCollection is in.
+    "creationTime": "A String", # The creation time of this rasterCollection. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+    "rasterType": "A String", # The type of rasters contained within this RasterCollection.
+    "bbox": [ # An array of four numbers (west, south, east, north) which define the rectangular bounding box which contains all of the data in this RasterCollection. The numbers represent latitudes and longitudes in decimal degrees.
+      3.14,
+    ],
+    "lastModifiedTime": "A String", # The last modified time of this rasterCollection. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+    "id": "A String", # A globally unique ID, used to refer to this RasterCollection.
+    "mosaic": True or False, # True if this RasterCollection is a mosaic.
+    "name": "A String", # The name of this RasterCollection, supplied by the author.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A raster collection groups multiple Raster resources for inclusion in a Layer.
+      "attribution": "A String", # The name of the attribution to be used for this RasterCollection.
+      "description": "A String", # The description of this RasterCollection, supplied by the author.
+      "tags": [ # Tags of this RasterCollection.
+        "A String",
+      ],
+      "draftAccessList": "A String", # The name of an access list of the Map Editor type. The user on whose behalf the request is being sent must be an editor on that access list. Read About access lists in the Google Maps Engine help center for more information.
+      "projectId": "A String", # The ID of the project that this RasterCollection is in.
+      "creationTime": "A String", # The creation time of this rasterCollection. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+      "rasterType": "A String", # The type of rasters contained within this RasterCollection.
+      "bbox": [ # An array of four numbers (west, south, east, north) which define the rectangular bounding box which contains all of the data in this RasterCollection. The numbers represent latitudes and longitudes in decimal degrees.
+        3.14,
+      ],
+      "lastModifiedTime": "A String", # The last modified time of this rasterCollection. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+      "id": "A String", # A globally unique ID, used to refer to this RasterCollection.
+      "mosaic": True or False, # True if this RasterCollection is a mosaic.
+      "name": "A String", # The name of this RasterCollection, supplied by the author.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(id)</code>
+  <pre>Return metadata for a particular raster collection.
+
+Args:
+  id: string, The ID of the raster collection. (required)
+
+Returns:
+  An object of the form:
+
+    { # A raster collection groups multiple Raster resources for inclusion in a Layer.
+      "attribution": "A String", # The name of the attribution to be used for this RasterCollection.
+      "description": "A String", # The description of this RasterCollection, supplied by the author.
+      "tags": [ # Tags of this RasterCollection.
+        "A String",
+      ],
+      "draftAccessList": "A String", # The name of an access list of the Map Editor type. The user on whose behalf the request is being sent must be an editor on that access list. Read About access lists in the Google Maps Engine help center for more information.
+      "projectId": "A String", # The ID of the project that this RasterCollection is in.
+      "creationTime": "A String", # The creation time of this rasterCollection. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+      "rasterType": "A String", # The type of rasters contained within this RasterCollection.
+      "bbox": [ # An array of four numbers (west, south, east, north) which define the rectangular bounding box which contains all of the data in this RasterCollection. The numbers represent latitudes and longitudes in decimal degrees.
+        3.14,
+      ],
+      "lastModifiedTime": "A String", # The last modified time of this rasterCollection. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+      "id": "A String", # A globally unique ID, used to refer to this RasterCollection.
+      "mosaic": True or False, # True if this RasterCollection is a mosaic.
+      "name": "A String", # The name of this RasterCollection, supplied by the author.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(modifiedAfter=None, createdAfter=None, pageToken=None, projectId=None, maxResults=None, createdBefore=None, bbox=None, creatorEmail=None, modifiedBefore=None)</code>
+  <pre>Return all raster collections readable by the current user.
+
+Args:
+  modifiedAfter: string, An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or after this time.
+  createdAfter: string, An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or after this time.
+  pageToken: string, The continuation token, 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.
+  projectId: string, The ID of a Maps Engine project, used to filter the response. To list all available projects with their IDs, send a Projects: list request. You can also find your project ID as the value of the DashboardPlace:cid URL parameter when signed in to mapsengine.google.com.
+  maxResults: integer, The maximum number of items to include in a single response page. The maximum supported value is 100.
+  createdBefore: string, An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or before this time.
+  bbox: string, A bounding box, expressed as "west,south,east,north". If set, only assets which intersect this bounding box will be returned.
+  creatorEmail: string, An email address representing a user. Returned assets that have been created by the user associated with the provided email address.
+  modifiedBefore: string, An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or before this time.
+
+Returns:
+  An object of the form:
+
+    { # The response returned by a call to raster_collections.List.
+    "nextPageToken": "A String", # Next page token.
+    "rasterCollections": [ # Resources returned.
+      { # A raster collection groups multiple Raster resources for inclusion in a Layer.
+          "attribution": "A String", # The name of the attribution to be used for this RasterCollection.
+          "description": "A String", # The description of this RasterCollection, supplied by the author.
+          "tags": [ # Tags of this RasterCollection.
+            "A String",
+          ],
+          "draftAccessList": "A String", # The name of an access list of the Map Editor type. The user on whose behalf the request is being sent must be an editor on that access list. Read About access lists in the Google Maps Engine help center for more information.
+          "projectId": "A String", # The ID of the project that this RasterCollection is in.
+          "creationTime": "A String", # The creation time of this rasterCollection. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+          "rasterType": "A String", # The type of rasters contained within this RasterCollection.
+          "bbox": [ # An array of four numbers (west, south, east, north) which define the rectangular bounding box which contains all of the data in this RasterCollection. The numbers represent latitudes and longitudes in decimal degrees.
+            3.14,
+          ],
+          "lastModifiedTime": "A String", # The last modified time of this rasterCollection. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+          "id": "A String", # A globally unique ID, used to refer to this RasterCollection.
+          "mosaic": True or False, # True if this RasterCollection is a mosaic.
+          "name": "A String", # The name of this RasterCollection, supplied by the author.
+        },
+    ],
+  }</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/mapsengine_v1.rasterCollections.parents.html b/docs/dyn/mapsengine_v1.rasterCollections.parents.html
new file mode 100644
index 0000000..4486a5e
--- /dev/null
+++ b/docs/dyn/mapsengine_v1.rasterCollections.parents.html
@@ -0,0 +1,120 @@
+<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="mapsengine_v1.html">Google Maps Engine API</a> . <a href="mapsengine_v1.rasterCollections.html">rasterCollections</a> . <a href="mapsengine_v1.rasterCollections.parents.html">parents</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(id, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Return all parent ids of the specified raster collection.</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(id, pageToken=None, maxResults=None)</code>
+  <pre>Return all parent ids of the specified raster collection.
+
+Args:
+  id: string, The ID of the raster collection whose parents will be listed. (required)
+  pageToken: string, The continuation token, 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.
+  maxResults: integer, The maximum number of items to include in a single response page. The maximum supported value is 50.
+
+Returns:
+  An object of the form:
+
+    { # The response returned by a call to parents.List.
+    "nextPageToken": "A String", # Next page token.
+    "parents": [ # Resources returned.
+      { # A list of the parents of an asset.
+        "id": "A String", # The ID of this parent.
+      },
+    ],
+  }</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/mapsengine_v1.rasterCollections.rasters.html b/docs/dyn/mapsengine_v1.rasterCollections.rasters.html
new file mode 100644
index 0000000..a0131ea
--- /dev/null
+++ b/docs/dyn/mapsengine_v1.rasterCollections.rasters.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="mapsengine_v1.html">Google Maps Engine API</a> . <a href="mapsengine_v1.rasterCollections.html">rasterCollections</a> . <a href="mapsengine_v1.rasterCollections.rasters.html">rasters</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(id, modifiedAfter=None, createdAfter=None, pageToken=None, maxResults=None, createdBefore=None, bbox=None, creatorEmail=None, modifiedBefore=None)</a></code></p>
+<p class="firstline">Return all rasters within a raster collection.</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(id, modifiedAfter=None, createdAfter=None, pageToken=None, maxResults=None, createdBefore=None, bbox=None, creatorEmail=None, modifiedBefore=None)</code>
+  <pre>Return all rasters within a raster collection.
+
+Args:
+  id: string, The ID of the raster collection to which these rasters belong. (required)
+  modifiedAfter: string, An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or after this time.
+  createdAfter: string, An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or after this time.
+  pageToken: string, The continuation token, 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.
+  maxResults: integer, The maximum number of items to include in a single response page. The maximum supported value is 100.
+  createdBefore: string, An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or before this time.
+  bbox: string, A bounding box, expressed as "west,south,east,north". If set, only assets which intersect this bounding box will be returned.
+  creatorEmail: string, An email address representing a user. Returned assets that have been created by the user associated with the provided email address.
+  modifiedBefore: string, An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or before this time.
+
+Returns:
+  An object of the form:
+
+    { # The response returned by a call to rasterCollections.rasters.List.
+    "nextPageToken": "A String", # Next page token.
+    "rasters": [ # Resources returned.
+      { # A raster resource.
+        "name": "A String", # The name of this Raster, supplied by the author.
+        "tags": [ # Tags of this Raster.
+          "A String",
+        ],
+        "rasterType": "image", # The type of this Raster. Always "image" today.
+        "projectId": "A String", # The ID of the project that this Raster is in.
+        "creationTime": "A String", # The creation time of this raster. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+        "bbox": [ # An array of four numbers (west, south, east, north) which define the rectangular bounding box which contains all of the data in this Raster. The numbers represent latitudes and longitudes in decimal degrees.
+          3.14,
+        ],
+        "lastModifiedTime": "A String", # The last modified time of this raster. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+        "id": "A String", # A globally unique ID, used to refer to this Raster.
+        "description": "A String", # The description of this Raster, supplied by the author.
+      },
+    ],
+  }</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/mapsengine_v1.rasters.files.html b/docs/dyn/mapsengine_v1.rasters.files.html
new file mode 100644
index 0000000..626862e
--- /dev/null
+++ b/docs/dyn/mapsengine_v1.rasters.files.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="mapsengine_v1.html">Google Maps Engine API</a> . <a href="mapsengine_v1.rasters.html">rasters</a> . <a href="mapsengine_v1.rasters.files.html">files</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#insert">insert(id, filename, media_body=None)</a></code></p>
+<p class="firstline">Upload a file to a raster asset.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="insert">insert(id, filename, media_body=None)</code>
+  <pre>Upload a file to a raster asset.
+
+Args:
+  id: string, The ID of the raster asset. (required)
+  filename: string, The file name of this uploaded file. (required)
+  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
+</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/mapsengine_v1.rasters.html b/docs/dyn/mapsengine_v1.rasters.html
new file mode 100644
index 0000000..006eab7
--- /dev/null
+++ b/docs/dyn/mapsengine_v1.rasters.html
@@ -0,0 +1,232 @@
+<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="mapsengine_v1.html">Google Maps Engine API</a> . <a href="mapsengine_v1.rasters.html">rasters</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="mapsengine_v1.rasters.files.html">files()</a></code>
+</p>
+<p class="firstline">Returns the files Resource.</p>
+
+<p class="toc_element">
+  <code><a href="mapsengine_v1.rasters.parents.html">parents()</a></code>
+</p>
+<p class="firstline">Returns the parents Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#get">get(id)</a></code></p>
+<p class="firstline">Return metadata for a single raster.</p>
+<p class="toc_element">
+  <code><a href="#upload">upload(body)</a></code></p>
+<p class="firstline">Create a skeleton raster asset for upload.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(id)</code>
+  <pre>Return metadata for a single raster.
+
+Args:
+  id: string, The ID of the raster. (required)
+
+Returns:
+  An object of the form:
+
+    { # A geo-referenced raster.
+      "files": [ # The files associated with this Raster.
+        { # A single File, which is a component of an Asset.
+          "size": "A String", # The size of the file in bytes.
+          "uploadStatus": "A String", # The upload status of the file.
+          "filename": "A String", # The name of the file.
+        },
+      ],
+      "attribution": "A String", # The name of the attribution to be used for this Raster.
+      "description": "A String", # The description of this Raster, supplied by the author.
+      "processingStatus": "A String", # The processing status of this Raster. The raster processing status values can be:
+          #
+          # 'notReady': The raster is not ready to be processed - some files have not been uploaded.
+          # 'ready': The raster is queued for processing.
+          # 'processing': The raster is currently processing.
+          # 'complete': Processing has completed successfully.
+          # 'failed': Processing failed to complete.
+      "draftAccessList": "A String", # The Map Editors access list to share this Raster with.
+      "projectId": "A String", # The ID of the project that this Raster is in.
+      "tags": [ # Tags of this Raster.
+        "A String",
+      ],
+      "creationTime": "A String", # The creation time of this raster. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+      "name": "A String", # The name of this Raster, supplied by the author.
+      "acquisitionTime": { # Acquisition time represents acquired time of a raster. # The acquisition time of this Raster.
+        "start": "A String", # The acquisition time, or start time if acquisition time is a range. The value is an RFC 3339 formatted date-time value (1970-01-01T00:00:00Z).
+        "end": "A String", # The end time if acquisition time is a range. The value is an RFC 3339 formatted date-time value (1970-01-01T00:00:00Z).
+        "precision": "A String", # The precision of acquisition time. Valid values include: 'year', 'month', 'day', 'hour', 'minute' and 'second'.
+      },
+      "maskType": "autoMask", # The mask processing type of this Raster. Valid values include "autoMask", "alphaChannelMask", "noMask", "imageMask".
+      "lastModifiedTime": "A String", # The last modified time of this raster. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+      "id": "A String", # A globally unique ID, used to refer to this Raster.
+      "rasterType": "image", # The type of this Raster. Always "image" today.
+      "bbox": [ # An array of four numbers (west, south, east, north) which define the rectangular bounding box which contains all of the data in this Raster. The numbers represent latitudes and longitudes in decimal degrees.
+        3.14,
+      ],
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="upload">upload(body)</code>
+  <pre>Create a skeleton raster asset for upload.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A geo-referenced raster.
+    "files": [ # The files associated with this Raster.
+      { # A single File, which is a component of an Asset.
+        "size": "A String", # The size of the file in bytes.
+        "uploadStatus": "A String", # The upload status of the file.
+        "filename": "A String", # The name of the file.
+      },
+    ],
+    "attribution": "A String", # The name of the attribution to be used for this Raster.
+    "description": "A String", # The description of this Raster, supplied by the author.
+    "processingStatus": "A String", # The processing status of this Raster. The raster processing status values can be:
+        # 
+        # 'notReady': The raster is not ready to be processed - some files have not been uploaded.
+        # 'ready': The raster is queued for processing.
+        # 'processing': The raster is currently processing.
+        # 'complete': Processing has completed successfully.
+        # 'failed': Processing failed to complete.
+    "draftAccessList": "A String", # The Map Editors access list to share this Raster with.
+    "projectId": "A String", # The ID of the project that this Raster is in.
+    "tags": [ # Tags of this Raster.
+      "A String",
+    ],
+    "creationTime": "A String", # The creation time of this raster. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+    "name": "A String", # The name of this Raster, supplied by the author.
+    "acquisitionTime": { # Acquisition time represents acquired time of a raster. # The acquisition time of this Raster.
+      "start": "A String", # The acquisition time, or start time if acquisition time is a range. The value is an RFC 3339 formatted date-time value (1970-01-01T00:00:00Z).
+      "end": "A String", # The end time if acquisition time is a range. The value is an RFC 3339 formatted date-time value (1970-01-01T00:00:00Z).
+      "precision": "A String", # The precision of acquisition time. Valid values include: 'year', 'month', 'day', 'hour', 'minute' and 'second'.
+    },
+    "maskType": "autoMask", # The mask processing type of this Raster. Valid values include "autoMask", "alphaChannelMask", "noMask", "imageMask".
+    "lastModifiedTime": "A String", # The last modified time of this raster. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+    "id": "A String", # A globally unique ID, used to refer to this Raster.
+    "rasterType": "image", # The type of this Raster. Always "image" today.
+    "bbox": [ # An array of four numbers (west, south, east, north) which define the rectangular bounding box which contains all of the data in this Raster. The numbers represent latitudes and longitudes in decimal degrees.
+      3.14,
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A geo-referenced raster.
+      "files": [ # The files associated with this Raster.
+        { # A single File, which is a component of an Asset.
+          "size": "A String", # The size of the file in bytes.
+          "uploadStatus": "A String", # The upload status of the file.
+          "filename": "A String", # The name of the file.
+        },
+      ],
+      "attribution": "A String", # The name of the attribution to be used for this Raster.
+      "description": "A String", # The description of this Raster, supplied by the author.
+      "processingStatus": "A String", # The processing status of this Raster. The raster processing status values can be:
+          #
+          # 'notReady': The raster is not ready to be processed - some files have not been uploaded.
+          # 'ready': The raster is queued for processing.
+          # 'processing': The raster is currently processing.
+          # 'complete': Processing has completed successfully.
+          # 'failed': Processing failed to complete.
+      "draftAccessList": "A String", # The Map Editors access list to share this Raster with.
+      "projectId": "A String", # The ID of the project that this Raster is in.
+      "tags": [ # Tags of this Raster.
+        "A String",
+      ],
+      "creationTime": "A String", # The creation time of this raster. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+      "name": "A String", # The name of this Raster, supplied by the author.
+      "acquisitionTime": { # Acquisition time represents acquired time of a raster. # The acquisition time of this Raster.
+        "start": "A String", # The acquisition time, or start time if acquisition time is a range. The value is an RFC 3339 formatted date-time value (1970-01-01T00:00:00Z).
+        "end": "A String", # The end time if acquisition time is a range. The value is an RFC 3339 formatted date-time value (1970-01-01T00:00:00Z).
+        "precision": "A String", # The precision of acquisition time. Valid values include: 'year', 'month', 'day', 'hour', 'minute' and 'second'.
+      },
+      "maskType": "autoMask", # The mask processing type of this Raster. Valid values include "autoMask", "alphaChannelMask", "noMask", "imageMask".
+      "lastModifiedTime": "A String", # The last modified time of this raster. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+      "id": "A String", # A globally unique ID, used to refer to this Raster.
+      "rasterType": "image", # The type of this Raster. Always "image" today.
+      "bbox": [ # An array of four numbers (west, south, east, north) which define the rectangular bounding box which contains all of the data in this Raster. The numbers represent latitudes and longitudes in decimal degrees.
+        3.14,
+      ],
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/mapsengine_v1.rasters.parents.html b/docs/dyn/mapsengine_v1.rasters.parents.html
new file mode 100644
index 0000000..dd88be5
--- /dev/null
+++ b/docs/dyn/mapsengine_v1.rasters.parents.html
@@ -0,0 +1,120 @@
+<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="mapsengine_v1.html">Google Maps Engine API</a> . <a href="mapsengine_v1.rasters.html">rasters</a> . <a href="mapsengine_v1.rasters.parents.html">parents</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(id, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Return all parent ids of the specified rasters.</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(id, pageToken=None, maxResults=None)</code>
+  <pre>Return all parent ids of the specified rasters.
+
+Args:
+  id: string, The ID of the rasters whose parents will be listed. (required)
+  pageToken: string, The continuation token, 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.
+  maxResults: integer, The maximum number of items to include in a single response page. The maximum supported value is 50.
+
+Returns:
+  An object of the form:
+
+    { # The response returned by a call to parents.List.
+    "nextPageToken": "A String", # Next page token.
+    "parents": [ # Resources returned.
+      { # A list of the parents of an asset.
+        "id": "A String", # The ID of this parent.
+      },
+    ],
+  }</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/mapsengine_v1.tables.features.html b/docs/dyn/mapsengine_v1.tables.features.html
new file mode 100644
index 0000000..1a3871f
--- /dev/null
+++ b/docs/dyn/mapsengine_v1.tables.features.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="mapsengine_v1.html">Google Maps Engine API</a> . <a href="mapsengine_v1.tables.html">tables</a> . <a href="mapsengine_v1.tables.features.html">features</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#batchDelete">batchDelete(id, body)</a></code></p>
+<p class="firstline">Delete all features matching the given IDs.</p>
+<p class="toc_element">
+  <code><a href="#batchInsert">batchInsert(id, body)</a></code></p>
+<p class="firstline">Append features to an existing table.</p>
+<p class="toc_element">
+  <code><a href="#batchPatch">batchPatch(id, body)</a></code></p>
+<p class="firstline">Update the supplied features.</p>
+<p class="toc_element">
+  <code><a href="#get">get(tableId, id, version=None, select=None)</a></code></p>
+<p class="firstline">Return a single feature, given its ID.</p>
+<p class="toc_element">
+  <code><a href="#list">list(id, orderBy=None, intersects=None, pageToken=None, maxResults=None, version=None, limit=None, include=None, where=None, select=None)</a></code></p>
+<p class="firstline">Return all features readable by the current user.</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="batchDelete">batchDelete(id, body)</code>
+  <pre>Delete all features matching the given IDs.
+
+Args:
+  id: string, The ID of the table that contains the features to be deleted. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The request sent to features.BatchDelete.
+    "gx_ids": [
+      "A String",
+    ],
+    "primaryKeys": [
+      "A String",
+    ],
+  }
+
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="batchInsert">batchInsert(id, body)</code>
+  <pre>Append features to an existing table.
+
+A single batchInsert request can create:
+
+- Up to 50 features.
+- A combined total of 10 000 vertices.
+Feature limits are documented in the Supported data formats and limits article of the Google Maps Engine help center. Note that free and paid accounts have different limits.
+
+For more information about inserting features, read Creating features in the Google Maps Engine developer's guide.
+
+Args:
+  id: string, The ID of the table to append the features to. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The request sent to features.Insert.
+    "features": [
+      { # A feature within a table.
+        "geometry": { # A geometry object # The geometry member of this Feature.
+        },
+        "type": "Feature", # Identifies this object as a feature.
+        "properties": { # The properties associated with a feature. # Key/value pairs of this Feature.
+          "a_key": "",
+        },
+      },
+    ],
+  }
+
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="batchPatch">batchPatch(id, body)</code>
+  <pre>Update the supplied features.
+
+A single batchPatch request can update:
+
+- Up to 50 features.
+- A combined total of 10 000 vertices.
+Feature limits are documented in the Supported data formats and limits article of the Google Maps Engine help center. Note that free and paid accounts have different limits.
+
+Feature updates use HTTP PATCH semantics:
+
+- A supplied value replaces an existing value (if any) in that field.
+- Omitted fields remain unchanged.
+- Complex values in geometries and properties must be replaced as atomic units. For example, providing just the coordinates of a geometry is not allowed; the complete geometry, including type, must be supplied.
+- Setting a property's value to null deletes that property.
+For more information about updating features, read Updating features in the Google Maps Engine developer's guide.
+
+Args:
+  id: string, The ID of the table containing the features to be patched. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The request sent to features.BatchPatch.
+    "features": [
+      { # A feature within a table.
+        "geometry": { # A geometry object # The geometry member of this Feature.
+        },
+        "type": "Feature", # Identifies this object as a feature.
+        "properties": { # The properties associated with a feature. # Key/value pairs of this Feature.
+          "a_key": "",
+        },
+      },
+    ],
+  }
+
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(tableId, id, version=None, select=None)</code>
+  <pre>Return a single feature, given its ID.
+
+Args:
+  tableId: string, The ID of the table. (required)
+  id: string, The ID of the feature to get. (required)
+  version: string, The table version to access. See Accessing Public Data for information.
+    Allowed values
+      draft - The draft version.
+      published - The published version.
+  select: string, A SQL-like projection clause used to specify returned properties. If this parameter is not included, all properties are returned.
+
+Returns:
+  An object of the form:
+
+    { # A feature within a table.
+    "geometry": { # A geometry object # The geometry member of this Feature.
+    },
+    "type": "Feature", # Identifies this object as a feature.
+    "properties": { # The properties associated with a feature. # Key/value pairs of this Feature.
+      "a_key": "",
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(id, orderBy=None, intersects=None, pageToken=None, maxResults=None, version=None, limit=None, include=None, where=None, select=None)</code>
+  <pre>Return all features readable by the current user.
+
+Args:
+  id: string, The ID of the table to which these features belong. (required)
+  orderBy: string, An SQL-like order by clause used to sort results. If this parameter is not included, the order of features is undefined.
+  intersects: string, A geometry literal that specifies the spatial restriction of the query.
+  pageToken: string, The continuation token, 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.
+  maxResults: integer, The maximum number of items to include in the response, used for paging.
+  version: string, The table version to access. See Accessing Public Data for information.
+    Allowed values
+      draft - The draft version.
+      published - The published version.
+  limit: integer, The total number of features to return from the query, irrespective of the number of pages.
+  include: string, A comma separated list of optional data to include. Optional data available: schema.
+  where: string, An SQL-like predicate used to filter results.
+  select: string, A SQL-like projection clause used to specify returned properties. If this parameter is not included, all properties are returned.
+
+Returns:
+  An object of the form:
+
+    { # The response returned by a call to features.List.
+    "nextPageToken": "A String", # Next page token.
+    "allowedQueriesPerSecond": 3.14, # An indicator of the maximum rate at which queries may be made, if all queries were as expensive as this query.
+    "type": "FeatureCollection",
+    "features": [ # Resources returned.
+      { # A feature within a table.
+        "geometry": { # A geometry object # The geometry member of this Feature.
+        },
+        "type": "Feature", # Identifies this object as a feature.
+        "properties": { # The properties associated with a feature. # Key/value pairs of this Feature.
+          "a_key": "",
+        },
+      },
+    ],
+    "schema": { # A schema indicating the properties which may be associated with features within a Table, and the types of those properties. # The feature schema.
+      "primaryGeometry": "A String", # The name of the column that contains a feature's geometry. This field can be omitted during table create; Google Maps Engine supports only a single geometry column, which must be named geometry and be the first object in the columns array.
+      "primaryKey": "A String", # The name of the column that contains the unique identifier of a Feature.
+      "columns": [ # An array of column objects. The first object in the array must be named geometry and be of type points, lineStrings, polygons, or mixedGeometry.
+        {
+          "type": "A String", # The type of data stored in this column. Accepted values are:
+              #
+              # - integer
+              # - double
+              # - boolean
+              # - string
+              # - mixedGeometry
+              # - points
+              # - lineStrings
+              # - polygons
+          "name": "A String", # The column 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/mapsengine_v1.tables.files.html b/docs/dyn/mapsengine_v1.tables.files.html
new file mode 100644
index 0000000..aaebf5c
--- /dev/null
+++ b/docs/dyn/mapsengine_v1.tables.files.html
@@ -0,0 +1,93 @@
+<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="mapsengine_v1.html">Google Maps Engine API</a> . <a href="mapsengine_v1.tables.html">tables</a> . <a href="mapsengine_v1.tables.files.html">files</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#insert">insert(id, filename, media_body=None)</a></code></p>
+<p class="firstline">Upload a file to a placeholder table asset. See Table Upload in the Developer's Guide for more information.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="insert">insert(id, filename, media_body=None)</code>
+  <pre>Upload a file to a placeholder table asset. See Table Upload in the Developer's Guide for more information.
+Supported file types are listed in the Supported data formats and limits article of the Google Maps Engine help center.
+
+Args:
+  id: string, The ID of the table asset. (required)
+  filename: string, The file name of this uploaded file. (required)
+  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
+</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/mapsengine_v1.tables.html b/docs/dyn/mapsengine_v1.tables.html
new file mode 100644
index 0000000..17f75dc
--- /dev/null
+++ b/docs/dyn/mapsengine_v1.tables.html
@@ -0,0 +1,495 @@
+<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="mapsengine_v1.html">Google Maps Engine API</a> . <a href="mapsengine_v1.tables.html">tables</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="mapsengine_v1.tables.features.html">features()</a></code>
+</p>
+<p class="firstline">Returns the features Resource.</p>
+
+<p class="toc_element">
+  <code><a href="mapsengine_v1.tables.files.html">files()</a></code>
+</p>
+<p class="firstline">Returns the files Resource.</p>
+
+<p class="toc_element">
+  <code><a href="mapsengine_v1.tables.parents.html">parents()</a></code>
+</p>
+<p class="firstline">Returns the parents Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#create">create(body)</a></code></p>
+<p class="firstline">Create a table asset.</p>
+<p class="toc_element">
+  <code><a href="#get">get(id, version=None)</a></code></p>
+<p class="firstline">Return metadata for a particular table, including the schema.</p>
+<p class="toc_element">
+  <code><a href="#list">list(modifiedAfter=None, createdAfter=None, pageToken=None, projectId=None, maxResults=None, createdBefore=None, bbox=None, creatorEmail=None, modifiedBefore=None)</a></code></p>
+<p class="firstline">Return all tables readable by the current user.</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="#upload">upload(body)</a></code></p>
+<p class="firstline">Create a placeholder table asset to which table files can be uploaded.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(body)</code>
+  <pre>Create a table asset.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A collection of geographic features, and associated metadata.
+    "files": [ # The files associated with this table.
+      { # A single File, which is a component of an Asset.
+        "size": "A String", # The size of the file in bytes.
+        "uploadStatus": "A String", # The upload status of the file.
+        "filename": "A String", # The name of the file.
+      },
+    ],
+    "schema": { # A schema indicating the properties which may be associated with features within a Table, and the types of those properties. # The schema for this table.
+      "primaryGeometry": "A String", # The name of the column that contains a feature's geometry. This field can be omitted during table create; Google Maps Engine supports only a single geometry column, which must be named geometry and be the first object in the columns array.
+      "primaryKey": "A String", # The name of the column that contains the unique identifier of a Feature.
+      "columns": [ # An array of column objects. The first object in the array must be named geometry and be of type points, lineStrings, polygons, or mixedGeometry.
+        {
+          "type": "A String", # The type of data stored in this column. Accepted values are:
+              #
+              # - integer
+              # - double
+              # - boolean
+              # - string
+              # - mixedGeometry
+              # - points
+              # - lineStrings
+              # - polygons
+          "name": "A String", # The column name.
+        },
+      ],
+    },
+    "description": "A String", # The description of this table, supplied by the author.
+    "processingStatus": "A String", # The processing status of this table. The supported processing status values are:
+        # 
+        # - notReady: The table is not ready to be processed - some files have not been uploaded.
+        # - ready: The table is queued for processing.
+        # - processing: The table is currently processing.
+        # - complete: Processing has completed successfully.
+        # - failed: Processing failed to complete.
+    "draftAccessList": "A String", # The name of an access list of the Map Editor type. The user on whose behalf the request is being sent must be an editor on that access list. Read About access lists in the Google Maps Engine help center for more information.
+    "projectId": "A String", # The ID of the project to which the table belongs.
+    "tags": [ # An array of text strings, with each string representing a tag. More information about tags can be found in the Tagging data article of the Maps Engine help center.
+      "A String",
+    ],
+    "creationTime": "A String", # The creation time of this table. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+    "sourceEncoding": "UTF-8", # Encoding of the uploaded files. Valid values include UTF-8, CP1251, ISO 8859-1, and Shift_JIS.
+    "bbox": [ # An array of four numbers (west, south, east, north) which define the rectangular bounding box which contains all of the data in this table.
+      3.14,
+    ],
+    "lastModifiedTime": "A String", # The last modified time of this table. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+    "publishedAccessList": "A String", # The access list to whom view permissions are granted. The value must be the name of a Maps Engine access list of the Map Viewer type, and the user must be a viewer on that list. Read About access lists in the Google Maps Engine help center for more information.
+    "id": "A String", # A globally unique ID, used to refer to this table.
+    "name": "A String", # The name of this table, supplied by the author.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A collection of geographic features, and associated metadata.
+      "files": [ # The files associated with this table.
+        { # A single File, which is a component of an Asset.
+          "size": "A String", # The size of the file in bytes.
+          "uploadStatus": "A String", # The upload status of the file.
+          "filename": "A String", # The name of the file.
+        },
+      ],
+      "schema": { # A schema indicating the properties which may be associated with features within a Table, and the types of those properties. # The schema for this table.
+        "primaryGeometry": "A String", # The name of the column that contains a feature's geometry. This field can be omitted during table create; Google Maps Engine supports only a single geometry column, which must be named geometry and be the first object in the columns array.
+        "primaryKey": "A String", # The name of the column that contains the unique identifier of a Feature.
+        "columns": [ # An array of column objects. The first object in the array must be named geometry and be of type points, lineStrings, polygons, or mixedGeometry.
+          {
+            "type": "A String", # The type of data stored in this column. Accepted values are:
+                #
+                # - integer
+                # - double
+                # - boolean
+                # - string
+                # - mixedGeometry
+                # - points
+                # - lineStrings
+                # - polygons
+            "name": "A String", # The column name.
+          },
+        ],
+      },
+      "description": "A String", # The description of this table, supplied by the author.
+      "processingStatus": "A String", # The processing status of this table. The supported processing status values are:
+          #
+          # - notReady: The table is not ready to be processed - some files have not been uploaded.
+          # - ready: The table is queued for processing.
+          # - processing: The table is currently processing.
+          # - complete: Processing has completed successfully.
+          # - failed: Processing failed to complete.
+      "draftAccessList": "A String", # The name of an access list of the Map Editor type. The user on whose behalf the request is being sent must be an editor on that access list. Read About access lists in the Google Maps Engine help center for more information.
+      "projectId": "A String", # The ID of the project to which the table belongs.
+      "tags": [ # An array of text strings, with each string representing a tag. More information about tags can be found in the Tagging data article of the Maps Engine help center.
+        "A String",
+      ],
+      "creationTime": "A String", # The creation time of this table. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+      "sourceEncoding": "UTF-8", # Encoding of the uploaded files. Valid values include UTF-8, CP1251, ISO 8859-1, and Shift_JIS.
+      "bbox": [ # An array of four numbers (west, south, east, north) which define the rectangular bounding box which contains all of the data in this table.
+        3.14,
+      ],
+      "lastModifiedTime": "A String", # The last modified time of this table. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+      "publishedAccessList": "A String", # The access list to whom view permissions are granted. The value must be the name of a Maps Engine access list of the Map Viewer type, and the user must be a viewer on that list. Read About access lists in the Google Maps Engine help center for more information.
+      "id": "A String", # A globally unique ID, used to refer to this table.
+      "name": "A String", # The name of this table, supplied by the author.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(id, version=None)</code>
+  <pre>Return metadata for a particular table, including the schema.
+
+Args:
+  id: string, The ID of the table. (required)
+  version: string, A parameter
+    Allowed values
+      draft - The draft version.
+      published - The published version.
+
+Returns:
+  An object of the form:
+
+    { # A collection of geographic features, and associated metadata.
+      "files": [ # The files associated with this table.
+        { # A single File, which is a component of an Asset.
+          "size": "A String", # The size of the file in bytes.
+          "uploadStatus": "A String", # The upload status of the file.
+          "filename": "A String", # The name of the file.
+        },
+      ],
+      "schema": { # A schema indicating the properties which may be associated with features within a Table, and the types of those properties. # The schema for this table.
+        "primaryGeometry": "A String", # The name of the column that contains a feature's geometry. This field can be omitted during table create; Google Maps Engine supports only a single geometry column, which must be named geometry and be the first object in the columns array.
+        "primaryKey": "A String", # The name of the column that contains the unique identifier of a Feature.
+        "columns": [ # An array of column objects. The first object in the array must be named geometry and be of type points, lineStrings, polygons, or mixedGeometry.
+          {
+            "type": "A String", # The type of data stored in this column. Accepted values are:
+                #
+                # - integer
+                # - double
+                # - boolean
+                # - string
+                # - mixedGeometry
+                # - points
+                # - lineStrings
+                # - polygons
+            "name": "A String", # The column name.
+          },
+        ],
+      },
+      "description": "A String", # The description of this table, supplied by the author.
+      "processingStatus": "A String", # The processing status of this table. The supported processing status values are:
+          #
+          # - notReady: The table is not ready to be processed - some files have not been uploaded.
+          # - ready: The table is queued for processing.
+          # - processing: The table is currently processing.
+          # - complete: Processing has completed successfully.
+          # - failed: Processing failed to complete.
+      "draftAccessList": "A String", # The name of an access list of the Map Editor type. The user on whose behalf the request is being sent must be an editor on that access list. Read About access lists in the Google Maps Engine help center for more information.
+      "projectId": "A String", # The ID of the project to which the table belongs.
+      "tags": [ # An array of text strings, with each string representing a tag. More information about tags can be found in the Tagging data article of the Maps Engine help center.
+        "A String",
+      ],
+      "creationTime": "A String", # The creation time of this table. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+      "sourceEncoding": "UTF-8", # Encoding of the uploaded files. Valid values include UTF-8, CP1251, ISO 8859-1, and Shift_JIS.
+      "bbox": [ # An array of four numbers (west, south, east, north) which define the rectangular bounding box which contains all of the data in this table.
+        3.14,
+      ],
+      "lastModifiedTime": "A String", # The last modified time of this table. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+      "publishedAccessList": "A String", # The access list to whom view permissions are granted. The value must be the name of a Maps Engine access list of the Map Viewer type, and the user must be a viewer on that list. Read About access lists in the Google Maps Engine help center for more information.
+      "id": "A String", # A globally unique ID, used to refer to this table.
+      "name": "A String", # The name of this table, supplied by the author.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(modifiedAfter=None, createdAfter=None, pageToken=None, projectId=None, maxResults=None, createdBefore=None, bbox=None, creatorEmail=None, modifiedBefore=None)</code>
+  <pre>Return all tables readable by the current user.
+
+Args:
+  modifiedAfter: string, An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or after this time.
+  createdAfter: string, An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or after this time.
+  pageToken: string, The continuation token, 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.
+  projectId: string, The ID of a Maps Engine project, used to filter the response. To list all available projects with their IDs, send a Projects: list request. You can also find your project ID as the value of the DashboardPlace:cid URL parameter when signed in to mapsengine.google.com.
+  maxResults: integer, The maximum number of items to include in a single response page. The maximum supported value is 100.
+  createdBefore: string, An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or before this time.
+  bbox: string, A bounding box, expressed as "west,south,east,north". If set, only assets which intersect this bounding box will be returned.
+  creatorEmail: string, An email address representing a user. Returned assets that have been created by the user associated with the provided email address.
+  modifiedBefore: string, An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or before this time.
+
+Returns:
+  An object of the form:
+
+    { # The response returned by a call to tables.List.
+    "nextPageToken": "A String", # Next page token.
+    "tables": [ # Resources returned.
+      { # A collection of geographic features, and associated metadata.
+          "files": [ # The files associated with this table.
+            { # A single File, which is a component of an Asset.
+              "size": "A String", # The size of the file in bytes.
+              "uploadStatus": "A String", # The upload status of the file.
+              "filename": "A String", # The name of the file.
+            },
+          ],
+          "schema": { # A schema indicating the properties which may be associated with features within a Table, and the types of those properties. # The schema for this table.
+            "primaryGeometry": "A String", # The name of the column that contains a feature's geometry. This field can be omitted during table create; Google Maps Engine supports only a single geometry column, which must be named geometry and be the first object in the columns array.
+            "primaryKey": "A String", # The name of the column that contains the unique identifier of a Feature.
+            "columns": [ # An array of column objects. The first object in the array must be named geometry and be of type points, lineStrings, polygons, or mixedGeometry.
+              {
+                "type": "A String", # The type of data stored in this column. Accepted values are:
+                    #
+                    # - integer
+                    # - double
+                    # - boolean
+                    # - string
+                    # - mixedGeometry
+                    # - points
+                    # - lineStrings
+                    # - polygons
+                "name": "A String", # The column name.
+              },
+            ],
+          },
+          "description": "A String", # The description of this table, supplied by the author.
+          "processingStatus": "A String", # The processing status of this table. The supported processing status values are:
+              #
+              # - notReady: The table is not ready to be processed - some files have not been uploaded.
+              # - ready: The table is queued for processing.
+              # - processing: The table is currently processing.
+              # - complete: Processing has completed successfully.
+              # - failed: Processing failed to complete.
+          "draftAccessList": "A String", # The name of an access list of the Map Editor type. The user on whose behalf the request is being sent must be an editor on that access list. Read About access lists in the Google Maps Engine help center for more information.
+          "projectId": "A String", # The ID of the project to which the table belongs.
+          "tags": [ # An array of text strings, with each string representing a tag. More information about tags can be found in the Tagging data article of the Maps Engine help center.
+            "A String",
+          ],
+          "creationTime": "A String", # The creation time of this table. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+          "sourceEncoding": "UTF-8", # Encoding of the uploaded files. Valid values include UTF-8, CP1251, ISO 8859-1, and Shift_JIS.
+          "bbox": [ # An array of four numbers (west, south, east, north) which define the rectangular bounding box which contains all of the data in this table.
+            3.14,
+          ],
+          "lastModifiedTime": "A String", # The last modified time of this table. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+          "publishedAccessList": "A String", # The access list to whom view permissions are granted. The value must be the name of a Maps Engine access list of the Map Viewer type, and the user must be a viewer on that list. Read About access lists in the Google Maps Engine help center for more information.
+          "id": "A String", # A globally unique ID, used to refer to this table.
+          "name": "A String", # The name of this table, supplied by the author.
+        },
+    ],
+  }</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="upload">upload(body)</code>
+  <pre>Create a placeholder table asset to which table files can be uploaded.
+Once the placeholder has been created, files are uploaded to the https://www.googleapis.com/upload/mapsengine/v1/tables/table_id/files endpoint.
+See Table Upload in the Developer's Guide or Table.files: insert in the reference documentation for more information.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A collection of geographic features, and associated metadata.
+    "files": [ # The files associated with this table.
+      { # A single File, which is a component of an Asset.
+        "size": "A String", # The size of the file in bytes.
+        "uploadStatus": "A String", # The upload status of the file.
+        "filename": "A String", # The name of the file.
+      },
+    ],
+    "schema": { # A schema indicating the properties which may be associated with features within a Table, and the types of those properties. # The schema for this table.
+      "primaryGeometry": "A String", # The name of the column that contains a feature's geometry. This field can be omitted during table create; Google Maps Engine supports only a single geometry column, which must be named geometry and be the first object in the columns array.
+      "primaryKey": "A String", # The name of the column that contains the unique identifier of a Feature.
+      "columns": [ # An array of column objects. The first object in the array must be named geometry and be of type points, lineStrings, polygons, or mixedGeometry.
+        {
+          "type": "A String", # The type of data stored in this column. Accepted values are:
+              #
+              # - integer
+              # - double
+              # - boolean
+              # - string
+              # - mixedGeometry
+              # - points
+              # - lineStrings
+              # - polygons
+          "name": "A String", # The column name.
+        },
+      ],
+    },
+    "description": "A String", # The description of this table, supplied by the author.
+    "processingStatus": "A String", # The processing status of this table. The supported processing status values are:
+        # 
+        # - notReady: The table is not ready to be processed - some files have not been uploaded.
+        # - ready: The table is queued for processing.
+        # - processing: The table is currently processing.
+        # - complete: Processing has completed successfully.
+        # - failed: Processing failed to complete.
+    "draftAccessList": "A String", # The name of an access list of the Map Editor type. The user on whose behalf the request is being sent must be an editor on that access list. Read About access lists in the Google Maps Engine help center for more information.
+    "projectId": "A String", # The ID of the project to which the table belongs.
+    "tags": [ # An array of text strings, with each string representing a tag. More information about tags can be found in the Tagging data article of the Maps Engine help center.
+      "A String",
+    ],
+    "creationTime": "A String", # The creation time of this table. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+    "sourceEncoding": "UTF-8", # Encoding of the uploaded files. Valid values include UTF-8, CP1251, ISO 8859-1, and Shift_JIS.
+    "bbox": [ # An array of four numbers (west, south, east, north) which define the rectangular bounding box which contains all of the data in this table.
+      3.14,
+    ],
+    "lastModifiedTime": "A String", # The last modified time of this table. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+    "publishedAccessList": "A String", # The access list to whom view permissions are granted. The value must be the name of a Maps Engine access list of the Map Viewer type, and the user must be a viewer on that list. Read About access lists in the Google Maps Engine help center for more information.
+    "id": "A String", # A globally unique ID, used to refer to this table.
+    "name": "A String", # The name of this table, supplied by the author.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A collection of geographic features, and associated metadata.
+      "files": [ # The files associated with this table.
+        { # A single File, which is a component of an Asset.
+          "size": "A String", # The size of the file in bytes.
+          "uploadStatus": "A String", # The upload status of the file.
+          "filename": "A String", # The name of the file.
+        },
+      ],
+      "schema": { # A schema indicating the properties which may be associated with features within a Table, and the types of those properties. # The schema for this table.
+        "primaryGeometry": "A String", # The name of the column that contains a feature's geometry. This field can be omitted during table create; Google Maps Engine supports only a single geometry column, which must be named geometry and be the first object in the columns array.
+        "primaryKey": "A String", # The name of the column that contains the unique identifier of a Feature.
+        "columns": [ # An array of column objects. The first object in the array must be named geometry and be of type points, lineStrings, polygons, or mixedGeometry.
+          {
+            "type": "A String", # The type of data stored in this column. Accepted values are:
+                #
+                # - integer
+                # - double
+                # - boolean
+                # - string
+                # - mixedGeometry
+                # - points
+                # - lineStrings
+                # - polygons
+            "name": "A String", # The column name.
+          },
+        ],
+      },
+      "description": "A String", # The description of this table, supplied by the author.
+      "processingStatus": "A String", # The processing status of this table. The supported processing status values are:
+          #
+          # - notReady: The table is not ready to be processed - some files have not been uploaded.
+          # - ready: The table is queued for processing.
+          # - processing: The table is currently processing.
+          # - complete: Processing has completed successfully.
+          # - failed: Processing failed to complete.
+      "draftAccessList": "A String", # The name of an access list of the Map Editor type. The user on whose behalf the request is being sent must be an editor on that access list. Read About access lists in the Google Maps Engine help center for more information.
+      "projectId": "A String", # The ID of the project to which the table belongs.
+      "tags": [ # An array of text strings, with each string representing a tag. More information about tags can be found in the Tagging data article of the Maps Engine help center.
+        "A String",
+      ],
+      "creationTime": "A String", # The creation time of this table. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+      "sourceEncoding": "UTF-8", # Encoding of the uploaded files. Valid values include UTF-8, CP1251, ISO 8859-1, and Shift_JIS.
+      "bbox": [ # An array of four numbers (west, south, east, north) which define the rectangular bounding box which contains all of the data in this table.
+        3.14,
+      ],
+      "lastModifiedTime": "A String", # The last modified time of this table. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).
+      "publishedAccessList": "A String", # The access list to whom view permissions are granted. The value must be the name of a Maps Engine access list of the Map Viewer type, and the user must be a viewer on that list. Read About access lists in the Google Maps Engine help center for more information.
+      "id": "A String", # A globally unique ID, used to refer to this table.
+      "name": "A String", # The name of this table, supplied by the author.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/mapsengine_v1.tables.parents.html b/docs/dyn/mapsengine_v1.tables.parents.html
new file mode 100644
index 0000000..2e8c2b2
--- /dev/null
+++ b/docs/dyn/mapsengine_v1.tables.parents.html
@@ -0,0 +1,120 @@
+<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="mapsengine_v1.html">Google Maps Engine API</a> . <a href="mapsengine_v1.tables.html">tables</a> . <a href="mapsengine_v1.tables.parents.html">parents</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(id, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Return all parent ids of the specified table.</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(id, pageToken=None, maxResults=None)</code>
+  <pre>Return all parent ids of the specified table.
+
+Args:
+  id: string, The ID of the table whose parents will be listed. (required)
+  pageToken: string, The continuation token, 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.
+  maxResults: integer, The maximum number of items to include in a single response page. The maximum supported value is 50.
+
+Returns:
+  An object of the form:
+
+    { # The response returned by a call to parents.List.
+    "nextPageToken": "A String", # Next page token.
+    "parents": [ # Resources returned.
+      { # A list of the parents of an asset.
+        "id": "A String", # The ID of this parent.
+      },
+    ],
+  }</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/mirror_v1.accounts.html b/docs/dyn/mirror_v1.accounts.html
new file mode 100644
index 0000000..137222f
--- /dev/null
+++ b/docs/dyn/mirror_v1.accounts.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="mirror_v1.html">Google Mirror API</a> . <a href="mirror_v1.accounts.html">accounts</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#insert">insert(userToken, accountType, accountName, body)</a></code></p>
+<p class="firstline">Inserts a new account for a user</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="insert">insert(userToken, accountType, accountName, body)</code>
+  <pre>Inserts a new account for a user
+
+Args:
+  userToken: string, The ID for the user. (required)
+  accountType: string, Account type to be passed to Android Account Manager. (required)
+  accountName: string, The name of the account to be passed to the Android Account Manager. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents an account passed into the Account Manager on Glass.
+    "userData": [
+      {
+        "value": "A String",
+        "key": "A String",
+      },
+    ],
+    "authTokens": [
+      {
+        "authToken": "A String",
+        "type": "A String",
+      },
+    ],
+    "password": "A String",
+    "features": [
+      "A String",
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Represents an account passed into the Account Manager on Glass.
+      "userData": [
+        {
+          "value": "A String",
+          "key": "A String",
+        },
+      ],
+      "authTokens": [
+        {
+          "authToken": "A String",
+          "type": "A String",
+        },
+      ],
+      "password": "A String",
+      "features": [
+        "A String",
+      ],
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/mirror_v1.contacts.html b/docs/dyn/mirror_v1.contacts.html
new file mode 100644
index 0000000..040b04f
--- /dev/null
+++ b/docs/dyn/mirror_v1.contacts.html
@@ -0,0 +1,412 @@
+<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="mirror_v1.html">Google Mirror API</a> . <a href="mirror_v1.contacts.html">contacts</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(id)</a></code></p>
+<p class="firstline">Deletes a contact.</p>
+<p class="toc_element">
+  <code><a href="#get">get(id)</a></code></p>
+<p class="firstline">Gets a single contact by ID.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(body)</a></code></p>
+<p class="firstline">Inserts a new contact.</p>
+<p class="toc_element">
+  <code><a href="#list">list()</a></code></p>
+<p class="firstline">Retrieves a list of contacts for the authenticated user.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(id, body)</a></code></p>
+<p class="firstline">Updates a contact in place. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(id, body)</a></code></p>
+<p class="firstline">Updates a contact in place.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(id)</code>
+  <pre>Deletes a contact.
+
+Args:
+  id: string, The ID of the contact. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(id)</code>
+  <pre>Gets a single contact by ID.
+
+Args:
+  id: string, The ID of the contact. (required)
+
+Returns:
+  An object of the form:
+
+    { # A person or group that can be used as a creator or a contact.
+      "kind": "mirror#contact", # The type of resource. This is always mirror#contact.
+      "displayName": "A String", # The name to display for this contact.
+      "acceptTypes": [ # A list of MIME types that a contact supports. The contact will be shown to the user if any of its acceptTypes matches any of the types of the attachments on the item. If no acceptTypes are given, the contact will be shown for all items.
+        "A String",
+      ],
+      "imageUrls": [ # Set of image URLs to display for a contact. Most contacts will have a single image, but a "group" contact may include up to 8 image URLs and they will be resized and cropped into a mosaic on the client.
+        "A String",
+      ],
+      "priority": 42, # Priority for the contact to determine ordering in a list of contacts. Contacts with higher priorities will be shown before ones with lower priorities.
+      "source": "A String", # The ID of the application that created this contact. This is populated by the API
+      "phoneNumber": "A String", # Primary phone number for the contact. This can be a fully-qualified number, with country calling code and area code, or a local number.
+      "sharingFeatures": [ # A list of sharing features that a contact can handle. Allowed values are:
+          # - ADD_CAPTION
+        "A String",
+      ],
+      "type": "A String", # The type for this contact. This is used for sorting in UIs. Allowed values are:
+          # - INDIVIDUAL - Represents a single person. This is the default.
+          # - GROUP - Represents more than a single person.
+      "acceptCommands": [ # A list of voice menu commands that a contact can handle. Glass shows up to three contacts for each voice menu command. If there are more than that, the three contacts with the highest priority are shown for that particular command.
+        { # A single menu command that is part of a Contact.
+          "type": "A String", # The type of operation this command corresponds to. Allowed values are:
+              # - TAKE_A_NOTE - Shares a timeline item with the transcription of user speech from the "Take a note" voice menu command.
+              # - POST_AN_UPDATE - Shares a timeline item with the transcription of user speech from the "Post an update" voice menu command.
+        },
+      ],
+      "id": "A String", # An ID for this contact. This is generated by the application and is treated as an opaque token.
+      "speakableName": "A String", # Name of this contact as it should be pronounced. If this contact's name must be spoken as part of a voice disambiguation menu, this name is used as the expected pronunciation. This is useful for contact names with unpronounceable characters or whose display spelling is otherwise not phonetic.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(body)</code>
+  <pre>Inserts a new contact.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A person or group that can be used as a creator or a contact.
+    "kind": "mirror#contact", # The type of resource. This is always mirror#contact.
+    "displayName": "A String", # The name to display for this contact.
+    "acceptTypes": [ # A list of MIME types that a contact supports. The contact will be shown to the user if any of its acceptTypes matches any of the types of the attachments on the item. If no acceptTypes are given, the contact will be shown for all items.
+      "A String",
+    ],
+    "imageUrls": [ # Set of image URLs to display for a contact. Most contacts will have a single image, but a "group" contact may include up to 8 image URLs and they will be resized and cropped into a mosaic on the client.
+      "A String",
+    ],
+    "priority": 42, # Priority for the contact to determine ordering in a list of contacts. Contacts with higher priorities will be shown before ones with lower priorities.
+    "source": "A String", # The ID of the application that created this contact. This is populated by the API
+    "phoneNumber": "A String", # Primary phone number for the contact. This can be a fully-qualified number, with country calling code and area code, or a local number.
+    "sharingFeatures": [ # A list of sharing features that a contact can handle. Allowed values are:
+        # - ADD_CAPTION
+      "A String",
+    ],
+    "type": "A String", # The type for this contact. This is used for sorting in UIs. Allowed values are:
+        # - INDIVIDUAL - Represents a single person. This is the default.
+        # - GROUP - Represents more than a single person.
+    "acceptCommands": [ # A list of voice menu commands that a contact can handle. Glass shows up to three contacts for each voice menu command. If there are more than that, the three contacts with the highest priority are shown for that particular command.
+      { # A single menu command that is part of a Contact.
+        "type": "A String", # The type of operation this command corresponds to. Allowed values are:
+            # - TAKE_A_NOTE - Shares a timeline item with the transcription of user speech from the "Take a note" voice menu command.
+            # - POST_AN_UPDATE - Shares a timeline item with the transcription of user speech from the "Post an update" voice menu command.
+      },
+    ],
+    "id": "A String", # An ID for this contact. This is generated by the application and is treated as an opaque token.
+    "speakableName": "A String", # Name of this contact as it should be pronounced. If this contact's name must be spoken as part of a voice disambiguation menu, this name is used as the expected pronunciation. This is useful for contact names with unpronounceable characters or whose display spelling is otherwise not phonetic.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A person or group that can be used as a creator or a contact.
+      "kind": "mirror#contact", # The type of resource. This is always mirror#contact.
+      "displayName": "A String", # The name to display for this contact.
+      "acceptTypes": [ # A list of MIME types that a contact supports. The contact will be shown to the user if any of its acceptTypes matches any of the types of the attachments on the item. If no acceptTypes are given, the contact will be shown for all items.
+        "A String",
+      ],
+      "imageUrls": [ # Set of image URLs to display for a contact. Most contacts will have a single image, but a "group" contact may include up to 8 image URLs and they will be resized and cropped into a mosaic on the client.
+        "A String",
+      ],
+      "priority": 42, # Priority for the contact to determine ordering in a list of contacts. Contacts with higher priorities will be shown before ones with lower priorities.
+      "source": "A String", # The ID of the application that created this contact. This is populated by the API
+      "phoneNumber": "A String", # Primary phone number for the contact. This can be a fully-qualified number, with country calling code and area code, or a local number.
+      "sharingFeatures": [ # A list of sharing features that a contact can handle. Allowed values are:
+          # - ADD_CAPTION
+        "A String",
+      ],
+      "type": "A String", # The type for this contact. This is used for sorting in UIs. Allowed values are:
+          # - INDIVIDUAL - Represents a single person. This is the default.
+          # - GROUP - Represents more than a single person.
+      "acceptCommands": [ # A list of voice menu commands that a contact can handle. Glass shows up to three contacts for each voice menu command. If there are more than that, the three contacts with the highest priority are shown for that particular command.
+        { # A single menu command that is part of a Contact.
+          "type": "A String", # The type of operation this command corresponds to. Allowed values are:
+              # - TAKE_A_NOTE - Shares a timeline item with the transcription of user speech from the "Take a note" voice menu command.
+              # - POST_AN_UPDATE - Shares a timeline item with the transcription of user speech from the "Post an update" voice menu command.
+        },
+      ],
+      "id": "A String", # An ID for this contact. This is generated by the application and is treated as an opaque token.
+      "speakableName": "A String", # Name of this contact as it should be pronounced. If this contact's name must be spoken as part of a voice disambiguation menu, this name is used as the expected pronunciation. This is useful for contact names with unpronounceable characters or whose display spelling is otherwise not phonetic.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list()</code>
+  <pre>Retrieves a list of contacts for the authenticated user.
+
+Args:
+
+Returns:
+  An object of the form:
+
+    { # A list of Contacts representing contacts. This is the response from the server to GET requests on the contacts collection.
+    "items": [ # Contact list.
+      { # A person or group that can be used as a creator or a contact.
+          "kind": "mirror#contact", # The type of resource. This is always mirror#contact.
+          "displayName": "A String", # The name to display for this contact.
+          "acceptTypes": [ # A list of MIME types that a contact supports. The contact will be shown to the user if any of its acceptTypes matches any of the types of the attachments on the item. If no acceptTypes are given, the contact will be shown for all items.
+            "A String",
+          ],
+          "imageUrls": [ # Set of image URLs to display for a contact. Most contacts will have a single image, but a "group" contact may include up to 8 image URLs and they will be resized and cropped into a mosaic on the client.
+            "A String",
+          ],
+          "priority": 42, # Priority for the contact to determine ordering in a list of contacts. Contacts with higher priorities will be shown before ones with lower priorities.
+          "source": "A String", # The ID of the application that created this contact. This is populated by the API
+          "phoneNumber": "A String", # Primary phone number for the contact. This can be a fully-qualified number, with country calling code and area code, or a local number.
+          "sharingFeatures": [ # A list of sharing features that a contact can handle. Allowed values are:
+              # - ADD_CAPTION
+            "A String",
+          ],
+          "type": "A String", # The type for this contact. This is used for sorting in UIs. Allowed values are:
+              # - INDIVIDUAL - Represents a single person. This is the default.
+              # - GROUP - Represents more than a single person.
+          "acceptCommands": [ # A list of voice menu commands that a contact can handle. Glass shows up to three contacts for each voice menu command. If there are more than that, the three contacts with the highest priority are shown for that particular command.
+            { # A single menu command that is part of a Contact.
+              "type": "A String", # The type of operation this command corresponds to. Allowed values are:
+                  # - TAKE_A_NOTE - Shares a timeline item with the transcription of user speech from the "Take a note" voice menu command.
+                  # - POST_AN_UPDATE - Shares a timeline item with the transcription of user speech from the "Post an update" voice menu command.
+            },
+          ],
+          "id": "A String", # An ID for this contact. This is generated by the application and is treated as an opaque token.
+          "speakableName": "A String", # Name of this contact as it should be pronounced. If this contact's name must be spoken as part of a voice disambiguation menu, this name is used as the expected pronunciation. This is useful for contact names with unpronounceable characters or whose display spelling is otherwise not phonetic.
+        },
+    ],
+    "kind": "mirror#contacts", # The type of resource. This is always mirror#contacts.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(id, body)</code>
+  <pre>Updates a contact in place. This method supports patch semantics.
+
+Args:
+  id: string, The ID of the contact. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A person or group that can be used as a creator or a contact.
+    "kind": "mirror#contact", # The type of resource. This is always mirror#contact.
+    "displayName": "A String", # The name to display for this contact.
+    "acceptTypes": [ # A list of MIME types that a contact supports. The contact will be shown to the user if any of its acceptTypes matches any of the types of the attachments on the item. If no acceptTypes are given, the contact will be shown for all items.
+      "A String",
+    ],
+    "imageUrls": [ # Set of image URLs to display for a contact. Most contacts will have a single image, but a "group" contact may include up to 8 image URLs and they will be resized and cropped into a mosaic on the client.
+      "A String",
+    ],
+    "priority": 42, # Priority for the contact to determine ordering in a list of contacts. Contacts with higher priorities will be shown before ones with lower priorities.
+    "source": "A String", # The ID of the application that created this contact. This is populated by the API
+    "phoneNumber": "A String", # Primary phone number for the contact. This can be a fully-qualified number, with country calling code and area code, or a local number.
+    "sharingFeatures": [ # A list of sharing features that a contact can handle. Allowed values are:
+        # - ADD_CAPTION
+      "A String",
+    ],
+    "type": "A String", # The type for this contact. This is used for sorting in UIs. Allowed values are:
+        # - INDIVIDUAL - Represents a single person. This is the default.
+        # - GROUP - Represents more than a single person.
+    "acceptCommands": [ # A list of voice menu commands that a contact can handle. Glass shows up to three contacts for each voice menu command. If there are more than that, the three contacts with the highest priority are shown for that particular command.
+      { # A single menu command that is part of a Contact.
+        "type": "A String", # The type of operation this command corresponds to. Allowed values are:
+            # - TAKE_A_NOTE - Shares a timeline item with the transcription of user speech from the "Take a note" voice menu command.
+            # - POST_AN_UPDATE - Shares a timeline item with the transcription of user speech from the "Post an update" voice menu command.
+      },
+    ],
+    "id": "A String", # An ID for this contact. This is generated by the application and is treated as an opaque token.
+    "speakableName": "A String", # Name of this contact as it should be pronounced. If this contact's name must be spoken as part of a voice disambiguation menu, this name is used as the expected pronunciation. This is useful for contact names with unpronounceable characters or whose display spelling is otherwise not phonetic.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A person or group that can be used as a creator or a contact.
+      "kind": "mirror#contact", # The type of resource. This is always mirror#contact.
+      "displayName": "A String", # The name to display for this contact.
+      "acceptTypes": [ # A list of MIME types that a contact supports. The contact will be shown to the user if any of its acceptTypes matches any of the types of the attachments on the item. If no acceptTypes are given, the contact will be shown for all items.
+        "A String",
+      ],
+      "imageUrls": [ # Set of image URLs to display for a contact. Most contacts will have a single image, but a "group" contact may include up to 8 image URLs and they will be resized and cropped into a mosaic on the client.
+        "A String",
+      ],
+      "priority": 42, # Priority for the contact to determine ordering in a list of contacts. Contacts with higher priorities will be shown before ones with lower priorities.
+      "source": "A String", # The ID of the application that created this contact. This is populated by the API
+      "phoneNumber": "A String", # Primary phone number for the contact. This can be a fully-qualified number, with country calling code and area code, or a local number.
+      "sharingFeatures": [ # A list of sharing features that a contact can handle. Allowed values are:
+          # - ADD_CAPTION
+        "A String",
+      ],
+      "type": "A String", # The type for this contact. This is used for sorting in UIs. Allowed values are:
+          # - INDIVIDUAL - Represents a single person. This is the default.
+          # - GROUP - Represents more than a single person.
+      "acceptCommands": [ # A list of voice menu commands that a contact can handle. Glass shows up to three contacts for each voice menu command. If there are more than that, the three contacts with the highest priority are shown for that particular command.
+        { # A single menu command that is part of a Contact.
+          "type": "A String", # The type of operation this command corresponds to. Allowed values are:
+              # - TAKE_A_NOTE - Shares a timeline item with the transcription of user speech from the "Take a note" voice menu command.
+              # - POST_AN_UPDATE - Shares a timeline item with the transcription of user speech from the "Post an update" voice menu command.
+        },
+      ],
+      "id": "A String", # An ID for this contact. This is generated by the application and is treated as an opaque token.
+      "speakableName": "A String", # Name of this contact as it should be pronounced. If this contact's name must be spoken as part of a voice disambiguation menu, this name is used as the expected pronunciation. This is useful for contact names with unpronounceable characters or whose display spelling is otherwise not phonetic.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(id, body)</code>
+  <pre>Updates a contact in place.
+
+Args:
+  id: string, The ID of the contact. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A person or group that can be used as a creator or a contact.
+    "kind": "mirror#contact", # The type of resource. This is always mirror#contact.
+    "displayName": "A String", # The name to display for this contact.
+    "acceptTypes": [ # A list of MIME types that a contact supports. The contact will be shown to the user if any of its acceptTypes matches any of the types of the attachments on the item. If no acceptTypes are given, the contact will be shown for all items.
+      "A String",
+    ],
+    "imageUrls": [ # Set of image URLs to display for a contact. Most contacts will have a single image, but a "group" contact may include up to 8 image URLs and they will be resized and cropped into a mosaic on the client.
+      "A String",
+    ],
+    "priority": 42, # Priority for the contact to determine ordering in a list of contacts. Contacts with higher priorities will be shown before ones with lower priorities.
+    "source": "A String", # The ID of the application that created this contact. This is populated by the API
+    "phoneNumber": "A String", # Primary phone number for the contact. This can be a fully-qualified number, with country calling code and area code, or a local number.
+    "sharingFeatures": [ # A list of sharing features that a contact can handle. Allowed values are:
+        # - ADD_CAPTION
+      "A String",
+    ],
+    "type": "A String", # The type for this contact. This is used for sorting in UIs. Allowed values are:
+        # - INDIVIDUAL - Represents a single person. This is the default.
+        # - GROUP - Represents more than a single person.
+    "acceptCommands": [ # A list of voice menu commands that a contact can handle. Glass shows up to three contacts for each voice menu command. If there are more than that, the three contacts with the highest priority are shown for that particular command.
+      { # A single menu command that is part of a Contact.
+        "type": "A String", # The type of operation this command corresponds to. Allowed values are:
+            # - TAKE_A_NOTE - Shares a timeline item with the transcription of user speech from the "Take a note" voice menu command.
+            # - POST_AN_UPDATE - Shares a timeline item with the transcription of user speech from the "Post an update" voice menu command.
+      },
+    ],
+    "id": "A String", # An ID for this contact. This is generated by the application and is treated as an opaque token.
+    "speakableName": "A String", # Name of this contact as it should be pronounced. If this contact's name must be spoken as part of a voice disambiguation menu, this name is used as the expected pronunciation. This is useful for contact names with unpronounceable characters or whose display spelling is otherwise not phonetic.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A person or group that can be used as a creator or a contact.
+      "kind": "mirror#contact", # The type of resource. This is always mirror#contact.
+      "displayName": "A String", # The name to display for this contact.
+      "acceptTypes": [ # A list of MIME types that a contact supports. The contact will be shown to the user if any of its acceptTypes matches any of the types of the attachments on the item. If no acceptTypes are given, the contact will be shown for all items.
+        "A String",
+      ],
+      "imageUrls": [ # Set of image URLs to display for a contact. Most contacts will have a single image, but a "group" contact may include up to 8 image URLs and they will be resized and cropped into a mosaic on the client.
+        "A String",
+      ],
+      "priority": 42, # Priority for the contact to determine ordering in a list of contacts. Contacts with higher priorities will be shown before ones with lower priorities.
+      "source": "A String", # The ID of the application that created this contact. This is populated by the API
+      "phoneNumber": "A String", # Primary phone number for the contact. This can be a fully-qualified number, with country calling code and area code, or a local number.
+      "sharingFeatures": [ # A list of sharing features that a contact can handle. Allowed values are:
+          # - ADD_CAPTION
+        "A String",
+      ],
+      "type": "A String", # The type for this contact. This is used for sorting in UIs. Allowed values are:
+          # - INDIVIDUAL - Represents a single person. This is the default.
+          # - GROUP - Represents more than a single person.
+      "acceptCommands": [ # A list of voice menu commands that a contact can handle. Glass shows up to three contacts for each voice menu command. If there are more than that, the three contacts with the highest priority are shown for that particular command.
+        { # A single menu command that is part of a Contact.
+          "type": "A String", # The type of operation this command corresponds to. Allowed values are:
+              # - TAKE_A_NOTE - Shares a timeline item with the transcription of user speech from the "Take a note" voice menu command.
+              # - POST_AN_UPDATE - Shares a timeline item with the transcription of user speech from the "Post an update" voice menu command.
+        },
+      ],
+      "id": "A String", # An ID for this contact. This is generated by the application and is treated as an opaque token.
+      "speakableName": "A String", # Name of this contact as it should be pronounced. If this contact's name must be spoken as part of a voice disambiguation menu, this name is used as the expected pronunciation. This is useful for contact names with unpronounceable characters or whose display spelling is otherwise not phonetic.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/mirror_v1.html b/docs/dyn/mirror_v1.html
new file mode 100644
index 0000000..4cef53e
--- /dev/null
+++ b/docs/dyn/mirror_v1.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="mirror_v1.html">Google Mirror API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="mirror_v1.accounts.html">accounts()</a></code>
+</p>
+<p class="firstline">Returns the accounts Resource.</p>
+
+<p class="toc_element">
+  <code><a href="mirror_v1.contacts.html">contacts()</a></code>
+</p>
+<p class="firstline">Returns the contacts Resource.</p>
+
+<p class="toc_element">
+  <code><a href="mirror_v1.locations.html">locations()</a></code>
+</p>
+<p class="firstline">Returns the locations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="mirror_v1.subscriptions.html">subscriptions()</a></code>
+</p>
+<p class="firstline">Returns the subscriptions Resource.</p>
+
+<p class="toc_element">
+  <code><a href="mirror_v1.timeline.html">timeline()</a></code>
+</p>
+<p class="firstline">Returns the timeline Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/mirror_v1.locations.html b/docs/dyn/mirror_v1.locations.html
new file mode 100644
index 0000000..f43929e
--- /dev/null
+++ b/docs/dyn/mirror_v1.locations.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="mirror_v1.html">Google Mirror API</a> . <a href="mirror_v1.locations.html">locations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(id)</a></code></p>
+<p class="firstline">Gets a single location by ID.</p>
+<p class="toc_element">
+  <code><a href="#list">list()</a></code></p>
+<p class="firstline">Retrieves a list of locations for the user.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(id)</code>
+  <pre>Gets a single location by ID.
+
+Args:
+  id: string, The ID of the location or latest for the last known location. (required)
+
+Returns:
+  An object of the form:
+
+    { # A geographic location that can be associated with a timeline item.
+    "kind": "mirror#location", # The type of resource. This is always mirror#location.
+    "displayName": "A String", # The name to be displayed. This may be a business name or a user-defined place, such as "Home".
+    "timestamp": "A String", # The time at which this location was captured, formatted according to RFC 3339.
+    "longitude": 3.14, # The longitude, in degrees.
+    "address": "A String", # The full address of the location.
+    "latitude": 3.14, # The latitude, in degrees.
+    "id": "A String", # The ID of the location.
+    "accuracy": 3.14, # The accuracy of the location fix in meters.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list()</code>
+  <pre>Retrieves a list of locations for the user.
+
+Args:
+
+Returns:
+  An object of the form:
+
+    { # A list of Locations. This is the response from the server to GET requests on the locations collection.
+    "items": [ # The list of locations.
+      { # A geographic location that can be associated with a timeline item.
+        "kind": "mirror#location", # The type of resource. This is always mirror#location.
+        "displayName": "A String", # The name to be displayed. This may be a business name or a user-defined place, such as "Home".
+        "timestamp": "A String", # The time at which this location was captured, formatted according to RFC 3339.
+        "longitude": 3.14, # The longitude, in degrees.
+        "address": "A String", # The full address of the location.
+        "latitude": 3.14, # The latitude, in degrees.
+        "id": "A String", # The ID of the location.
+        "accuracy": 3.14, # The accuracy of the location fix in meters.
+      },
+    ],
+    "kind": "mirror#locationsList", # The type of resource. This is always mirror#locationsList.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/mirror_v1.subscriptions.html b/docs/dyn/mirror_v1.subscriptions.html
new file mode 100644
index 0000000..5fa9a79
--- /dev/null
+++ b/docs/dyn/mirror_v1.subscriptions.html
@@ -0,0 +1,351 @@
+<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="mirror_v1.html">Google Mirror API</a> . <a href="mirror_v1.subscriptions.html">subscriptions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(id)</a></code></p>
+<p class="firstline">Deletes a subscription.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(body)</a></code></p>
+<p class="firstline">Creates a new subscription.</p>
+<p class="toc_element">
+  <code><a href="#list">list()</a></code></p>
+<p class="firstline">Retrieves a list of subscriptions for the authenticated user and service.</p>
+<p class="toc_element">
+  <code><a href="#update">update(id, body)</a></code></p>
+<p class="firstline">Updates an existing subscription in place.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(id)</code>
+  <pre>Deletes a subscription.
+
+Args:
+  id: string, The ID of the subscription. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(body)</code>
+  <pre>Creates a new subscription.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A subscription to events on a collection.
+    "kind": "mirror#subscription", # The type of resource. This is always mirror#subscription.
+    "notification": { # A notification delivered by the API. # Container object for notifications. This is not populated in the Subscription resource.
+      "itemId": "A String", # The ID of the item that generated the notification.
+      "collection": "A String", # The collection that generated the notification.
+      "verifyToken": "A String", # The secret verify token provided by the service when it subscribed for notifications.
+      "userToken": "A String", # The user token provided by the service when it subscribed for notifications.
+      "userActions": [ # A list of actions taken by the user that triggered the notification.
+        { # Represents an action taken by the user that triggered a notification.
+          "type": "A String", # The type of action. The value of this can be:
+              # - SHARE - the user shared an item.
+              # - REPLY - the user replied to an item.
+              # - REPLY_ALL - the user replied to all recipients of an item.
+              # - CUSTOM - the user selected a custom menu item on the timeline item.
+              # - DELETE - the user deleted the item.
+              # - PIN - the user pinned the item.
+              # - UNPIN - the user unpinned the item.
+              # - LAUNCH - the user initiated a voice command.  In the future, additional types may be added. UserActions with unrecognized types should be ignored.
+          "payload": "A String", # An optional payload for the action.
+              #
+              # For actions of type CUSTOM, this is the ID of the custom menu item that was selected.
+        },
+      ],
+      "operation": "A String", # The type of operation that generated the notification.
+    },
+    "updated": "A String", # The time at which this subscription was last modified, formatted according to RFC 3339.
+    "collection": "A String", # The collection to subscribe to. Allowed values are:
+        # - timeline - Changes in the timeline including insertion, deletion, and updates.
+        # - locations - Location updates.
+    "verifyToken": "A String", # A secret token sent to the subscriber in notifications so that it can verify that the notification was generated by Google.
+    "userToken": "A String", # An opaque token sent to the subscriber in notifications so that it can determine the ID of the user.
+    "operation": [ # A list of operations that should be subscribed to. An empty list indicates that all operations on the collection should be subscribed to. Allowed values are:
+        # - UPDATE - The item has been updated.
+        # - INSERT - A new item has been inserted.
+        # - DELETE - The item has been deleted.
+        # - MENU_ACTION - A custom menu item has been triggered by the user.
+      "A String",
+    ],
+    "id": "A String", # The ID of the subscription.
+    "callbackUrl": "A String", # The URL where notifications should be delivered (must start with https://).
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A subscription to events on a collection.
+      "kind": "mirror#subscription", # The type of resource. This is always mirror#subscription.
+      "notification": { # A notification delivered by the API. # Container object for notifications. This is not populated in the Subscription resource.
+        "itemId": "A String", # The ID of the item that generated the notification.
+        "collection": "A String", # The collection that generated the notification.
+        "verifyToken": "A String", # The secret verify token provided by the service when it subscribed for notifications.
+        "userToken": "A String", # The user token provided by the service when it subscribed for notifications.
+        "userActions": [ # A list of actions taken by the user that triggered the notification.
+          { # Represents an action taken by the user that triggered a notification.
+            "type": "A String", # The type of action. The value of this can be:
+                # - SHARE - the user shared an item.
+                # - REPLY - the user replied to an item.
+                # - REPLY_ALL - the user replied to all recipients of an item.
+                # - CUSTOM - the user selected a custom menu item on the timeline item.
+                # - DELETE - the user deleted the item.
+                # - PIN - the user pinned the item.
+                # - UNPIN - the user unpinned the item.
+                # - LAUNCH - the user initiated a voice command.  In the future, additional types may be added. UserActions with unrecognized types should be ignored.
+            "payload": "A String", # An optional payload for the action.
+                #
+                # For actions of type CUSTOM, this is the ID of the custom menu item that was selected.
+          },
+        ],
+        "operation": "A String", # The type of operation that generated the notification.
+      },
+      "updated": "A String", # The time at which this subscription was last modified, formatted according to RFC 3339.
+      "collection": "A String", # The collection to subscribe to. Allowed values are:
+          # - timeline - Changes in the timeline including insertion, deletion, and updates.
+          # - locations - Location updates.
+      "verifyToken": "A String", # A secret token sent to the subscriber in notifications so that it can verify that the notification was generated by Google.
+      "userToken": "A String", # An opaque token sent to the subscriber in notifications so that it can determine the ID of the user.
+      "operation": [ # A list of operations that should be subscribed to. An empty list indicates that all operations on the collection should be subscribed to. Allowed values are:
+          # - UPDATE - The item has been updated.
+          # - INSERT - A new item has been inserted.
+          # - DELETE - The item has been deleted.
+          # - MENU_ACTION - A custom menu item has been triggered by the user.
+        "A String",
+      ],
+      "id": "A String", # The ID of the subscription.
+      "callbackUrl": "A String", # The URL where notifications should be delivered (must start with https://).
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list()</code>
+  <pre>Retrieves a list of subscriptions for the authenticated user and service.
+
+Args:
+
+Returns:
+  An object of the form:
+
+    { # A list of Subscriptions. This is the response from the server to GET requests on the subscription collection.
+    "items": [ # The list of subscriptions.
+      { # A subscription to events on a collection.
+          "kind": "mirror#subscription", # The type of resource. This is always mirror#subscription.
+          "notification": { # A notification delivered by the API. # Container object for notifications. This is not populated in the Subscription resource.
+            "itemId": "A String", # The ID of the item that generated the notification.
+            "collection": "A String", # The collection that generated the notification.
+            "verifyToken": "A String", # The secret verify token provided by the service when it subscribed for notifications.
+            "userToken": "A String", # The user token provided by the service when it subscribed for notifications.
+            "userActions": [ # A list of actions taken by the user that triggered the notification.
+              { # Represents an action taken by the user that triggered a notification.
+                "type": "A String", # The type of action. The value of this can be:
+                    # - SHARE - the user shared an item.
+                    # - REPLY - the user replied to an item.
+                    # - REPLY_ALL - the user replied to all recipients of an item.
+                    # - CUSTOM - the user selected a custom menu item on the timeline item.
+                    # - DELETE - the user deleted the item.
+                    # - PIN - the user pinned the item.
+                    # - UNPIN - the user unpinned the item.
+                    # - LAUNCH - the user initiated a voice command.  In the future, additional types may be added. UserActions with unrecognized types should be ignored.
+                "payload": "A String", # An optional payload for the action.
+                    #
+                    # For actions of type CUSTOM, this is the ID of the custom menu item that was selected.
+              },
+            ],
+            "operation": "A String", # The type of operation that generated the notification.
+          },
+          "updated": "A String", # The time at which this subscription was last modified, formatted according to RFC 3339.
+          "collection": "A String", # The collection to subscribe to. Allowed values are:
+              # - timeline - Changes in the timeline including insertion, deletion, and updates.
+              # - locations - Location updates.
+          "verifyToken": "A String", # A secret token sent to the subscriber in notifications so that it can verify that the notification was generated by Google.
+          "userToken": "A String", # An opaque token sent to the subscriber in notifications so that it can determine the ID of the user.
+          "operation": [ # A list of operations that should be subscribed to. An empty list indicates that all operations on the collection should be subscribed to. Allowed values are:
+              # - UPDATE - The item has been updated.
+              # - INSERT - A new item has been inserted.
+              # - DELETE - The item has been deleted.
+              # - MENU_ACTION - A custom menu item has been triggered by the user.
+            "A String",
+          ],
+          "id": "A String", # The ID of the subscription.
+          "callbackUrl": "A String", # The URL where notifications should be delivered (must start with https://).
+        },
+    ],
+    "kind": "mirror#subscriptionsList", # The type of resource. This is always mirror#subscriptionsList.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(id, body)</code>
+  <pre>Updates an existing subscription in place.
+
+Args:
+  id: string, The ID of the subscription. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A subscription to events on a collection.
+    "kind": "mirror#subscription", # The type of resource. This is always mirror#subscription.
+    "notification": { # A notification delivered by the API. # Container object for notifications. This is not populated in the Subscription resource.
+      "itemId": "A String", # The ID of the item that generated the notification.
+      "collection": "A String", # The collection that generated the notification.
+      "verifyToken": "A String", # The secret verify token provided by the service when it subscribed for notifications.
+      "userToken": "A String", # The user token provided by the service when it subscribed for notifications.
+      "userActions": [ # A list of actions taken by the user that triggered the notification.
+        { # Represents an action taken by the user that triggered a notification.
+          "type": "A String", # The type of action. The value of this can be:
+              # - SHARE - the user shared an item.
+              # - REPLY - the user replied to an item.
+              # - REPLY_ALL - the user replied to all recipients of an item.
+              # - CUSTOM - the user selected a custom menu item on the timeline item.
+              # - DELETE - the user deleted the item.
+              # - PIN - the user pinned the item.
+              # - UNPIN - the user unpinned the item.
+              # - LAUNCH - the user initiated a voice command.  In the future, additional types may be added. UserActions with unrecognized types should be ignored.
+          "payload": "A String", # An optional payload for the action.
+              #
+              # For actions of type CUSTOM, this is the ID of the custom menu item that was selected.
+        },
+      ],
+      "operation": "A String", # The type of operation that generated the notification.
+    },
+    "updated": "A String", # The time at which this subscription was last modified, formatted according to RFC 3339.
+    "collection": "A String", # The collection to subscribe to. Allowed values are:
+        # - timeline - Changes in the timeline including insertion, deletion, and updates.
+        # - locations - Location updates.
+    "verifyToken": "A String", # A secret token sent to the subscriber in notifications so that it can verify that the notification was generated by Google.
+    "userToken": "A String", # An opaque token sent to the subscriber in notifications so that it can determine the ID of the user.
+    "operation": [ # A list of operations that should be subscribed to. An empty list indicates that all operations on the collection should be subscribed to. Allowed values are:
+        # - UPDATE - The item has been updated.
+        # - INSERT - A new item has been inserted.
+        # - DELETE - The item has been deleted.
+        # - MENU_ACTION - A custom menu item has been triggered by the user.
+      "A String",
+    ],
+    "id": "A String", # The ID of the subscription.
+    "callbackUrl": "A String", # The URL where notifications should be delivered (must start with https://).
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A subscription to events on a collection.
+      "kind": "mirror#subscription", # The type of resource. This is always mirror#subscription.
+      "notification": { # A notification delivered by the API. # Container object for notifications. This is not populated in the Subscription resource.
+        "itemId": "A String", # The ID of the item that generated the notification.
+        "collection": "A String", # The collection that generated the notification.
+        "verifyToken": "A String", # The secret verify token provided by the service when it subscribed for notifications.
+        "userToken": "A String", # The user token provided by the service when it subscribed for notifications.
+        "userActions": [ # A list of actions taken by the user that triggered the notification.
+          { # Represents an action taken by the user that triggered a notification.
+            "type": "A String", # The type of action. The value of this can be:
+                # - SHARE - the user shared an item.
+                # - REPLY - the user replied to an item.
+                # - REPLY_ALL - the user replied to all recipients of an item.
+                # - CUSTOM - the user selected a custom menu item on the timeline item.
+                # - DELETE - the user deleted the item.
+                # - PIN - the user pinned the item.
+                # - UNPIN - the user unpinned the item.
+                # - LAUNCH - the user initiated a voice command.  In the future, additional types may be added. UserActions with unrecognized types should be ignored.
+            "payload": "A String", # An optional payload for the action.
+                #
+                # For actions of type CUSTOM, this is the ID of the custom menu item that was selected.
+          },
+        ],
+        "operation": "A String", # The type of operation that generated the notification.
+      },
+      "updated": "A String", # The time at which this subscription was last modified, formatted according to RFC 3339.
+      "collection": "A String", # The collection to subscribe to. Allowed values are:
+          # - timeline - Changes in the timeline including insertion, deletion, and updates.
+          # - locations - Location updates.
+      "verifyToken": "A String", # A secret token sent to the subscriber in notifications so that it can verify that the notification was generated by Google.
+      "userToken": "A String", # An opaque token sent to the subscriber in notifications so that it can determine the ID of the user.
+      "operation": [ # A list of operations that should be subscribed to. An empty list indicates that all operations on the collection should be subscribed to. Allowed values are:
+          # - UPDATE - The item has been updated.
+          # - INSERT - A new item has been inserted.
+          # - DELETE - The item has been deleted.
+          # - MENU_ACTION - A custom menu item has been triggered by the user.
+        "A String",
+      ],
+      "id": "A String", # The ID of the subscription.
+      "callbackUrl": "A String", # The URL where notifications should be delivered (must start with https://).
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/mirror_v1.timeline.attachments.html b/docs/dyn/mirror_v1.timeline.attachments.html
new file mode 100644
index 0000000..4684465
--- /dev/null
+++ b/docs/dyn/mirror_v1.timeline.attachments.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="mirror_v1.html">Google Mirror API</a> . <a href="mirror_v1.timeline.html">timeline</a> . <a href="mirror_v1.timeline.attachments.html">attachments</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(itemId, attachmentId)</a></code></p>
+<p class="firstline">Deletes an attachment from a timeline item.</p>
+<p class="toc_element">
+  <code><a href="#get">get(itemId, attachmentId)</a></code></p>
+<p class="firstline">Retrieves an attachment on a timeline item by item ID and attachment ID.</p>
+<p class="toc_element">
+  <code><a href="#get_media">get_media(itemId, attachmentId)</a></code></p>
+<p class="firstline">Retrieves an attachment on a timeline item by item ID and attachment ID.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(itemId, media_body=None)</a></code></p>
+<p class="firstline">Adds a new attachment to a timeline item.</p>
+<p class="toc_element">
+  <code><a href="#list">list(itemId)</a></code></p>
+<p class="firstline">Returns a list of attachments for a timeline item.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(itemId, attachmentId)</code>
+  <pre>Deletes an attachment from a timeline item.
+
+Args:
+  itemId: string, The ID of the timeline item the attachment belongs to. (required)
+  attachmentId: string, The ID of the attachment. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(itemId, attachmentId)</code>
+  <pre>Retrieves an attachment on a timeline item by item ID and attachment ID.
+
+Args:
+  itemId: string, The ID of the timeline item the attachment belongs to. (required)
+  attachmentId: string, The ID of the attachment. (required)
+
+Returns:
+  An object of the form:
+
+    { # Represents media content, such as a photo, that can be attached to a timeline item.
+    "contentUrl": "A String", # The URL for the content.
+    "contentType": "A String", # The MIME type of the attachment.
+    "id": "A String", # The ID of the attachment.
+    "isProcessingContent": True or False, # Indicates that the contentUrl is not available because the attachment content is still being processed. If the caller wishes to retrieve the content, it should try again later.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get_media">get_media(itemId, attachmentId)</code>
+  <pre>Retrieves an attachment on a timeline item by item ID and attachment ID.
+
+Args:
+  itemId: string, The ID of the timeline item the attachment belongs to. (required)
+  attachmentId: string, The ID of the attachment. (required)
+
+Returns:
+  The media object as a string.
+
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(itemId, media_body=None)</code>
+  <pre>Adds a new attachment to a timeline item.
+
+Args:
+  itemId: string, The ID of the timeline item the attachment belongs to. (required)
+  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
+
+Returns:
+  An object of the form:
+
+    { # Represents media content, such as a photo, that can be attached to a timeline item.
+    "contentUrl": "A String", # The URL for the content.
+    "contentType": "A String", # The MIME type of the attachment.
+    "id": "A String", # The ID of the attachment.
+    "isProcessingContent": True or False, # Indicates that the contentUrl is not available because the attachment content is still being processed. If the caller wishes to retrieve the content, it should try again later.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(itemId)</code>
+  <pre>Returns a list of attachments for a timeline item.
+
+Args:
+  itemId: string, The ID of the timeline item whose attachments should be listed. (required)
+
+Returns:
+  An object of the form:
+
+    { # A list of Attachments. This is the response from the server to GET requests on the attachments collection.
+    "items": [ # The list of attachments.
+      { # Represents media content, such as a photo, that can be attached to a timeline item.
+        "contentUrl": "A String", # The URL for the content.
+        "contentType": "A String", # The MIME type of the attachment.
+        "id": "A String", # The ID of the attachment.
+        "isProcessingContent": True or False, # Indicates that the contentUrl is not available because the attachment content is still being processed. If the caller wishes to retrieve the content, it should try again later.
+      },
+    ],
+    "kind": "mirror#attachmentsList", # The type of resource. This is always mirror#attachmentsList.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/mirror_v1.timeline.html b/docs/dyn/mirror_v1.timeline.html
new file mode 100644
index 0000000..c78b36c
--- /dev/null
+++ b/docs/dyn/mirror_v1.timeline.html
@@ -0,0 +1,1599 @@
+<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="mirror_v1.html">Google Mirror API</a> . <a href="mirror_v1.timeline.html">timeline</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="mirror_v1.timeline.attachments.html">attachments()</a></code>
+</p>
+<p class="firstline">Returns the attachments Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#delete">delete(id)</a></code></p>
+<p class="firstline">Deletes a timeline item.</p>
+<p class="toc_element">
+  <code><a href="#get">get(id)</a></code></p>
+<p class="firstline">Gets a single timeline item by ID.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(body=None, media_body=None)</a></code></p>
+<p class="firstline">Inserts a new item into the timeline.</p>
+<p class="toc_element">
+  <code><a href="#list">list(orderBy=None, includeDeleted=None, pageToken=None, maxResults=None, pinnedOnly=None, sourceItemId=None, bundleId=None)</a></code></p>
+<p class="firstline">Retrieves a list of timeline items for the authenticated user.</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(id, body)</a></code></p>
+<p class="firstline">Updates a timeline item in place. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(id, body=None, media_body=None)</a></code></p>
+<p class="firstline">Updates a timeline item in place.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(id)</code>
+  <pre>Deletes a timeline item.
+
+Args:
+  id: string, The ID of the timeline item. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(id)</code>
+  <pre>Gets a single timeline item by ID.
+
+Args:
+  id: string, The ID of the timeline item. (required)
+
+Returns:
+  An object of the form:
+
+    { # Each item in the user's timeline is represented as a TimelineItem JSON structure, described below.
+      "attachments": [ # A list of media attachments associated with this item. As a convenience, you can refer to attachments in your HTML payloads with the attachment or cid scheme. For example:
+          # - attachment: <img src="attachment:attachment_index"> where attachment_index is the 0-based index of this array.
+          # - cid: <img src="cid:attachment_id"> where attachment_id is the ID of the attachment.
+        { # Represents media content, such as a photo, that can be attached to a timeline item.
+          "contentUrl": "A String", # The URL for the content.
+          "contentType": "A String", # The MIME type of the attachment.
+          "id": "A String", # The ID of the attachment.
+          "isProcessingContent": True or False, # Indicates that the contentUrl is not available because the attachment content is still being processed. If the caller wishes to retrieve the content, it should try again later.
+        },
+      ],
+      "displayTime": "A String", # The time that should be displayed when this item is viewed in the timeline, formatted according to RFC 3339. This user's timeline is sorted chronologically on display time, so this will also determine where the item is displayed in the timeline. If not set by the service, the display time defaults to the updated time.
+      "creator": { # A person or group that can be used as a creator or a contact. # The user or group that created this item.
+          "kind": "mirror#contact", # The type of resource. This is always mirror#contact.
+          "displayName": "A String", # The name to display for this contact.
+          "acceptTypes": [ # A list of MIME types that a contact supports. The contact will be shown to the user if any of its acceptTypes matches any of the types of the attachments on the item. If no acceptTypes are given, the contact will be shown for all items.
+            "A String",
+          ],
+          "imageUrls": [ # Set of image URLs to display for a contact. Most contacts will have a single image, but a "group" contact may include up to 8 image URLs and they will be resized and cropped into a mosaic on the client.
+            "A String",
+          ],
+          "priority": 42, # Priority for the contact to determine ordering in a list of contacts. Contacts with higher priorities will be shown before ones with lower priorities.
+          "source": "A String", # The ID of the application that created this contact. This is populated by the API
+          "phoneNumber": "A String", # Primary phone number for the contact. This can be a fully-qualified number, with country calling code and area code, or a local number.
+          "sharingFeatures": [ # A list of sharing features that a contact can handle. Allowed values are:
+              # - ADD_CAPTION
+            "A String",
+          ],
+          "type": "A String", # The type for this contact. This is used for sorting in UIs. Allowed values are:
+              # - INDIVIDUAL - Represents a single person. This is the default.
+              # - GROUP - Represents more than a single person.
+          "acceptCommands": [ # A list of voice menu commands that a contact can handle. Glass shows up to three contacts for each voice menu command. If there are more than that, the three contacts with the highest priority are shown for that particular command.
+            { # A single menu command that is part of a Contact.
+              "type": "A String", # The type of operation this command corresponds to. Allowed values are:
+                  # - TAKE_A_NOTE - Shares a timeline item with the transcription of user speech from the "Take a note" voice menu command.
+                  # - POST_AN_UPDATE - Shares a timeline item with the transcription of user speech from the "Post an update" voice menu command.
+            },
+          ],
+          "id": "A String", # An ID for this contact. This is generated by the application and is treated as an opaque token.
+          "speakableName": "A String", # Name of this contact as it should be pronounced. If this contact's name must be spoken as part of a voice disambiguation menu, this name is used as the expected pronunciation. This is useful for contact names with unpronounceable characters or whose display spelling is otherwise not phonetic.
+        },
+      "text": "A String", # Text content of this item.
+      "menuItems": [ # A list of menu items that will be presented to the user when this item is selected in the timeline.
+        { # A custom menu item that can be presented to the user by a timeline item.
+          "action": "A String", # Controls the behavior when the user picks the menu option. Allowed values are:
+              # - CUSTOM - Custom action set by the service. When the user selects this menuItem, the API triggers a notification to your callbackUrl with the userActions.type set to CUSTOM and the userActions.payload set to the ID of this menu item. This is the default value.
+              # - Built-in actions:
+              # - REPLY - Initiate a reply to the timeline item using the voice recording UI. The creator attribute must be set in the timeline item for this menu to be available.
+              # - REPLY_ALL - Same behavior as REPLY. The original timeline item's recipients will be added to the reply item.
+              # - DELETE - Delete the timeline item.
+              # - SHARE - Share the timeline item with the available contacts.
+              # - READ_ALOUD - Read the timeline item's speakableText aloud; if this field is not set, read the text field; if none of those fields are set, this menu item is ignored.
+              # - GET_MEDIA_INPUT - Allow users to provide media payloads to Glassware from a menu item (currently, only transcribed text from voice input is supported). Subscribe to notifications when users invoke this menu item to receive the timeline item ID. Retrieve the media from the timeline item in the payload property.
+              # - VOICE_CALL - Initiate a phone call using the timeline item's creator.phoneNumber attribute as recipient.
+              # - NAVIGATE - Navigate to the timeline item's location.
+              # - TOGGLE_PINNED - Toggle the isPinned state of the timeline item.
+              # - OPEN_URI - Open the payload of the menu item in the browser.
+              # - PLAY_VIDEO - Open the payload of the menu item in the Glass video player.
+              # - SEND_MESSAGE - Initiate sending a message to the timeline item's creator:
+              # - If the creator.phoneNumber is set and Glass is connected to an Android phone, the message is an SMS.
+              # - Otherwise, if the creator.email is set, the message is an email.
+          "removeWhenSelected": True or False, # If set to true on a CUSTOM menu item, that item will be removed from the menu after it is selected.
+          "values": [ # For CUSTOM items, a list of values controlling the appearance of the menu item in each of its states. A value for the DEFAULT state must be provided. If the PENDING or CONFIRMED states are missing, they will not be shown.
+            { # A single value that is part of a MenuItem.
+              "iconUrl": "A String", # URL of an icon to display with the menu item.
+              "state": "A String", # The state that this value applies to. Allowed values are:
+                  # - DEFAULT - Default value shown when displayed in the menuItems list.
+                  # - PENDING - Value shown when the menuItem has been selected by the user but can still be cancelled.
+                  # - CONFIRMED - Value shown when the menuItem has been selected by the user and can no longer be cancelled.
+              "displayName": "A String", # The name to display for the menu item. If you specify this property for a built-in menu item, the default contextual voice command for that menu item is not shown.
+            },
+          ],
+          "id": "A String", # The ID for this menu item. This is generated by the application and is treated as an opaque token.
+          "payload": "A String", # A generic payload whose meaning changes depending on this MenuItem's action.
+              # - When the action is OPEN_URI, the payload is the URL of the website to view.
+              # - When the action is PLAY_VIDEO, the payload is the streaming URL of the video
+              # - When the action is GET_MEDIA_INPUT, the payload is the text transcription of a user's speech input
+        },
+      ],
+      "isBundleCover": True or False, # Whether this item is a bundle cover.
+          #
+          # If an item is marked as a bundle cover, it will be the entry point to the bundle of items that have the same bundleId as that item. It will be shown only on the main timeline — not within the opened bundle.
+          #
+          # On the main timeline, items that are shown are:
+          # - Items that have isBundleCover set to true
+          # - Items that do not have a bundleId  In a bundle sub-timeline, items that are shown are:
+          # - Items that have the bundleId in question AND isBundleCover set to false
+      "etag": "A String", # ETag for this item.
+      "id": "A String", # The ID of the timeline item. This is unique within a user's timeline.
+      "isDeleted": True or False, # When true, indicates this item is deleted, and only the ID property is set.
+      "bundleId": "A String", # The bundle ID for this item. Services can specify a bundleId to group many items together. They appear under a single top-level item on the device.
+      "isPinned": True or False, # When true, indicates this item is pinned, which means it's grouped alongside "active" items like navigation and hangouts, on the opposite side of the home screen from historical (non-pinned) timeline items. You can allow the user to toggle the value of this property with the TOGGLE_PINNED built-in menu item.
+      "title": "A String", # The title of this item.
+      "notification": { # Controls how notifications for a timeline item are presented to the user. # Controls how notifications for this item are presented on the device. If this is missing, no notification will be generated.
+        "level": "A String", # Describes how important the notification is. Allowed values are:
+            # - DEFAULT - Notifications of default importance. A chime will be played to alert users.
+        "deliveryTime": "A String", # The time at which the notification should be delivered.
+      },
+      "speakableText": "A String", # The speakable version of the content of this item. Along with the READ_ALOUD menu item, use this field to provide text that would be clearer when read aloud, or to provide extended information to what is displayed visually on Glass.
+          #
+          # Glassware should also specify the speakableType field, which will be spoken before this text in cases where the additional context is useful, for example when the user requests that the item be read aloud following a notification.
+      "html": "A String", # HTML content for this item. If both text and html are provided for an item, the html will be rendered in the timeline.
+          # Allowed HTML elements - You can use these elements in your timeline cards.
+          #
+          # - Headers: h1, h2, h3, h4, h5, h6
+          # - Images: img
+          # - Lists: li, ol, ul
+          # - HTML5 semantics: article, aside, details, figure, figcaption, footer, header, nav, section, summary, time
+          # - Structural: blockquote, br, div, hr, p, span
+          # - Style: b, big, center, em, i, u, s, small, strike, strong, style, sub, sup
+          # - Tables: table, tbody, td, tfoot, th, thead, tr
+          # Blocked HTML elements: These elements and their contents are removed from HTML payloads.
+          #
+          # - Document headers: head, title
+          # - Embeds: audio, embed, object, source, video
+          # - Frames: frame, frameset
+          # - Scripting: applet, script
+          # Other elements: Any elements that aren't listed are removed, but their contents are preserved.
+      "location": { # A geographic location that can be associated with a timeline item. # The geographic location associated with this item.
+        "kind": "mirror#location", # The type of resource. This is always mirror#location.
+        "displayName": "A String", # The name to be displayed. This may be a business name or a user-defined place, such as "Home".
+        "timestamp": "A String", # The time at which this location was captured, formatted according to RFC 3339.
+        "longitude": 3.14, # The longitude, in degrees.
+        "address": "A String", # The full address of the location.
+        "latitude": 3.14, # The latitude, in degrees.
+        "id": "A String", # The ID of the location.
+        "accuracy": 3.14, # The accuracy of the location fix in meters.
+      },
+      "sourceItemId": "A String", # Opaque string you can use to map a timeline item to data in your own service.
+      "inReplyTo": "A String", # If this item was generated as a reply to another item, this field will be set to the ID of the item being replied to. This can be used to attach a reply to the appropriate conversation or post.
+      "updated": "A String", # The time at which this item was last modified, formatted according to RFC 3339.
+      "canonicalUrl": "A String", # A canonical URL pointing to the canonical/high quality version of the data represented by the timeline item.
+      "recipients": [ # A list of users or groups that this item has been shared with.
+        { # A person or group that can be used as a creator or a contact.
+            "kind": "mirror#contact", # The type of resource. This is always mirror#contact.
+            "displayName": "A String", # The name to display for this contact.
+            "acceptTypes": [ # A list of MIME types that a contact supports. The contact will be shown to the user if any of its acceptTypes matches any of the types of the attachments on the item. If no acceptTypes are given, the contact will be shown for all items.
+              "A String",
+            ],
+            "imageUrls": [ # Set of image URLs to display for a contact. Most contacts will have a single image, but a "group" contact may include up to 8 image URLs and they will be resized and cropped into a mosaic on the client.
+              "A String",
+            ],
+            "priority": 42, # Priority for the contact to determine ordering in a list of contacts. Contacts with higher priorities will be shown before ones with lower priorities.
+            "source": "A String", # The ID of the application that created this contact. This is populated by the API
+            "phoneNumber": "A String", # Primary phone number for the contact. This can be a fully-qualified number, with country calling code and area code, or a local number.
+            "sharingFeatures": [ # A list of sharing features that a contact can handle. Allowed values are:
+                # - ADD_CAPTION
+              "A String",
+            ],
+            "type": "A String", # The type for this contact. This is used for sorting in UIs. Allowed values are:
+                # - INDIVIDUAL - Represents a single person. This is the default.
+                # - GROUP - Represents more than a single person.
+            "acceptCommands": [ # A list of voice menu commands that a contact can handle. Glass shows up to three contacts for each voice menu command. If there are more than that, the three contacts with the highest priority are shown for that particular command.
+              { # A single menu command that is part of a Contact.
+                "type": "A String", # The type of operation this command corresponds to. Allowed values are:
+                    # - TAKE_A_NOTE - Shares a timeline item with the transcription of user speech from the "Take a note" voice menu command.
+                    # - POST_AN_UPDATE - Shares a timeline item with the transcription of user speech from the "Post an update" voice menu command.
+              },
+            ],
+            "id": "A String", # An ID for this contact. This is generated by the application and is treated as an opaque token.
+            "speakableName": "A String", # Name of this contact as it should be pronounced. If this contact's name must be spoken as part of a voice disambiguation menu, this name is used as the expected pronunciation. This is useful for contact names with unpronounceable characters or whose display spelling is otherwise not phonetic.
+          },
+      ],
+      "kind": "mirror#timelineItem", # The type of resource. This is always mirror#timelineItem.
+      "created": "A String", # The time at which this item was created, formatted according to RFC 3339.
+      "pinScore": 42, # For pinned items, this determines the order in which the item is displayed in the timeline, with a higher score appearing closer to the clock. Note: setting this field is currently not supported.
+      "speakableType": "A String", # A speakable description of the type of this item. This will be announced to the user prior to reading the content of the item in cases where the additional context is useful, for example when the user requests that the item be read aloud following a notification.
+          #
+          # This should be a short, simple noun phrase such as "Email", "Text message", or "Daily Planet News Update".
+          #
+          # Glassware are encouraged to populate this field for every timeline item, even if the item does not contain speakableText or text so that the user can learn the type of the item without looking at the screen.
+      "selfLink": "A String", # A URL that can be used to retrieve this item.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(body=None, media_body=None)</code>
+  <pre>Inserts a new item into the timeline.
+
+Args:
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Each item in the user's timeline is represented as a TimelineItem JSON structure, described below.
+    "attachments": [ # A list of media attachments associated with this item. As a convenience, you can refer to attachments in your HTML payloads with the attachment or cid scheme. For example:
+        # - attachment: <img src="attachment:attachment_index"> where attachment_index is the 0-based index of this array.
+        # - cid: <img src="cid:attachment_id"> where attachment_id is the ID of the attachment.
+      { # Represents media content, such as a photo, that can be attached to a timeline item.
+        "contentUrl": "A String", # The URL for the content.
+        "contentType": "A String", # The MIME type of the attachment.
+        "id": "A String", # The ID of the attachment.
+        "isProcessingContent": True or False, # Indicates that the contentUrl is not available because the attachment content is still being processed. If the caller wishes to retrieve the content, it should try again later.
+      },
+    ],
+    "displayTime": "A String", # The time that should be displayed when this item is viewed in the timeline, formatted according to RFC 3339. This user's timeline is sorted chronologically on display time, so this will also determine where the item is displayed in the timeline. If not set by the service, the display time defaults to the updated time.
+    "creator": { # A person or group that can be used as a creator or a contact. # The user or group that created this item.
+        "kind": "mirror#contact", # The type of resource. This is always mirror#contact.
+        "displayName": "A String", # The name to display for this contact.
+        "acceptTypes": [ # A list of MIME types that a contact supports. The contact will be shown to the user if any of its acceptTypes matches any of the types of the attachments on the item. If no acceptTypes are given, the contact will be shown for all items.
+          "A String",
+        ],
+        "imageUrls": [ # Set of image URLs to display for a contact. Most contacts will have a single image, but a "group" contact may include up to 8 image URLs and they will be resized and cropped into a mosaic on the client.
+          "A String",
+        ],
+        "priority": 42, # Priority for the contact to determine ordering in a list of contacts. Contacts with higher priorities will be shown before ones with lower priorities.
+        "source": "A String", # The ID of the application that created this contact. This is populated by the API
+        "phoneNumber": "A String", # Primary phone number for the contact. This can be a fully-qualified number, with country calling code and area code, or a local number.
+        "sharingFeatures": [ # A list of sharing features that a contact can handle. Allowed values are:
+            # - ADD_CAPTION
+          "A String",
+        ],
+        "type": "A String", # The type for this contact. This is used for sorting in UIs. Allowed values are:
+            # - INDIVIDUAL - Represents a single person. This is the default.
+            # - GROUP - Represents more than a single person.
+        "acceptCommands": [ # A list of voice menu commands that a contact can handle. Glass shows up to three contacts for each voice menu command. If there are more than that, the three contacts with the highest priority are shown for that particular command.
+          { # A single menu command that is part of a Contact.
+            "type": "A String", # The type of operation this command corresponds to. Allowed values are:
+                # - TAKE_A_NOTE - Shares a timeline item with the transcription of user speech from the "Take a note" voice menu command.
+                # - POST_AN_UPDATE - Shares a timeline item with the transcription of user speech from the "Post an update" voice menu command.
+          },
+        ],
+        "id": "A String", # An ID for this contact. This is generated by the application and is treated as an opaque token.
+        "speakableName": "A String", # Name of this contact as it should be pronounced. If this contact's name must be spoken as part of a voice disambiguation menu, this name is used as the expected pronunciation. This is useful for contact names with unpronounceable characters or whose display spelling is otherwise not phonetic.
+      },
+    "text": "A String", # Text content of this item.
+    "menuItems": [ # A list of menu items that will be presented to the user when this item is selected in the timeline.
+      { # A custom menu item that can be presented to the user by a timeline item.
+        "action": "A String", # Controls the behavior when the user picks the menu option. Allowed values are:
+            # - CUSTOM - Custom action set by the service. When the user selects this menuItem, the API triggers a notification to your callbackUrl with the userActions.type set to CUSTOM and the userActions.payload set to the ID of this menu item. This is the default value.
+            # - Built-in actions:
+            # - REPLY - Initiate a reply to the timeline item using the voice recording UI. The creator attribute must be set in the timeline item for this menu to be available.
+            # - REPLY_ALL - Same behavior as REPLY. The original timeline item's recipients will be added to the reply item.
+            # - DELETE - Delete the timeline item.
+            # - SHARE - Share the timeline item with the available contacts.
+            # - READ_ALOUD - Read the timeline item's speakableText aloud; if this field is not set, read the text field; if none of those fields are set, this menu item is ignored.
+            # - GET_MEDIA_INPUT - Allow users to provide media payloads to Glassware from a menu item (currently, only transcribed text from voice input is supported). Subscribe to notifications when users invoke this menu item to receive the timeline item ID. Retrieve the media from the timeline item in the payload property.
+            # - VOICE_CALL - Initiate a phone call using the timeline item's creator.phoneNumber attribute as recipient.
+            # - NAVIGATE - Navigate to the timeline item's location.
+            # - TOGGLE_PINNED - Toggle the isPinned state of the timeline item.
+            # - OPEN_URI - Open the payload of the menu item in the browser.
+            # - PLAY_VIDEO - Open the payload of the menu item in the Glass video player.
+            # - SEND_MESSAGE - Initiate sending a message to the timeline item's creator:
+            # - If the creator.phoneNumber is set and Glass is connected to an Android phone, the message is an SMS.
+            # - Otherwise, if the creator.email is set, the message is an email.
+        "removeWhenSelected": True or False, # If set to true on a CUSTOM menu item, that item will be removed from the menu after it is selected.
+        "values": [ # For CUSTOM items, a list of values controlling the appearance of the menu item in each of its states. A value for the DEFAULT state must be provided. If the PENDING or CONFIRMED states are missing, they will not be shown.
+          { # A single value that is part of a MenuItem.
+            "iconUrl": "A String", # URL of an icon to display with the menu item.
+            "state": "A String", # The state that this value applies to. Allowed values are:
+                # - DEFAULT - Default value shown when displayed in the menuItems list.
+                # - PENDING - Value shown when the menuItem has been selected by the user but can still be cancelled.
+                # - CONFIRMED - Value shown when the menuItem has been selected by the user and can no longer be cancelled.
+            "displayName": "A String", # The name to display for the menu item. If you specify this property for a built-in menu item, the default contextual voice command for that menu item is not shown.
+          },
+        ],
+        "id": "A String", # The ID for this menu item. This is generated by the application and is treated as an opaque token.
+        "payload": "A String", # A generic payload whose meaning changes depending on this MenuItem's action.
+            # - When the action is OPEN_URI, the payload is the URL of the website to view.
+            # - When the action is PLAY_VIDEO, the payload is the streaming URL of the video
+            # - When the action is GET_MEDIA_INPUT, the payload is the text transcription of a user's speech input
+      },
+    ],
+    "isBundleCover": True or False, # Whether this item is a bundle cover.
+        # 
+        # If an item is marked as a bundle cover, it will be the entry point to the bundle of items that have the same bundleId as that item. It will be shown only on the main timeline — not within the opened bundle.
+        # 
+        # On the main timeline, items that are shown are:
+        # - Items that have isBundleCover set to true
+        # - Items that do not have a bundleId  In a bundle sub-timeline, items that are shown are:
+        # - Items that have the bundleId in question AND isBundleCover set to false
+    "etag": "A String", # ETag for this item.
+    "id": "A String", # The ID of the timeline item. This is unique within a user's timeline.
+    "isDeleted": True or False, # When true, indicates this item is deleted, and only the ID property is set.
+    "bundleId": "A String", # The bundle ID for this item. Services can specify a bundleId to group many items together. They appear under a single top-level item on the device.
+    "isPinned": True or False, # When true, indicates this item is pinned, which means it's grouped alongside "active" items like navigation and hangouts, on the opposite side of the home screen from historical (non-pinned) timeline items. You can allow the user to toggle the value of this property with the TOGGLE_PINNED built-in menu item.
+    "title": "A String", # The title of this item.
+    "notification": { # Controls how notifications for a timeline item are presented to the user. # Controls how notifications for this item are presented on the device. If this is missing, no notification will be generated.
+      "level": "A String", # Describes how important the notification is. Allowed values are:
+          # - DEFAULT - Notifications of default importance. A chime will be played to alert users.
+      "deliveryTime": "A String", # The time at which the notification should be delivered.
+    },
+    "speakableText": "A String", # The speakable version of the content of this item. Along with the READ_ALOUD menu item, use this field to provide text that would be clearer when read aloud, or to provide extended information to what is displayed visually on Glass.
+        # 
+        # Glassware should also specify the speakableType field, which will be spoken before this text in cases where the additional context is useful, for example when the user requests that the item be read aloud following a notification.
+    "html": "A String", # HTML content for this item. If both text and html are provided for an item, the html will be rendered in the timeline.
+        # Allowed HTML elements - You can use these elements in your timeline cards.
+        # 
+        # - Headers: h1, h2, h3, h4, h5, h6
+        # - Images: img
+        # - Lists: li, ol, ul
+        # - HTML5 semantics: article, aside, details, figure, figcaption, footer, header, nav, section, summary, time
+        # - Structural: blockquote, br, div, hr, p, span
+        # - Style: b, big, center, em, i, u, s, small, strike, strong, style, sub, sup
+        # - Tables: table, tbody, td, tfoot, th, thead, tr
+        # Blocked HTML elements: These elements and their contents are removed from HTML payloads.
+        # 
+        # - Document headers: head, title
+        # - Embeds: audio, embed, object, source, video
+        # - Frames: frame, frameset
+        # - Scripting: applet, script
+        # Other elements: Any elements that aren't listed are removed, but their contents are preserved.
+    "location": { # A geographic location that can be associated with a timeline item. # The geographic location associated with this item.
+      "kind": "mirror#location", # The type of resource. This is always mirror#location.
+      "displayName": "A String", # The name to be displayed. This may be a business name or a user-defined place, such as "Home".
+      "timestamp": "A String", # The time at which this location was captured, formatted according to RFC 3339.
+      "longitude": 3.14, # The longitude, in degrees.
+      "address": "A String", # The full address of the location.
+      "latitude": 3.14, # The latitude, in degrees.
+      "id": "A String", # The ID of the location.
+      "accuracy": 3.14, # The accuracy of the location fix in meters.
+    },
+    "sourceItemId": "A String", # Opaque string you can use to map a timeline item to data in your own service.
+    "inReplyTo": "A String", # If this item was generated as a reply to another item, this field will be set to the ID of the item being replied to. This can be used to attach a reply to the appropriate conversation or post.
+    "updated": "A String", # The time at which this item was last modified, formatted according to RFC 3339.
+    "canonicalUrl": "A String", # A canonical URL pointing to the canonical/high quality version of the data represented by the timeline item.
+    "recipients": [ # A list of users or groups that this item has been shared with.
+      { # A person or group that can be used as a creator or a contact.
+          "kind": "mirror#contact", # The type of resource. This is always mirror#contact.
+          "displayName": "A String", # The name to display for this contact.
+          "acceptTypes": [ # A list of MIME types that a contact supports. The contact will be shown to the user if any of its acceptTypes matches any of the types of the attachments on the item. If no acceptTypes are given, the contact will be shown for all items.
+            "A String",
+          ],
+          "imageUrls": [ # Set of image URLs to display for a contact. Most contacts will have a single image, but a "group" contact may include up to 8 image URLs and they will be resized and cropped into a mosaic on the client.
+            "A String",
+          ],
+          "priority": 42, # Priority for the contact to determine ordering in a list of contacts. Contacts with higher priorities will be shown before ones with lower priorities.
+          "source": "A String", # The ID of the application that created this contact. This is populated by the API
+          "phoneNumber": "A String", # Primary phone number for the contact. This can be a fully-qualified number, with country calling code and area code, or a local number.
+          "sharingFeatures": [ # A list of sharing features that a contact can handle. Allowed values are:
+              # - ADD_CAPTION
+            "A String",
+          ],
+          "type": "A String", # The type for this contact. This is used for sorting in UIs. Allowed values are:
+              # - INDIVIDUAL - Represents a single person. This is the default.
+              # - GROUP - Represents more than a single person.
+          "acceptCommands": [ # A list of voice menu commands that a contact can handle. Glass shows up to three contacts for each voice menu command. If there are more than that, the three contacts with the highest priority are shown for that particular command.
+            { # A single menu command that is part of a Contact.
+              "type": "A String", # The type of operation this command corresponds to. Allowed values are:
+                  # - TAKE_A_NOTE - Shares a timeline item with the transcription of user speech from the "Take a note" voice menu command.
+                  # - POST_AN_UPDATE - Shares a timeline item with the transcription of user speech from the "Post an update" voice menu command.
+            },
+          ],
+          "id": "A String", # An ID for this contact. This is generated by the application and is treated as an opaque token.
+          "speakableName": "A String", # Name of this contact as it should be pronounced. If this contact's name must be spoken as part of a voice disambiguation menu, this name is used as the expected pronunciation. This is useful for contact names with unpronounceable characters or whose display spelling is otherwise not phonetic.
+        },
+    ],
+    "kind": "mirror#timelineItem", # The type of resource. This is always mirror#timelineItem.
+    "created": "A String", # The time at which this item was created, formatted according to RFC 3339.
+    "pinScore": 42, # For pinned items, this determines the order in which the item is displayed in the timeline, with a higher score appearing closer to the clock. Note: setting this field is currently not supported.
+    "speakableType": "A String", # A speakable description of the type of this item. This will be announced to the user prior to reading the content of the item in cases where the additional context is useful, for example when the user requests that the item be read aloud following a notification.
+        # 
+        # This should be a short, simple noun phrase such as "Email", "Text message", or "Daily Planet News Update".
+        # 
+        # Glassware are encouraged to populate this field for every timeline item, even if the item does not contain speakableText or text so that the user can learn the type of the item without looking at the screen.
+    "selfLink": "A String", # A URL that can be used to retrieve this item.
+  }
+
+  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
+
+Returns:
+  An object of the form:
+
+    { # Each item in the user's timeline is represented as a TimelineItem JSON structure, described below.
+      "attachments": [ # A list of media attachments associated with this item. As a convenience, you can refer to attachments in your HTML payloads with the attachment or cid scheme. For example:
+          # - attachment: <img src="attachment:attachment_index"> where attachment_index is the 0-based index of this array.
+          # - cid: <img src="cid:attachment_id"> where attachment_id is the ID of the attachment.
+        { # Represents media content, such as a photo, that can be attached to a timeline item.
+          "contentUrl": "A String", # The URL for the content.
+          "contentType": "A String", # The MIME type of the attachment.
+          "id": "A String", # The ID of the attachment.
+          "isProcessingContent": True or False, # Indicates that the contentUrl is not available because the attachment content is still being processed. If the caller wishes to retrieve the content, it should try again later.
+        },
+      ],
+      "displayTime": "A String", # The time that should be displayed when this item is viewed in the timeline, formatted according to RFC 3339. This user's timeline is sorted chronologically on display time, so this will also determine where the item is displayed in the timeline. If not set by the service, the display time defaults to the updated time.
+      "creator": { # A person or group that can be used as a creator or a contact. # The user or group that created this item.
+          "kind": "mirror#contact", # The type of resource. This is always mirror#contact.
+          "displayName": "A String", # The name to display for this contact.
+          "acceptTypes": [ # A list of MIME types that a contact supports. The contact will be shown to the user if any of its acceptTypes matches any of the types of the attachments on the item. If no acceptTypes are given, the contact will be shown for all items.
+            "A String",
+          ],
+          "imageUrls": [ # Set of image URLs to display for a contact. Most contacts will have a single image, but a "group" contact may include up to 8 image URLs and they will be resized and cropped into a mosaic on the client.
+            "A String",
+          ],
+          "priority": 42, # Priority for the contact to determine ordering in a list of contacts. Contacts with higher priorities will be shown before ones with lower priorities.
+          "source": "A String", # The ID of the application that created this contact. This is populated by the API
+          "phoneNumber": "A String", # Primary phone number for the contact. This can be a fully-qualified number, with country calling code and area code, or a local number.
+          "sharingFeatures": [ # A list of sharing features that a contact can handle. Allowed values are:
+              # - ADD_CAPTION
+            "A String",
+          ],
+          "type": "A String", # The type for this contact. This is used for sorting in UIs. Allowed values are:
+              # - INDIVIDUAL - Represents a single person. This is the default.
+              # - GROUP - Represents more than a single person.
+          "acceptCommands": [ # A list of voice menu commands that a contact can handle. Glass shows up to three contacts for each voice menu command. If there are more than that, the three contacts with the highest priority are shown for that particular command.
+            { # A single menu command that is part of a Contact.
+              "type": "A String", # The type of operation this command corresponds to. Allowed values are:
+                  # - TAKE_A_NOTE - Shares a timeline item with the transcription of user speech from the "Take a note" voice menu command.
+                  # - POST_AN_UPDATE - Shares a timeline item with the transcription of user speech from the "Post an update" voice menu command.
+            },
+          ],
+          "id": "A String", # An ID for this contact. This is generated by the application and is treated as an opaque token.
+          "speakableName": "A String", # Name of this contact as it should be pronounced. If this contact's name must be spoken as part of a voice disambiguation menu, this name is used as the expected pronunciation. This is useful for contact names with unpronounceable characters or whose display spelling is otherwise not phonetic.
+        },
+      "text": "A String", # Text content of this item.
+      "menuItems": [ # A list of menu items that will be presented to the user when this item is selected in the timeline.
+        { # A custom menu item that can be presented to the user by a timeline item.
+          "action": "A String", # Controls the behavior when the user picks the menu option. Allowed values are:
+              # - CUSTOM - Custom action set by the service. When the user selects this menuItem, the API triggers a notification to your callbackUrl with the userActions.type set to CUSTOM and the userActions.payload set to the ID of this menu item. This is the default value.
+              # - Built-in actions:
+              # - REPLY - Initiate a reply to the timeline item using the voice recording UI. The creator attribute must be set in the timeline item for this menu to be available.
+              # - REPLY_ALL - Same behavior as REPLY. The original timeline item's recipients will be added to the reply item.
+              # - DELETE - Delete the timeline item.
+              # - SHARE - Share the timeline item with the available contacts.
+              # - READ_ALOUD - Read the timeline item's speakableText aloud; if this field is not set, read the text field; if none of those fields are set, this menu item is ignored.
+              # - GET_MEDIA_INPUT - Allow users to provide media payloads to Glassware from a menu item (currently, only transcribed text from voice input is supported). Subscribe to notifications when users invoke this menu item to receive the timeline item ID. Retrieve the media from the timeline item in the payload property.
+              # - VOICE_CALL - Initiate a phone call using the timeline item's creator.phoneNumber attribute as recipient.
+              # - NAVIGATE - Navigate to the timeline item's location.
+              # - TOGGLE_PINNED - Toggle the isPinned state of the timeline item.
+              # - OPEN_URI - Open the payload of the menu item in the browser.
+              # - PLAY_VIDEO - Open the payload of the menu item in the Glass video player.
+              # - SEND_MESSAGE - Initiate sending a message to the timeline item's creator:
+              # - If the creator.phoneNumber is set and Glass is connected to an Android phone, the message is an SMS.
+              # - Otherwise, if the creator.email is set, the message is an email.
+          "removeWhenSelected": True or False, # If set to true on a CUSTOM menu item, that item will be removed from the menu after it is selected.
+          "values": [ # For CUSTOM items, a list of values controlling the appearance of the menu item in each of its states. A value for the DEFAULT state must be provided. If the PENDING or CONFIRMED states are missing, they will not be shown.
+            { # A single value that is part of a MenuItem.
+              "iconUrl": "A String", # URL of an icon to display with the menu item.
+              "state": "A String", # The state that this value applies to. Allowed values are:
+                  # - DEFAULT - Default value shown when displayed in the menuItems list.
+                  # - PENDING - Value shown when the menuItem has been selected by the user but can still be cancelled.
+                  # - CONFIRMED - Value shown when the menuItem has been selected by the user and can no longer be cancelled.
+              "displayName": "A String", # The name to display for the menu item. If you specify this property for a built-in menu item, the default contextual voice command for that menu item is not shown.
+            },
+          ],
+          "id": "A String", # The ID for this menu item. This is generated by the application and is treated as an opaque token.
+          "payload": "A String", # A generic payload whose meaning changes depending on this MenuItem's action.
+              # - When the action is OPEN_URI, the payload is the URL of the website to view.
+              # - When the action is PLAY_VIDEO, the payload is the streaming URL of the video
+              # - When the action is GET_MEDIA_INPUT, the payload is the text transcription of a user's speech input
+        },
+      ],
+      "isBundleCover": True or False, # Whether this item is a bundle cover.
+          #
+          # If an item is marked as a bundle cover, it will be the entry point to the bundle of items that have the same bundleId as that item. It will be shown only on the main timeline — not within the opened bundle.
+          #
+          # On the main timeline, items that are shown are:
+          # - Items that have isBundleCover set to true
+          # - Items that do not have a bundleId  In a bundle sub-timeline, items that are shown are:
+          # - Items that have the bundleId in question AND isBundleCover set to false
+      "etag": "A String", # ETag for this item.
+      "id": "A String", # The ID of the timeline item. This is unique within a user's timeline.
+      "isDeleted": True or False, # When true, indicates this item is deleted, and only the ID property is set.
+      "bundleId": "A String", # The bundle ID for this item. Services can specify a bundleId to group many items together. They appear under a single top-level item on the device.
+      "isPinned": True or False, # When true, indicates this item is pinned, which means it's grouped alongside "active" items like navigation and hangouts, on the opposite side of the home screen from historical (non-pinned) timeline items. You can allow the user to toggle the value of this property with the TOGGLE_PINNED built-in menu item.
+      "title": "A String", # The title of this item.
+      "notification": { # Controls how notifications for a timeline item are presented to the user. # Controls how notifications for this item are presented on the device. If this is missing, no notification will be generated.
+        "level": "A String", # Describes how important the notification is. Allowed values are:
+            # - DEFAULT - Notifications of default importance. A chime will be played to alert users.
+        "deliveryTime": "A String", # The time at which the notification should be delivered.
+      },
+      "speakableText": "A String", # The speakable version of the content of this item. Along with the READ_ALOUD menu item, use this field to provide text that would be clearer when read aloud, or to provide extended information to what is displayed visually on Glass.
+          #
+          # Glassware should also specify the speakableType field, which will be spoken before this text in cases where the additional context is useful, for example when the user requests that the item be read aloud following a notification.
+      "html": "A String", # HTML content for this item. If both text and html are provided for an item, the html will be rendered in the timeline.
+          # Allowed HTML elements - You can use these elements in your timeline cards.
+          #
+          # - Headers: h1, h2, h3, h4, h5, h6
+          # - Images: img
+          # - Lists: li, ol, ul
+          # - HTML5 semantics: article, aside, details, figure, figcaption, footer, header, nav, section, summary, time
+          # - Structural: blockquote, br, div, hr, p, span
+          # - Style: b, big, center, em, i, u, s, small, strike, strong, style, sub, sup
+          # - Tables: table, tbody, td, tfoot, th, thead, tr
+          # Blocked HTML elements: These elements and their contents are removed from HTML payloads.
+          #
+          # - Document headers: head, title
+          # - Embeds: audio, embed, object, source, video
+          # - Frames: frame, frameset
+          # - Scripting: applet, script
+          # Other elements: Any elements that aren't listed are removed, but their contents are preserved.
+      "location": { # A geographic location that can be associated with a timeline item. # The geographic location associated with this item.
+        "kind": "mirror#location", # The type of resource. This is always mirror#location.
+        "displayName": "A String", # The name to be displayed. This may be a business name or a user-defined place, such as "Home".
+        "timestamp": "A String", # The time at which this location was captured, formatted according to RFC 3339.
+        "longitude": 3.14, # The longitude, in degrees.
+        "address": "A String", # The full address of the location.
+        "latitude": 3.14, # The latitude, in degrees.
+        "id": "A String", # The ID of the location.
+        "accuracy": 3.14, # The accuracy of the location fix in meters.
+      },
+      "sourceItemId": "A String", # Opaque string you can use to map a timeline item to data in your own service.
+      "inReplyTo": "A String", # If this item was generated as a reply to another item, this field will be set to the ID of the item being replied to. This can be used to attach a reply to the appropriate conversation or post.
+      "updated": "A String", # The time at which this item was last modified, formatted according to RFC 3339.
+      "canonicalUrl": "A String", # A canonical URL pointing to the canonical/high quality version of the data represented by the timeline item.
+      "recipients": [ # A list of users or groups that this item has been shared with.
+        { # A person or group that can be used as a creator or a contact.
+            "kind": "mirror#contact", # The type of resource. This is always mirror#contact.
+            "displayName": "A String", # The name to display for this contact.
+            "acceptTypes": [ # A list of MIME types that a contact supports. The contact will be shown to the user if any of its acceptTypes matches any of the types of the attachments on the item. If no acceptTypes are given, the contact will be shown for all items.
+              "A String",
+            ],
+            "imageUrls": [ # Set of image URLs to display for a contact. Most contacts will have a single image, but a "group" contact may include up to 8 image URLs and they will be resized and cropped into a mosaic on the client.
+              "A String",
+            ],
+            "priority": 42, # Priority for the contact to determine ordering in a list of contacts. Contacts with higher priorities will be shown before ones with lower priorities.
+            "source": "A String", # The ID of the application that created this contact. This is populated by the API
+            "phoneNumber": "A String", # Primary phone number for the contact. This can be a fully-qualified number, with country calling code and area code, or a local number.
+            "sharingFeatures": [ # A list of sharing features that a contact can handle. Allowed values are:
+                # - ADD_CAPTION
+              "A String",
+            ],
+            "type": "A String", # The type for this contact. This is used for sorting in UIs. Allowed values are:
+                # - INDIVIDUAL - Represents a single person. This is the default.
+                # - GROUP - Represents more than a single person.
+            "acceptCommands": [ # A list of voice menu commands that a contact can handle. Glass shows up to three contacts for each voice menu command. If there are more than that, the three contacts with the highest priority are shown for that particular command.
+              { # A single menu command that is part of a Contact.
+                "type": "A String", # The type of operation this command corresponds to. Allowed values are:
+                    # - TAKE_A_NOTE - Shares a timeline item with the transcription of user speech from the "Take a note" voice menu command.
+                    # - POST_AN_UPDATE - Shares a timeline item with the transcription of user speech from the "Post an update" voice menu command.
+              },
+            ],
+            "id": "A String", # An ID for this contact. This is generated by the application and is treated as an opaque token.
+            "speakableName": "A String", # Name of this contact as it should be pronounced. If this contact's name must be spoken as part of a voice disambiguation menu, this name is used as the expected pronunciation. This is useful for contact names with unpronounceable characters or whose display spelling is otherwise not phonetic.
+          },
+      ],
+      "kind": "mirror#timelineItem", # The type of resource. This is always mirror#timelineItem.
+      "created": "A String", # The time at which this item was created, formatted according to RFC 3339.
+      "pinScore": 42, # For pinned items, this determines the order in which the item is displayed in the timeline, with a higher score appearing closer to the clock. Note: setting this field is currently not supported.
+      "speakableType": "A String", # A speakable description of the type of this item. This will be announced to the user prior to reading the content of the item in cases where the additional context is useful, for example when the user requests that the item be read aloud following a notification.
+          #
+          # This should be a short, simple noun phrase such as "Email", "Text message", or "Daily Planet News Update".
+          #
+          # Glassware are encouraged to populate this field for every timeline item, even if the item does not contain speakableText or text so that the user can learn the type of the item without looking at the screen.
+      "selfLink": "A String", # A URL that can be used to retrieve this item.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(orderBy=None, includeDeleted=None, pageToken=None, maxResults=None, pinnedOnly=None, sourceItemId=None, bundleId=None)</code>
+  <pre>Retrieves a list of timeline items for the authenticated user.
+
+Args:
+  orderBy: string, Controls the order in which timeline items are returned.
+    Allowed values
+      displayTime - Results will be ordered by displayTime (default). This is the same ordering as is used in the timeline on the device.
+      writeTime - Results will be ordered by the time at which they were last written to the data store.
+  includeDeleted: boolean, If true, tombstone records for deleted items will be returned.
+  pageToken: string, Token for the page of results to return.
+  maxResults: integer, The maximum number of items to include in the response, used for paging.
+  pinnedOnly: boolean, If true, only pinned items will be returned.
+  sourceItemId: string, If provided, only items with the given sourceItemId will be returned.
+  bundleId: string, If provided, only items with the given bundleId will be returned.
+
+Returns:
+  An object of the form:
+
+    { # A list of timeline items. This is the response from the server to GET requests on the timeline collection.
+    "nextPageToken": "A String", # The next page token. Provide this as the pageToken parameter in the request to retrieve the next page of results.
+    "items": [ # Items in the timeline.
+      { # Each item in the user's timeline is represented as a TimelineItem JSON structure, described below.
+          "attachments": [ # A list of media attachments associated with this item. As a convenience, you can refer to attachments in your HTML payloads with the attachment or cid scheme. For example:
+              # - attachment: <img src="attachment:attachment_index"> where attachment_index is the 0-based index of this array.
+              # - cid: <img src="cid:attachment_id"> where attachment_id is the ID of the attachment.
+            { # Represents media content, such as a photo, that can be attached to a timeline item.
+              "contentUrl": "A String", # The URL for the content.
+              "contentType": "A String", # The MIME type of the attachment.
+              "id": "A String", # The ID of the attachment.
+              "isProcessingContent": True or False, # Indicates that the contentUrl is not available because the attachment content is still being processed. If the caller wishes to retrieve the content, it should try again later.
+            },
+          ],
+          "displayTime": "A String", # The time that should be displayed when this item is viewed in the timeline, formatted according to RFC 3339. This user's timeline is sorted chronologically on display time, so this will also determine where the item is displayed in the timeline. If not set by the service, the display time defaults to the updated time.
+          "creator": { # A person or group that can be used as a creator or a contact. # The user or group that created this item.
+              "kind": "mirror#contact", # The type of resource. This is always mirror#contact.
+              "displayName": "A String", # The name to display for this contact.
+              "acceptTypes": [ # A list of MIME types that a contact supports. The contact will be shown to the user if any of its acceptTypes matches any of the types of the attachments on the item. If no acceptTypes are given, the contact will be shown for all items.
+                "A String",
+              ],
+              "imageUrls": [ # Set of image URLs to display for a contact. Most contacts will have a single image, but a "group" contact may include up to 8 image URLs and they will be resized and cropped into a mosaic on the client.
+                "A String",
+              ],
+              "priority": 42, # Priority for the contact to determine ordering in a list of contacts. Contacts with higher priorities will be shown before ones with lower priorities.
+              "source": "A String", # The ID of the application that created this contact. This is populated by the API
+              "phoneNumber": "A String", # Primary phone number for the contact. This can be a fully-qualified number, with country calling code and area code, or a local number.
+              "sharingFeatures": [ # A list of sharing features that a contact can handle. Allowed values are:
+                  # - ADD_CAPTION
+                "A String",
+              ],
+              "type": "A String", # The type for this contact. This is used for sorting in UIs. Allowed values are:
+                  # - INDIVIDUAL - Represents a single person. This is the default.
+                  # - GROUP - Represents more than a single person.
+              "acceptCommands": [ # A list of voice menu commands that a contact can handle. Glass shows up to three contacts for each voice menu command. If there are more than that, the three contacts with the highest priority are shown for that particular command.
+                { # A single menu command that is part of a Contact.
+                  "type": "A String", # The type of operation this command corresponds to. Allowed values are:
+                      # - TAKE_A_NOTE - Shares a timeline item with the transcription of user speech from the "Take a note" voice menu command.
+                      # - POST_AN_UPDATE - Shares a timeline item with the transcription of user speech from the "Post an update" voice menu command.
+                },
+              ],
+              "id": "A String", # An ID for this contact. This is generated by the application and is treated as an opaque token.
+              "speakableName": "A String", # Name of this contact as it should be pronounced. If this contact's name must be spoken as part of a voice disambiguation menu, this name is used as the expected pronunciation. This is useful for contact names with unpronounceable characters or whose display spelling is otherwise not phonetic.
+            },
+          "text": "A String", # Text content of this item.
+          "menuItems": [ # A list of menu items that will be presented to the user when this item is selected in the timeline.
+            { # A custom menu item that can be presented to the user by a timeline item.
+              "action": "A String", # Controls the behavior when the user picks the menu option. Allowed values are:
+                  # - CUSTOM - Custom action set by the service. When the user selects this menuItem, the API triggers a notification to your callbackUrl with the userActions.type set to CUSTOM and the userActions.payload set to the ID of this menu item. This is the default value.
+                  # - Built-in actions:
+                  # - REPLY - Initiate a reply to the timeline item using the voice recording UI. The creator attribute must be set in the timeline item for this menu to be available.
+                  # - REPLY_ALL - Same behavior as REPLY. The original timeline item's recipients will be added to the reply item.
+                  # - DELETE - Delete the timeline item.
+                  # - SHARE - Share the timeline item with the available contacts.
+                  # - READ_ALOUD - Read the timeline item's speakableText aloud; if this field is not set, read the text field; if none of those fields are set, this menu item is ignored.
+                  # - GET_MEDIA_INPUT - Allow users to provide media payloads to Glassware from a menu item (currently, only transcribed text from voice input is supported). Subscribe to notifications when users invoke this menu item to receive the timeline item ID. Retrieve the media from the timeline item in the payload property.
+                  # - VOICE_CALL - Initiate a phone call using the timeline item's creator.phoneNumber attribute as recipient.
+                  # - NAVIGATE - Navigate to the timeline item's location.
+                  # - TOGGLE_PINNED - Toggle the isPinned state of the timeline item.
+                  # - OPEN_URI - Open the payload of the menu item in the browser.
+                  # - PLAY_VIDEO - Open the payload of the menu item in the Glass video player.
+                  # - SEND_MESSAGE - Initiate sending a message to the timeline item's creator:
+                  # - If the creator.phoneNumber is set and Glass is connected to an Android phone, the message is an SMS.
+                  # - Otherwise, if the creator.email is set, the message is an email.
+              "removeWhenSelected": True or False, # If set to true on a CUSTOM menu item, that item will be removed from the menu after it is selected.
+              "values": [ # For CUSTOM items, a list of values controlling the appearance of the menu item in each of its states. A value for the DEFAULT state must be provided. If the PENDING or CONFIRMED states are missing, they will not be shown.
+                { # A single value that is part of a MenuItem.
+                  "iconUrl": "A String", # URL of an icon to display with the menu item.
+                  "state": "A String", # The state that this value applies to. Allowed values are:
+                      # - DEFAULT - Default value shown when displayed in the menuItems list.
+                      # - PENDING - Value shown when the menuItem has been selected by the user but can still be cancelled.
+                      # - CONFIRMED - Value shown when the menuItem has been selected by the user and can no longer be cancelled.
+                  "displayName": "A String", # The name to display for the menu item. If you specify this property for a built-in menu item, the default contextual voice command for that menu item is not shown.
+                },
+              ],
+              "id": "A String", # The ID for this menu item. This is generated by the application and is treated as an opaque token.
+              "payload": "A String", # A generic payload whose meaning changes depending on this MenuItem's action.
+                  # - When the action is OPEN_URI, the payload is the URL of the website to view.
+                  # - When the action is PLAY_VIDEO, the payload is the streaming URL of the video
+                  # - When the action is GET_MEDIA_INPUT, the payload is the text transcription of a user's speech input
+            },
+          ],
+          "isBundleCover": True or False, # Whether this item is a bundle cover.
+              #
+              # If an item is marked as a bundle cover, it will be the entry point to the bundle of items that have the same bundleId as that item. It will be shown only on the main timeline — not within the opened bundle.
+              #
+              # On the main timeline, items that are shown are:
+              # - Items that have isBundleCover set to true
+              # - Items that do not have a bundleId  In a bundle sub-timeline, items that are shown are:
+              # - Items that have the bundleId in question AND isBundleCover set to false
+          "etag": "A String", # ETag for this item.
+          "id": "A String", # The ID of the timeline item. This is unique within a user's timeline.
+          "isDeleted": True or False, # When true, indicates this item is deleted, and only the ID property is set.
+          "bundleId": "A String", # The bundle ID for this item. Services can specify a bundleId to group many items together. They appear under a single top-level item on the device.
+          "isPinned": True or False, # When true, indicates this item is pinned, which means it's grouped alongside "active" items like navigation and hangouts, on the opposite side of the home screen from historical (non-pinned) timeline items. You can allow the user to toggle the value of this property with the TOGGLE_PINNED built-in menu item.
+          "title": "A String", # The title of this item.
+          "notification": { # Controls how notifications for a timeline item are presented to the user. # Controls how notifications for this item are presented on the device. If this is missing, no notification will be generated.
+            "level": "A String", # Describes how important the notification is. Allowed values are:
+                # - DEFAULT - Notifications of default importance. A chime will be played to alert users.
+            "deliveryTime": "A String", # The time at which the notification should be delivered.
+          },
+          "speakableText": "A String", # The speakable version of the content of this item. Along with the READ_ALOUD menu item, use this field to provide text that would be clearer when read aloud, or to provide extended information to what is displayed visually on Glass.
+              #
+              # Glassware should also specify the speakableType field, which will be spoken before this text in cases where the additional context is useful, for example when the user requests that the item be read aloud following a notification.
+          "html": "A String", # HTML content for this item. If both text and html are provided for an item, the html will be rendered in the timeline.
+              # Allowed HTML elements - You can use these elements in your timeline cards.
+              #
+              # - Headers: h1, h2, h3, h4, h5, h6
+              # - Images: img
+              # - Lists: li, ol, ul
+              # - HTML5 semantics: article, aside, details, figure, figcaption, footer, header, nav, section, summary, time
+              # - Structural: blockquote, br, div, hr, p, span
+              # - Style: b, big, center, em, i, u, s, small, strike, strong, style, sub, sup
+              # - Tables: table, tbody, td, tfoot, th, thead, tr
+              # Blocked HTML elements: These elements and their contents are removed from HTML payloads.
+              #
+              # - Document headers: head, title
+              # - Embeds: audio, embed, object, source, video
+              # - Frames: frame, frameset
+              # - Scripting: applet, script
+              # Other elements: Any elements that aren't listed are removed, but their contents are preserved.
+          "location": { # A geographic location that can be associated with a timeline item. # The geographic location associated with this item.
+            "kind": "mirror#location", # The type of resource. This is always mirror#location.
+            "displayName": "A String", # The name to be displayed. This may be a business name or a user-defined place, such as "Home".
+            "timestamp": "A String", # The time at which this location was captured, formatted according to RFC 3339.
+            "longitude": 3.14, # The longitude, in degrees.
+            "address": "A String", # The full address of the location.
+            "latitude": 3.14, # The latitude, in degrees.
+            "id": "A String", # The ID of the location.
+            "accuracy": 3.14, # The accuracy of the location fix in meters.
+          },
+          "sourceItemId": "A String", # Opaque string you can use to map a timeline item to data in your own service.
+          "inReplyTo": "A String", # If this item was generated as a reply to another item, this field will be set to the ID of the item being replied to. This can be used to attach a reply to the appropriate conversation or post.
+          "updated": "A String", # The time at which this item was last modified, formatted according to RFC 3339.
+          "canonicalUrl": "A String", # A canonical URL pointing to the canonical/high quality version of the data represented by the timeline item.
+          "recipients": [ # A list of users or groups that this item has been shared with.
+            { # A person or group that can be used as a creator or a contact.
+                "kind": "mirror#contact", # The type of resource. This is always mirror#contact.
+                "displayName": "A String", # The name to display for this contact.
+                "acceptTypes": [ # A list of MIME types that a contact supports. The contact will be shown to the user if any of its acceptTypes matches any of the types of the attachments on the item. If no acceptTypes are given, the contact will be shown for all items.
+                  "A String",
+                ],
+                "imageUrls": [ # Set of image URLs to display for a contact. Most contacts will have a single image, but a "group" contact may include up to 8 image URLs and they will be resized and cropped into a mosaic on the client.
+                  "A String",
+                ],
+                "priority": 42, # Priority for the contact to determine ordering in a list of contacts. Contacts with higher priorities will be shown before ones with lower priorities.
+                "source": "A String", # The ID of the application that created this contact. This is populated by the API
+                "phoneNumber": "A String", # Primary phone number for the contact. This can be a fully-qualified number, with country calling code and area code, or a local number.
+                "sharingFeatures": [ # A list of sharing features that a contact can handle. Allowed values are:
+                    # - ADD_CAPTION
+                  "A String",
+                ],
+                "type": "A String", # The type for this contact. This is used for sorting in UIs. Allowed values are:
+                    # - INDIVIDUAL - Represents a single person. This is the default.
+                    # - GROUP - Represents more than a single person.
+                "acceptCommands": [ # A list of voice menu commands that a contact can handle. Glass shows up to three contacts for each voice menu command. If there are more than that, the three contacts with the highest priority are shown for that particular command.
+                  { # A single menu command that is part of a Contact.
+                    "type": "A String", # The type of operation this command corresponds to. Allowed values are:
+                        # - TAKE_A_NOTE - Shares a timeline item with the transcription of user speech from the "Take a note" voice menu command.
+                        # - POST_AN_UPDATE - Shares a timeline item with the transcription of user speech from the "Post an update" voice menu command.
+                  },
+                ],
+                "id": "A String", # An ID for this contact. This is generated by the application and is treated as an opaque token.
+                "speakableName": "A String", # Name of this contact as it should be pronounced. If this contact's name must be spoken as part of a voice disambiguation menu, this name is used as the expected pronunciation. This is useful for contact names with unpronounceable characters or whose display spelling is otherwise not phonetic.
+              },
+          ],
+          "kind": "mirror#timelineItem", # The type of resource. This is always mirror#timelineItem.
+          "created": "A String", # The time at which this item was created, formatted according to RFC 3339.
+          "pinScore": 42, # For pinned items, this determines the order in which the item is displayed in the timeline, with a higher score appearing closer to the clock. Note: setting this field is currently not supported.
+          "speakableType": "A String", # A speakable description of the type of this item. This will be announced to the user prior to reading the content of the item in cases where the additional context is useful, for example when the user requests that the item be read aloud following a notification.
+              #
+              # This should be a short, simple noun phrase such as "Email", "Text message", or "Daily Planet News Update".
+              #
+              # Glassware are encouraged to populate this field for every timeline item, even if the item does not contain speakableText or text so that the user can learn the type of the item without looking at the screen.
+          "selfLink": "A String", # A URL that can be used to retrieve this item.
+        },
+    ],
+    "kind": "mirror#timeline", # The type of resource. This is always mirror#timeline.
+  }</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(id, body)</code>
+  <pre>Updates a timeline item in place. This method supports patch semantics.
+
+Args:
+  id: string, The ID of the timeline item. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Each item in the user's timeline is represented as a TimelineItem JSON structure, described below.
+    "attachments": [ # A list of media attachments associated with this item. As a convenience, you can refer to attachments in your HTML payloads with the attachment or cid scheme. For example:
+        # - attachment: <img src="attachment:attachment_index"> where attachment_index is the 0-based index of this array.
+        # - cid: <img src="cid:attachment_id"> where attachment_id is the ID of the attachment.
+      { # Represents media content, such as a photo, that can be attached to a timeline item.
+        "contentUrl": "A String", # The URL for the content.
+        "contentType": "A String", # The MIME type of the attachment.
+        "id": "A String", # The ID of the attachment.
+        "isProcessingContent": True or False, # Indicates that the contentUrl is not available because the attachment content is still being processed. If the caller wishes to retrieve the content, it should try again later.
+      },
+    ],
+    "displayTime": "A String", # The time that should be displayed when this item is viewed in the timeline, formatted according to RFC 3339. This user's timeline is sorted chronologically on display time, so this will also determine where the item is displayed in the timeline. If not set by the service, the display time defaults to the updated time.
+    "creator": { # A person or group that can be used as a creator or a contact. # The user or group that created this item.
+        "kind": "mirror#contact", # The type of resource. This is always mirror#contact.
+        "displayName": "A String", # The name to display for this contact.
+        "acceptTypes": [ # A list of MIME types that a contact supports. The contact will be shown to the user if any of its acceptTypes matches any of the types of the attachments on the item. If no acceptTypes are given, the contact will be shown for all items.
+          "A String",
+        ],
+        "imageUrls": [ # Set of image URLs to display for a contact. Most contacts will have a single image, but a "group" contact may include up to 8 image URLs and they will be resized and cropped into a mosaic on the client.
+          "A String",
+        ],
+        "priority": 42, # Priority for the contact to determine ordering in a list of contacts. Contacts with higher priorities will be shown before ones with lower priorities.
+        "source": "A String", # The ID of the application that created this contact. This is populated by the API
+        "phoneNumber": "A String", # Primary phone number for the contact. This can be a fully-qualified number, with country calling code and area code, or a local number.
+        "sharingFeatures": [ # A list of sharing features that a contact can handle. Allowed values are:
+            # - ADD_CAPTION
+          "A String",
+        ],
+        "type": "A String", # The type for this contact. This is used for sorting in UIs. Allowed values are:
+            # - INDIVIDUAL - Represents a single person. This is the default.
+            # - GROUP - Represents more than a single person.
+        "acceptCommands": [ # A list of voice menu commands that a contact can handle. Glass shows up to three contacts for each voice menu command. If there are more than that, the three contacts with the highest priority are shown for that particular command.
+          { # A single menu command that is part of a Contact.
+            "type": "A String", # The type of operation this command corresponds to. Allowed values are:
+                # - TAKE_A_NOTE - Shares a timeline item with the transcription of user speech from the "Take a note" voice menu command.
+                # - POST_AN_UPDATE - Shares a timeline item with the transcription of user speech from the "Post an update" voice menu command.
+          },
+        ],
+        "id": "A String", # An ID for this contact. This is generated by the application and is treated as an opaque token.
+        "speakableName": "A String", # Name of this contact as it should be pronounced. If this contact's name must be spoken as part of a voice disambiguation menu, this name is used as the expected pronunciation. This is useful for contact names with unpronounceable characters or whose display spelling is otherwise not phonetic.
+      },
+    "text": "A String", # Text content of this item.
+    "menuItems": [ # A list of menu items that will be presented to the user when this item is selected in the timeline.
+      { # A custom menu item that can be presented to the user by a timeline item.
+        "action": "A String", # Controls the behavior when the user picks the menu option. Allowed values are:
+            # - CUSTOM - Custom action set by the service. When the user selects this menuItem, the API triggers a notification to your callbackUrl with the userActions.type set to CUSTOM and the userActions.payload set to the ID of this menu item. This is the default value.
+            # - Built-in actions:
+            # - REPLY - Initiate a reply to the timeline item using the voice recording UI. The creator attribute must be set in the timeline item for this menu to be available.
+            # - REPLY_ALL - Same behavior as REPLY. The original timeline item's recipients will be added to the reply item.
+            # - DELETE - Delete the timeline item.
+            # - SHARE - Share the timeline item with the available contacts.
+            # - READ_ALOUD - Read the timeline item's speakableText aloud; if this field is not set, read the text field; if none of those fields are set, this menu item is ignored.
+            # - GET_MEDIA_INPUT - Allow users to provide media payloads to Glassware from a menu item (currently, only transcribed text from voice input is supported). Subscribe to notifications when users invoke this menu item to receive the timeline item ID. Retrieve the media from the timeline item in the payload property.
+            # - VOICE_CALL - Initiate a phone call using the timeline item's creator.phoneNumber attribute as recipient.
+            # - NAVIGATE - Navigate to the timeline item's location.
+            # - TOGGLE_PINNED - Toggle the isPinned state of the timeline item.
+            # - OPEN_URI - Open the payload of the menu item in the browser.
+            # - PLAY_VIDEO - Open the payload of the menu item in the Glass video player.
+            # - SEND_MESSAGE - Initiate sending a message to the timeline item's creator:
+            # - If the creator.phoneNumber is set and Glass is connected to an Android phone, the message is an SMS.
+            # - Otherwise, if the creator.email is set, the message is an email.
+        "removeWhenSelected": True or False, # If set to true on a CUSTOM menu item, that item will be removed from the menu after it is selected.
+        "values": [ # For CUSTOM items, a list of values controlling the appearance of the menu item in each of its states. A value for the DEFAULT state must be provided. If the PENDING or CONFIRMED states are missing, they will not be shown.
+          { # A single value that is part of a MenuItem.
+            "iconUrl": "A String", # URL of an icon to display with the menu item.
+            "state": "A String", # The state that this value applies to. Allowed values are:
+                # - DEFAULT - Default value shown when displayed in the menuItems list.
+                # - PENDING - Value shown when the menuItem has been selected by the user but can still be cancelled.
+                # - CONFIRMED - Value shown when the menuItem has been selected by the user and can no longer be cancelled.
+            "displayName": "A String", # The name to display for the menu item. If you specify this property for a built-in menu item, the default contextual voice command for that menu item is not shown.
+          },
+        ],
+        "id": "A String", # The ID for this menu item. This is generated by the application and is treated as an opaque token.
+        "payload": "A String", # A generic payload whose meaning changes depending on this MenuItem's action.
+            # - When the action is OPEN_URI, the payload is the URL of the website to view.
+            # - When the action is PLAY_VIDEO, the payload is the streaming URL of the video
+            # - When the action is GET_MEDIA_INPUT, the payload is the text transcription of a user's speech input
+      },
+    ],
+    "isBundleCover": True or False, # Whether this item is a bundle cover.
+        # 
+        # If an item is marked as a bundle cover, it will be the entry point to the bundle of items that have the same bundleId as that item. It will be shown only on the main timeline — not within the opened bundle.
+        # 
+        # On the main timeline, items that are shown are:
+        # - Items that have isBundleCover set to true
+        # - Items that do not have a bundleId  In a bundle sub-timeline, items that are shown are:
+        # - Items that have the bundleId in question AND isBundleCover set to false
+    "etag": "A String", # ETag for this item.
+    "id": "A String", # The ID of the timeline item. This is unique within a user's timeline.
+    "isDeleted": True or False, # When true, indicates this item is deleted, and only the ID property is set.
+    "bundleId": "A String", # The bundle ID for this item. Services can specify a bundleId to group many items together. They appear under a single top-level item on the device.
+    "isPinned": True or False, # When true, indicates this item is pinned, which means it's grouped alongside "active" items like navigation and hangouts, on the opposite side of the home screen from historical (non-pinned) timeline items. You can allow the user to toggle the value of this property with the TOGGLE_PINNED built-in menu item.
+    "title": "A String", # The title of this item.
+    "notification": { # Controls how notifications for a timeline item are presented to the user. # Controls how notifications for this item are presented on the device. If this is missing, no notification will be generated.
+      "level": "A String", # Describes how important the notification is. Allowed values are:
+          # - DEFAULT - Notifications of default importance. A chime will be played to alert users.
+      "deliveryTime": "A String", # The time at which the notification should be delivered.
+    },
+    "speakableText": "A String", # The speakable version of the content of this item. Along with the READ_ALOUD menu item, use this field to provide text that would be clearer when read aloud, or to provide extended information to what is displayed visually on Glass.
+        # 
+        # Glassware should also specify the speakableType field, which will be spoken before this text in cases where the additional context is useful, for example when the user requests that the item be read aloud following a notification.
+    "html": "A String", # HTML content for this item. If both text and html are provided for an item, the html will be rendered in the timeline.
+        # Allowed HTML elements - You can use these elements in your timeline cards.
+        # 
+        # - Headers: h1, h2, h3, h4, h5, h6
+        # - Images: img
+        # - Lists: li, ol, ul
+        # - HTML5 semantics: article, aside, details, figure, figcaption, footer, header, nav, section, summary, time
+        # - Structural: blockquote, br, div, hr, p, span
+        # - Style: b, big, center, em, i, u, s, small, strike, strong, style, sub, sup
+        # - Tables: table, tbody, td, tfoot, th, thead, tr
+        # Blocked HTML elements: These elements and their contents are removed from HTML payloads.
+        # 
+        # - Document headers: head, title
+        # - Embeds: audio, embed, object, source, video
+        # - Frames: frame, frameset
+        # - Scripting: applet, script
+        # Other elements: Any elements that aren't listed are removed, but their contents are preserved.
+    "location": { # A geographic location that can be associated with a timeline item. # The geographic location associated with this item.
+      "kind": "mirror#location", # The type of resource. This is always mirror#location.
+      "displayName": "A String", # The name to be displayed. This may be a business name or a user-defined place, such as "Home".
+      "timestamp": "A String", # The time at which this location was captured, formatted according to RFC 3339.
+      "longitude": 3.14, # The longitude, in degrees.
+      "address": "A String", # The full address of the location.
+      "latitude": 3.14, # The latitude, in degrees.
+      "id": "A String", # The ID of the location.
+      "accuracy": 3.14, # The accuracy of the location fix in meters.
+    },
+    "sourceItemId": "A String", # Opaque string you can use to map a timeline item to data in your own service.
+    "inReplyTo": "A String", # If this item was generated as a reply to another item, this field will be set to the ID of the item being replied to. This can be used to attach a reply to the appropriate conversation or post.
+    "updated": "A String", # The time at which this item was last modified, formatted according to RFC 3339.
+    "canonicalUrl": "A String", # A canonical URL pointing to the canonical/high quality version of the data represented by the timeline item.
+    "recipients": [ # A list of users or groups that this item has been shared with.
+      { # A person or group that can be used as a creator or a contact.
+          "kind": "mirror#contact", # The type of resource. This is always mirror#contact.
+          "displayName": "A String", # The name to display for this contact.
+          "acceptTypes": [ # A list of MIME types that a contact supports. The contact will be shown to the user if any of its acceptTypes matches any of the types of the attachments on the item. If no acceptTypes are given, the contact will be shown for all items.
+            "A String",
+          ],
+          "imageUrls": [ # Set of image URLs to display for a contact. Most contacts will have a single image, but a "group" contact may include up to 8 image URLs and they will be resized and cropped into a mosaic on the client.
+            "A String",
+          ],
+          "priority": 42, # Priority for the contact to determine ordering in a list of contacts. Contacts with higher priorities will be shown before ones with lower priorities.
+          "source": "A String", # The ID of the application that created this contact. This is populated by the API
+          "phoneNumber": "A String", # Primary phone number for the contact. This can be a fully-qualified number, with country calling code and area code, or a local number.
+          "sharingFeatures": [ # A list of sharing features that a contact can handle. Allowed values are:
+              # - ADD_CAPTION
+            "A String",
+          ],
+          "type": "A String", # The type for this contact. This is used for sorting in UIs. Allowed values are:
+              # - INDIVIDUAL - Represents a single person. This is the default.
+              # - GROUP - Represents more than a single person.
+          "acceptCommands": [ # A list of voice menu commands that a contact can handle. Glass shows up to three contacts for each voice menu command. If there are more than that, the three contacts with the highest priority are shown for that particular command.
+            { # A single menu command that is part of a Contact.
+              "type": "A String", # The type of operation this command corresponds to. Allowed values are:
+                  # - TAKE_A_NOTE - Shares a timeline item with the transcription of user speech from the "Take a note" voice menu command.
+                  # - POST_AN_UPDATE - Shares a timeline item with the transcription of user speech from the "Post an update" voice menu command.
+            },
+          ],
+          "id": "A String", # An ID for this contact. This is generated by the application and is treated as an opaque token.
+          "speakableName": "A String", # Name of this contact as it should be pronounced. If this contact's name must be spoken as part of a voice disambiguation menu, this name is used as the expected pronunciation. This is useful for contact names with unpronounceable characters or whose display spelling is otherwise not phonetic.
+        },
+    ],
+    "kind": "mirror#timelineItem", # The type of resource. This is always mirror#timelineItem.
+    "created": "A String", # The time at which this item was created, formatted according to RFC 3339.
+    "pinScore": 42, # For pinned items, this determines the order in which the item is displayed in the timeline, with a higher score appearing closer to the clock. Note: setting this field is currently not supported.
+    "speakableType": "A String", # A speakable description of the type of this item. This will be announced to the user prior to reading the content of the item in cases where the additional context is useful, for example when the user requests that the item be read aloud following a notification.
+        # 
+        # This should be a short, simple noun phrase such as "Email", "Text message", or "Daily Planet News Update".
+        # 
+        # Glassware are encouraged to populate this field for every timeline item, even if the item does not contain speakableText or text so that the user can learn the type of the item without looking at the screen.
+    "selfLink": "A String", # A URL that can be used to retrieve this item.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Each item in the user's timeline is represented as a TimelineItem JSON structure, described below.
+      "attachments": [ # A list of media attachments associated with this item. As a convenience, you can refer to attachments in your HTML payloads with the attachment or cid scheme. For example:
+          # - attachment: <img src="attachment:attachment_index"> where attachment_index is the 0-based index of this array.
+          # - cid: <img src="cid:attachment_id"> where attachment_id is the ID of the attachment.
+        { # Represents media content, such as a photo, that can be attached to a timeline item.
+          "contentUrl": "A String", # The URL for the content.
+          "contentType": "A String", # The MIME type of the attachment.
+          "id": "A String", # The ID of the attachment.
+          "isProcessingContent": True or False, # Indicates that the contentUrl is not available because the attachment content is still being processed. If the caller wishes to retrieve the content, it should try again later.
+        },
+      ],
+      "displayTime": "A String", # The time that should be displayed when this item is viewed in the timeline, formatted according to RFC 3339. This user's timeline is sorted chronologically on display time, so this will also determine where the item is displayed in the timeline. If not set by the service, the display time defaults to the updated time.
+      "creator": { # A person or group that can be used as a creator or a contact. # The user or group that created this item.
+          "kind": "mirror#contact", # The type of resource. This is always mirror#contact.
+          "displayName": "A String", # The name to display for this contact.
+          "acceptTypes": [ # A list of MIME types that a contact supports. The contact will be shown to the user if any of its acceptTypes matches any of the types of the attachments on the item. If no acceptTypes are given, the contact will be shown for all items.
+            "A String",
+          ],
+          "imageUrls": [ # Set of image URLs to display for a contact. Most contacts will have a single image, but a "group" contact may include up to 8 image URLs and they will be resized and cropped into a mosaic on the client.
+            "A String",
+          ],
+          "priority": 42, # Priority for the contact to determine ordering in a list of contacts. Contacts with higher priorities will be shown before ones with lower priorities.
+          "source": "A String", # The ID of the application that created this contact. This is populated by the API
+          "phoneNumber": "A String", # Primary phone number for the contact. This can be a fully-qualified number, with country calling code and area code, or a local number.
+          "sharingFeatures": [ # A list of sharing features that a contact can handle. Allowed values are:
+              # - ADD_CAPTION
+            "A String",
+          ],
+          "type": "A String", # The type for this contact. This is used for sorting in UIs. Allowed values are:
+              # - INDIVIDUAL - Represents a single person. This is the default.
+              # - GROUP - Represents more than a single person.
+          "acceptCommands": [ # A list of voice menu commands that a contact can handle. Glass shows up to three contacts for each voice menu command. If there are more than that, the three contacts with the highest priority are shown for that particular command.
+            { # A single menu command that is part of a Contact.
+              "type": "A String", # The type of operation this command corresponds to. Allowed values are:
+                  # - TAKE_A_NOTE - Shares a timeline item with the transcription of user speech from the "Take a note" voice menu command.
+                  # - POST_AN_UPDATE - Shares a timeline item with the transcription of user speech from the "Post an update" voice menu command.
+            },
+          ],
+          "id": "A String", # An ID for this contact. This is generated by the application and is treated as an opaque token.
+          "speakableName": "A String", # Name of this contact as it should be pronounced. If this contact's name must be spoken as part of a voice disambiguation menu, this name is used as the expected pronunciation. This is useful for contact names with unpronounceable characters or whose display spelling is otherwise not phonetic.
+        },
+      "text": "A String", # Text content of this item.
+      "menuItems": [ # A list of menu items that will be presented to the user when this item is selected in the timeline.
+        { # A custom menu item that can be presented to the user by a timeline item.
+          "action": "A String", # Controls the behavior when the user picks the menu option. Allowed values are:
+              # - CUSTOM - Custom action set by the service. When the user selects this menuItem, the API triggers a notification to your callbackUrl with the userActions.type set to CUSTOM and the userActions.payload set to the ID of this menu item. This is the default value.
+              # - Built-in actions:
+              # - REPLY - Initiate a reply to the timeline item using the voice recording UI. The creator attribute must be set in the timeline item for this menu to be available.
+              # - REPLY_ALL - Same behavior as REPLY. The original timeline item's recipients will be added to the reply item.
+              # - DELETE - Delete the timeline item.
+              # - SHARE - Share the timeline item with the available contacts.
+              # - READ_ALOUD - Read the timeline item's speakableText aloud; if this field is not set, read the text field; if none of those fields are set, this menu item is ignored.
+              # - GET_MEDIA_INPUT - Allow users to provide media payloads to Glassware from a menu item (currently, only transcribed text from voice input is supported). Subscribe to notifications when users invoke this menu item to receive the timeline item ID. Retrieve the media from the timeline item in the payload property.
+              # - VOICE_CALL - Initiate a phone call using the timeline item's creator.phoneNumber attribute as recipient.
+              # - NAVIGATE - Navigate to the timeline item's location.
+              # - TOGGLE_PINNED - Toggle the isPinned state of the timeline item.
+              # - OPEN_URI - Open the payload of the menu item in the browser.
+              # - PLAY_VIDEO - Open the payload of the menu item in the Glass video player.
+              # - SEND_MESSAGE - Initiate sending a message to the timeline item's creator:
+              # - If the creator.phoneNumber is set and Glass is connected to an Android phone, the message is an SMS.
+              # - Otherwise, if the creator.email is set, the message is an email.
+          "removeWhenSelected": True or False, # If set to true on a CUSTOM menu item, that item will be removed from the menu after it is selected.
+          "values": [ # For CUSTOM items, a list of values controlling the appearance of the menu item in each of its states. A value for the DEFAULT state must be provided. If the PENDING or CONFIRMED states are missing, they will not be shown.
+            { # A single value that is part of a MenuItem.
+              "iconUrl": "A String", # URL of an icon to display with the menu item.
+              "state": "A String", # The state that this value applies to. Allowed values are:
+                  # - DEFAULT - Default value shown when displayed in the menuItems list.
+                  # - PENDING - Value shown when the menuItem has been selected by the user but can still be cancelled.
+                  # - CONFIRMED - Value shown when the menuItem has been selected by the user and can no longer be cancelled.
+              "displayName": "A String", # The name to display for the menu item. If you specify this property for a built-in menu item, the default contextual voice command for that menu item is not shown.
+            },
+          ],
+          "id": "A String", # The ID for this menu item. This is generated by the application and is treated as an opaque token.
+          "payload": "A String", # A generic payload whose meaning changes depending on this MenuItem's action.
+              # - When the action is OPEN_URI, the payload is the URL of the website to view.
+              # - When the action is PLAY_VIDEO, the payload is the streaming URL of the video
+              # - When the action is GET_MEDIA_INPUT, the payload is the text transcription of a user's speech input
+        },
+      ],
+      "isBundleCover": True or False, # Whether this item is a bundle cover.
+          #
+          # If an item is marked as a bundle cover, it will be the entry point to the bundle of items that have the same bundleId as that item. It will be shown only on the main timeline — not within the opened bundle.
+          #
+          # On the main timeline, items that are shown are:
+          # - Items that have isBundleCover set to true
+          # - Items that do not have a bundleId  In a bundle sub-timeline, items that are shown are:
+          # - Items that have the bundleId in question AND isBundleCover set to false
+      "etag": "A String", # ETag for this item.
+      "id": "A String", # The ID of the timeline item. This is unique within a user's timeline.
+      "isDeleted": True or False, # When true, indicates this item is deleted, and only the ID property is set.
+      "bundleId": "A String", # The bundle ID for this item. Services can specify a bundleId to group many items together. They appear under a single top-level item on the device.
+      "isPinned": True or False, # When true, indicates this item is pinned, which means it's grouped alongside "active" items like navigation and hangouts, on the opposite side of the home screen from historical (non-pinned) timeline items. You can allow the user to toggle the value of this property with the TOGGLE_PINNED built-in menu item.
+      "title": "A String", # The title of this item.
+      "notification": { # Controls how notifications for a timeline item are presented to the user. # Controls how notifications for this item are presented on the device. If this is missing, no notification will be generated.
+        "level": "A String", # Describes how important the notification is. Allowed values are:
+            # - DEFAULT - Notifications of default importance. A chime will be played to alert users.
+        "deliveryTime": "A String", # The time at which the notification should be delivered.
+      },
+      "speakableText": "A String", # The speakable version of the content of this item. Along with the READ_ALOUD menu item, use this field to provide text that would be clearer when read aloud, or to provide extended information to what is displayed visually on Glass.
+          #
+          # Glassware should also specify the speakableType field, which will be spoken before this text in cases where the additional context is useful, for example when the user requests that the item be read aloud following a notification.
+      "html": "A String", # HTML content for this item. If both text and html are provided for an item, the html will be rendered in the timeline.
+          # Allowed HTML elements - You can use these elements in your timeline cards.
+          #
+          # - Headers: h1, h2, h3, h4, h5, h6
+          # - Images: img
+          # - Lists: li, ol, ul
+          # - HTML5 semantics: article, aside, details, figure, figcaption, footer, header, nav, section, summary, time
+          # - Structural: blockquote, br, div, hr, p, span
+          # - Style: b, big, center, em, i, u, s, small, strike, strong, style, sub, sup
+          # - Tables: table, tbody, td, tfoot, th, thead, tr
+          # Blocked HTML elements: These elements and their contents are removed from HTML payloads.
+          #
+          # - Document headers: head, title
+          # - Embeds: audio, embed, object, source, video
+          # - Frames: frame, frameset
+          # - Scripting: applet, script
+          # Other elements: Any elements that aren't listed are removed, but their contents are preserved.
+      "location": { # A geographic location that can be associated with a timeline item. # The geographic location associated with this item.
+        "kind": "mirror#location", # The type of resource. This is always mirror#location.
+        "displayName": "A String", # The name to be displayed. This may be a business name or a user-defined place, such as "Home".
+        "timestamp": "A String", # The time at which this location was captured, formatted according to RFC 3339.
+        "longitude": 3.14, # The longitude, in degrees.
+        "address": "A String", # The full address of the location.
+        "latitude": 3.14, # The latitude, in degrees.
+        "id": "A String", # The ID of the location.
+        "accuracy": 3.14, # The accuracy of the location fix in meters.
+      },
+      "sourceItemId": "A String", # Opaque string you can use to map a timeline item to data in your own service.
+      "inReplyTo": "A String", # If this item was generated as a reply to another item, this field will be set to the ID of the item being replied to. This can be used to attach a reply to the appropriate conversation or post.
+      "updated": "A String", # The time at which this item was last modified, formatted according to RFC 3339.
+      "canonicalUrl": "A String", # A canonical URL pointing to the canonical/high quality version of the data represented by the timeline item.
+      "recipients": [ # A list of users or groups that this item has been shared with.
+        { # A person or group that can be used as a creator or a contact.
+            "kind": "mirror#contact", # The type of resource. This is always mirror#contact.
+            "displayName": "A String", # The name to display for this contact.
+            "acceptTypes": [ # A list of MIME types that a contact supports. The contact will be shown to the user if any of its acceptTypes matches any of the types of the attachments on the item. If no acceptTypes are given, the contact will be shown for all items.
+              "A String",
+            ],
+            "imageUrls": [ # Set of image URLs to display for a contact. Most contacts will have a single image, but a "group" contact may include up to 8 image URLs and they will be resized and cropped into a mosaic on the client.
+              "A String",
+            ],
+            "priority": 42, # Priority for the contact to determine ordering in a list of contacts. Contacts with higher priorities will be shown before ones with lower priorities.
+            "source": "A String", # The ID of the application that created this contact. This is populated by the API
+            "phoneNumber": "A String", # Primary phone number for the contact. This can be a fully-qualified number, with country calling code and area code, or a local number.
+            "sharingFeatures": [ # A list of sharing features that a contact can handle. Allowed values are:
+                # - ADD_CAPTION
+              "A String",
+            ],
+            "type": "A String", # The type for this contact. This is used for sorting in UIs. Allowed values are:
+                # - INDIVIDUAL - Represents a single person. This is the default.
+                # - GROUP - Represents more than a single person.
+            "acceptCommands": [ # A list of voice menu commands that a contact can handle. Glass shows up to three contacts for each voice menu command. If there are more than that, the three contacts with the highest priority are shown for that particular command.
+              { # A single menu command that is part of a Contact.
+                "type": "A String", # The type of operation this command corresponds to. Allowed values are:
+                    # - TAKE_A_NOTE - Shares a timeline item with the transcription of user speech from the "Take a note" voice menu command.
+                    # - POST_AN_UPDATE - Shares a timeline item with the transcription of user speech from the "Post an update" voice menu command.
+              },
+            ],
+            "id": "A String", # An ID for this contact. This is generated by the application and is treated as an opaque token.
+            "speakableName": "A String", # Name of this contact as it should be pronounced. If this contact's name must be spoken as part of a voice disambiguation menu, this name is used as the expected pronunciation. This is useful for contact names with unpronounceable characters or whose display spelling is otherwise not phonetic.
+          },
+      ],
+      "kind": "mirror#timelineItem", # The type of resource. This is always mirror#timelineItem.
+      "created": "A String", # The time at which this item was created, formatted according to RFC 3339.
+      "pinScore": 42, # For pinned items, this determines the order in which the item is displayed in the timeline, with a higher score appearing closer to the clock. Note: setting this field is currently not supported.
+      "speakableType": "A String", # A speakable description of the type of this item. This will be announced to the user prior to reading the content of the item in cases where the additional context is useful, for example when the user requests that the item be read aloud following a notification.
+          #
+          # This should be a short, simple noun phrase such as "Email", "Text message", or "Daily Planet News Update".
+          #
+          # Glassware are encouraged to populate this field for every timeline item, even if the item does not contain speakableText or text so that the user can learn the type of the item without looking at the screen.
+      "selfLink": "A String", # A URL that can be used to retrieve this item.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(id, body=None, media_body=None)</code>
+  <pre>Updates a timeline item in place.
+
+Args:
+  id: string, The ID of the timeline item. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Each item in the user's timeline is represented as a TimelineItem JSON structure, described below.
+    "attachments": [ # A list of media attachments associated with this item. As a convenience, you can refer to attachments in your HTML payloads with the attachment or cid scheme. For example:
+        # - attachment: <img src="attachment:attachment_index"> where attachment_index is the 0-based index of this array.
+        # - cid: <img src="cid:attachment_id"> where attachment_id is the ID of the attachment.
+      { # Represents media content, such as a photo, that can be attached to a timeline item.
+        "contentUrl": "A String", # The URL for the content.
+        "contentType": "A String", # The MIME type of the attachment.
+        "id": "A String", # The ID of the attachment.
+        "isProcessingContent": True or False, # Indicates that the contentUrl is not available because the attachment content is still being processed. If the caller wishes to retrieve the content, it should try again later.
+      },
+    ],
+    "displayTime": "A String", # The time that should be displayed when this item is viewed in the timeline, formatted according to RFC 3339. This user's timeline is sorted chronologically on display time, so this will also determine where the item is displayed in the timeline. If not set by the service, the display time defaults to the updated time.
+    "creator": { # A person or group that can be used as a creator or a contact. # The user or group that created this item.
+        "kind": "mirror#contact", # The type of resource. This is always mirror#contact.
+        "displayName": "A String", # The name to display for this contact.
+        "acceptTypes": [ # A list of MIME types that a contact supports. The contact will be shown to the user if any of its acceptTypes matches any of the types of the attachments on the item. If no acceptTypes are given, the contact will be shown for all items.
+          "A String",
+        ],
+        "imageUrls": [ # Set of image URLs to display for a contact. Most contacts will have a single image, but a "group" contact may include up to 8 image URLs and they will be resized and cropped into a mosaic on the client.
+          "A String",
+        ],
+        "priority": 42, # Priority for the contact to determine ordering in a list of contacts. Contacts with higher priorities will be shown before ones with lower priorities.
+        "source": "A String", # The ID of the application that created this contact. This is populated by the API
+        "phoneNumber": "A String", # Primary phone number for the contact. This can be a fully-qualified number, with country calling code and area code, or a local number.
+        "sharingFeatures": [ # A list of sharing features that a contact can handle. Allowed values are:
+            # - ADD_CAPTION
+          "A String",
+        ],
+        "type": "A String", # The type for this contact. This is used for sorting in UIs. Allowed values are:
+            # - INDIVIDUAL - Represents a single person. This is the default.
+            # - GROUP - Represents more than a single person.
+        "acceptCommands": [ # A list of voice menu commands that a contact can handle. Glass shows up to three contacts for each voice menu command. If there are more than that, the three contacts with the highest priority are shown for that particular command.
+          { # A single menu command that is part of a Contact.
+            "type": "A String", # The type of operation this command corresponds to. Allowed values are:
+                # - TAKE_A_NOTE - Shares a timeline item with the transcription of user speech from the "Take a note" voice menu command.
+                # - POST_AN_UPDATE - Shares a timeline item with the transcription of user speech from the "Post an update" voice menu command.
+          },
+        ],
+        "id": "A String", # An ID for this contact. This is generated by the application and is treated as an opaque token.
+        "speakableName": "A String", # Name of this contact as it should be pronounced. If this contact's name must be spoken as part of a voice disambiguation menu, this name is used as the expected pronunciation. This is useful for contact names with unpronounceable characters or whose display spelling is otherwise not phonetic.
+      },
+    "text": "A String", # Text content of this item.
+    "menuItems": [ # A list of menu items that will be presented to the user when this item is selected in the timeline.
+      { # A custom menu item that can be presented to the user by a timeline item.
+        "action": "A String", # Controls the behavior when the user picks the menu option. Allowed values are:
+            # - CUSTOM - Custom action set by the service. When the user selects this menuItem, the API triggers a notification to your callbackUrl with the userActions.type set to CUSTOM and the userActions.payload set to the ID of this menu item. This is the default value.
+            # - Built-in actions:
+            # - REPLY - Initiate a reply to the timeline item using the voice recording UI. The creator attribute must be set in the timeline item for this menu to be available.
+            # - REPLY_ALL - Same behavior as REPLY. The original timeline item's recipients will be added to the reply item.
+            # - DELETE - Delete the timeline item.
+            # - SHARE - Share the timeline item with the available contacts.
+            # - READ_ALOUD - Read the timeline item's speakableText aloud; if this field is not set, read the text field; if none of those fields are set, this menu item is ignored.
+            # - GET_MEDIA_INPUT - Allow users to provide media payloads to Glassware from a menu item (currently, only transcribed text from voice input is supported). Subscribe to notifications when users invoke this menu item to receive the timeline item ID. Retrieve the media from the timeline item in the payload property.
+            # - VOICE_CALL - Initiate a phone call using the timeline item's creator.phoneNumber attribute as recipient.
+            # - NAVIGATE - Navigate to the timeline item's location.
+            # - TOGGLE_PINNED - Toggle the isPinned state of the timeline item.
+            # - OPEN_URI - Open the payload of the menu item in the browser.
+            # - PLAY_VIDEO - Open the payload of the menu item in the Glass video player.
+            # - SEND_MESSAGE - Initiate sending a message to the timeline item's creator:
+            # - If the creator.phoneNumber is set and Glass is connected to an Android phone, the message is an SMS.
+            # - Otherwise, if the creator.email is set, the message is an email.
+        "removeWhenSelected": True or False, # If set to true on a CUSTOM menu item, that item will be removed from the menu after it is selected.
+        "values": [ # For CUSTOM items, a list of values controlling the appearance of the menu item in each of its states. A value for the DEFAULT state must be provided. If the PENDING or CONFIRMED states are missing, they will not be shown.
+          { # A single value that is part of a MenuItem.
+            "iconUrl": "A String", # URL of an icon to display with the menu item.
+            "state": "A String", # The state that this value applies to. Allowed values are:
+                # - DEFAULT - Default value shown when displayed in the menuItems list.
+                # - PENDING - Value shown when the menuItem has been selected by the user but can still be cancelled.
+                # - CONFIRMED - Value shown when the menuItem has been selected by the user and can no longer be cancelled.
+            "displayName": "A String", # The name to display for the menu item. If you specify this property for a built-in menu item, the default contextual voice command for that menu item is not shown.
+          },
+        ],
+        "id": "A String", # The ID for this menu item. This is generated by the application and is treated as an opaque token.
+        "payload": "A String", # A generic payload whose meaning changes depending on this MenuItem's action.
+            # - When the action is OPEN_URI, the payload is the URL of the website to view.
+            # - When the action is PLAY_VIDEO, the payload is the streaming URL of the video
+            # - When the action is GET_MEDIA_INPUT, the payload is the text transcription of a user's speech input
+      },
+    ],
+    "isBundleCover": True or False, # Whether this item is a bundle cover.
+        # 
+        # If an item is marked as a bundle cover, it will be the entry point to the bundle of items that have the same bundleId as that item. It will be shown only on the main timeline — not within the opened bundle.
+        # 
+        # On the main timeline, items that are shown are:
+        # - Items that have isBundleCover set to true
+        # - Items that do not have a bundleId  In a bundle sub-timeline, items that are shown are:
+        # - Items that have the bundleId in question AND isBundleCover set to false
+    "etag": "A String", # ETag for this item.
+    "id": "A String", # The ID of the timeline item. This is unique within a user's timeline.
+    "isDeleted": True or False, # When true, indicates this item is deleted, and only the ID property is set.
+    "bundleId": "A String", # The bundle ID for this item. Services can specify a bundleId to group many items together. They appear under a single top-level item on the device.
+    "isPinned": True or False, # When true, indicates this item is pinned, which means it's grouped alongside "active" items like navigation and hangouts, on the opposite side of the home screen from historical (non-pinned) timeline items. You can allow the user to toggle the value of this property with the TOGGLE_PINNED built-in menu item.
+    "title": "A String", # The title of this item.
+    "notification": { # Controls how notifications for a timeline item are presented to the user. # Controls how notifications for this item are presented on the device. If this is missing, no notification will be generated.
+      "level": "A String", # Describes how important the notification is. Allowed values are:
+          # - DEFAULT - Notifications of default importance. A chime will be played to alert users.
+      "deliveryTime": "A String", # The time at which the notification should be delivered.
+    },
+    "speakableText": "A String", # The speakable version of the content of this item. Along with the READ_ALOUD menu item, use this field to provide text that would be clearer when read aloud, or to provide extended information to what is displayed visually on Glass.
+        # 
+        # Glassware should also specify the speakableType field, which will be spoken before this text in cases where the additional context is useful, for example when the user requests that the item be read aloud following a notification.
+    "html": "A String", # HTML content for this item. If both text and html are provided for an item, the html will be rendered in the timeline.
+        # Allowed HTML elements - You can use these elements in your timeline cards.
+        # 
+        # - Headers: h1, h2, h3, h4, h5, h6
+        # - Images: img
+        # - Lists: li, ol, ul
+        # - HTML5 semantics: article, aside, details, figure, figcaption, footer, header, nav, section, summary, time
+        # - Structural: blockquote, br, div, hr, p, span
+        # - Style: b, big, center, em, i, u, s, small, strike, strong, style, sub, sup
+        # - Tables: table, tbody, td, tfoot, th, thead, tr
+        # Blocked HTML elements: These elements and their contents are removed from HTML payloads.
+        # 
+        # - Document headers: head, title
+        # - Embeds: audio, embed, object, source, video
+        # - Frames: frame, frameset
+        # - Scripting: applet, script
+        # Other elements: Any elements that aren't listed are removed, but their contents are preserved.
+    "location": { # A geographic location that can be associated with a timeline item. # The geographic location associated with this item.
+      "kind": "mirror#location", # The type of resource. This is always mirror#location.
+      "displayName": "A String", # The name to be displayed. This may be a business name or a user-defined place, such as "Home".
+      "timestamp": "A String", # The time at which this location was captured, formatted according to RFC 3339.
+      "longitude": 3.14, # The longitude, in degrees.
+      "address": "A String", # The full address of the location.
+      "latitude": 3.14, # The latitude, in degrees.
+      "id": "A String", # The ID of the location.
+      "accuracy": 3.14, # The accuracy of the location fix in meters.
+    },
+    "sourceItemId": "A String", # Opaque string you can use to map a timeline item to data in your own service.
+    "inReplyTo": "A String", # If this item was generated as a reply to another item, this field will be set to the ID of the item being replied to. This can be used to attach a reply to the appropriate conversation or post.
+    "updated": "A String", # The time at which this item was last modified, formatted according to RFC 3339.
+    "canonicalUrl": "A String", # A canonical URL pointing to the canonical/high quality version of the data represented by the timeline item.
+    "recipients": [ # A list of users or groups that this item has been shared with.
+      { # A person or group that can be used as a creator or a contact.
+          "kind": "mirror#contact", # The type of resource. This is always mirror#contact.
+          "displayName": "A String", # The name to display for this contact.
+          "acceptTypes": [ # A list of MIME types that a contact supports. The contact will be shown to the user if any of its acceptTypes matches any of the types of the attachments on the item. If no acceptTypes are given, the contact will be shown for all items.
+            "A String",
+          ],
+          "imageUrls": [ # Set of image URLs to display for a contact. Most contacts will have a single image, but a "group" contact may include up to 8 image URLs and they will be resized and cropped into a mosaic on the client.
+            "A String",
+          ],
+          "priority": 42, # Priority for the contact to determine ordering in a list of contacts. Contacts with higher priorities will be shown before ones with lower priorities.
+          "source": "A String", # The ID of the application that created this contact. This is populated by the API
+          "phoneNumber": "A String", # Primary phone number for the contact. This can be a fully-qualified number, with country calling code and area code, or a local number.
+          "sharingFeatures": [ # A list of sharing features that a contact can handle. Allowed values are:
+              # - ADD_CAPTION
+            "A String",
+          ],
+          "type": "A String", # The type for this contact. This is used for sorting in UIs. Allowed values are:
+              # - INDIVIDUAL - Represents a single person. This is the default.
+              # - GROUP - Represents more than a single person.
+          "acceptCommands": [ # A list of voice menu commands that a contact can handle. Glass shows up to three contacts for each voice menu command. If there are more than that, the three contacts with the highest priority are shown for that particular command.
+            { # A single menu command that is part of a Contact.
+              "type": "A String", # The type of operation this command corresponds to. Allowed values are:
+                  # - TAKE_A_NOTE - Shares a timeline item with the transcription of user speech from the "Take a note" voice menu command.
+                  # - POST_AN_UPDATE - Shares a timeline item with the transcription of user speech from the "Post an update" voice menu command.
+            },
+          ],
+          "id": "A String", # An ID for this contact. This is generated by the application and is treated as an opaque token.
+          "speakableName": "A String", # Name of this contact as it should be pronounced. If this contact's name must be spoken as part of a voice disambiguation menu, this name is used as the expected pronunciation. This is useful for contact names with unpronounceable characters or whose display spelling is otherwise not phonetic.
+        },
+    ],
+    "kind": "mirror#timelineItem", # The type of resource. This is always mirror#timelineItem.
+    "created": "A String", # The time at which this item was created, formatted according to RFC 3339.
+    "pinScore": 42, # For pinned items, this determines the order in which the item is displayed in the timeline, with a higher score appearing closer to the clock. Note: setting this field is currently not supported.
+    "speakableType": "A String", # A speakable description of the type of this item. This will be announced to the user prior to reading the content of the item in cases where the additional context is useful, for example when the user requests that the item be read aloud following a notification.
+        # 
+        # This should be a short, simple noun phrase such as "Email", "Text message", or "Daily Planet News Update".
+        # 
+        # Glassware are encouraged to populate this field for every timeline item, even if the item does not contain speakableText or text so that the user can learn the type of the item without looking at the screen.
+    "selfLink": "A String", # A URL that can be used to retrieve this item.
+  }
+
+  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
+
+Returns:
+  An object of the form:
+
+    { # Each item in the user's timeline is represented as a TimelineItem JSON structure, described below.
+      "attachments": [ # A list of media attachments associated with this item. As a convenience, you can refer to attachments in your HTML payloads with the attachment or cid scheme. For example:
+          # - attachment: <img src="attachment:attachment_index"> where attachment_index is the 0-based index of this array.
+          # - cid: <img src="cid:attachment_id"> where attachment_id is the ID of the attachment.
+        { # Represents media content, such as a photo, that can be attached to a timeline item.
+          "contentUrl": "A String", # The URL for the content.
+          "contentType": "A String", # The MIME type of the attachment.
+          "id": "A String", # The ID of the attachment.
+          "isProcessingContent": True or False, # Indicates that the contentUrl is not available because the attachment content is still being processed. If the caller wishes to retrieve the content, it should try again later.
+        },
+      ],
+      "displayTime": "A String", # The time that should be displayed when this item is viewed in the timeline, formatted according to RFC 3339. This user's timeline is sorted chronologically on display time, so this will also determine where the item is displayed in the timeline. If not set by the service, the display time defaults to the updated time.
+      "creator": { # A person or group that can be used as a creator or a contact. # The user or group that created this item.
+          "kind": "mirror#contact", # The type of resource. This is always mirror#contact.
+          "displayName": "A String", # The name to display for this contact.
+          "acceptTypes": [ # A list of MIME types that a contact supports. The contact will be shown to the user if any of its acceptTypes matches any of the types of the attachments on the item. If no acceptTypes are given, the contact will be shown for all items.
+            "A String",
+          ],
+          "imageUrls": [ # Set of image URLs to display for a contact. Most contacts will have a single image, but a "group" contact may include up to 8 image URLs and they will be resized and cropped into a mosaic on the client.
+            "A String",
+          ],
+          "priority": 42, # Priority for the contact to determine ordering in a list of contacts. Contacts with higher priorities will be shown before ones with lower priorities.
+          "source": "A String", # The ID of the application that created this contact. This is populated by the API
+          "phoneNumber": "A String", # Primary phone number for the contact. This can be a fully-qualified number, with country calling code and area code, or a local number.
+          "sharingFeatures": [ # A list of sharing features that a contact can handle. Allowed values are:
+              # - ADD_CAPTION
+            "A String",
+          ],
+          "type": "A String", # The type for this contact. This is used for sorting in UIs. Allowed values are:
+              # - INDIVIDUAL - Represents a single person. This is the default.
+              # - GROUP - Represents more than a single person.
+          "acceptCommands": [ # A list of voice menu commands that a contact can handle. Glass shows up to three contacts for each voice menu command. If there are more than that, the three contacts with the highest priority are shown for that particular command.
+            { # A single menu command that is part of a Contact.
+              "type": "A String", # The type of operation this command corresponds to. Allowed values are:
+                  # - TAKE_A_NOTE - Shares a timeline item with the transcription of user speech from the "Take a note" voice menu command.
+                  # - POST_AN_UPDATE - Shares a timeline item with the transcription of user speech from the "Post an update" voice menu command.
+            },
+          ],
+          "id": "A String", # An ID for this contact. This is generated by the application and is treated as an opaque token.
+          "speakableName": "A String", # Name of this contact as it should be pronounced. If this contact's name must be spoken as part of a voice disambiguation menu, this name is used as the expected pronunciation. This is useful for contact names with unpronounceable characters or whose display spelling is otherwise not phonetic.
+        },
+      "text": "A String", # Text content of this item.
+      "menuItems": [ # A list of menu items that will be presented to the user when this item is selected in the timeline.
+        { # A custom menu item that can be presented to the user by a timeline item.
+          "action": "A String", # Controls the behavior when the user picks the menu option. Allowed values are:
+              # - CUSTOM - Custom action set by the service. When the user selects this menuItem, the API triggers a notification to your callbackUrl with the userActions.type set to CUSTOM and the userActions.payload set to the ID of this menu item. This is the default value.
+              # - Built-in actions:
+              # - REPLY - Initiate a reply to the timeline item using the voice recording UI. The creator attribute must be set in the timeline item for this menu to be available.
+              # - REPLY_ALL - Same behavior as REPLY. The original timeline item's recipients will be added to the reply item.
+              # - DELETE - Delete the timeline item.
+              # - SHARE - Share the timeline item with the available contacts.
+              # - READ_ALOUD - Read the timeline item's speakableText aloud; if this field is not set, read the text field; if none of those fields are set, this menu item is ignored.
+              # - GET_MEDIA_INPUT - Allow users to provide media payloads to Glassware from a menu item (currently, only transcribed text from voice input is supported). Subscribe to notifications when users invoke this menu item to receive the timeline item ID. Retrieve the media from the timeline item in the payload property.
+              # - VOICE_CALL - Initiate a phone call using the timeline item's creator.phoneNumber attribute as recipient.
+              # - NAVIGATE - Navigate to the timeline item's location.
+              # - TOGGLE_PINNED - Toggle the isPinned state of the timeline item.
+              # - OPEN_URI - Open the payload of the menu item in the browser.
+              # - PLAY_VIDEO - Open the payload of the menu item in the Glass video player.
+              # - SEND_MESSAGE - Initiate sending a message to the timeline item's creator:
+              # - If the creator.phoneNumber is set and Glass is connected to an Android phone, the message is an SMS.
+              # - Otherwise, if the creator.email is set, the message is an email.
+          "removeWhenSelected": True or False, # If set to true on a CUSTOM menu item, that item will be removed from the menu after it is selected.
+          "values": [ # For CUSTOM items, a list of values controlling the appearance of the menu item in each of its states. A value for the DEFAULT state must be provided. If the PENDING or CONFIRMED states are missing, they will not be shown.
+            { # A single value that is part of a MenuItem.
+              "iconUrl": "A String", # URL of an icon to display with the menu item.
+              "state": "A String", # The state that this value applies to. Allowed values are:
+                  # - DEFAULT - Default value shown when displayed in the menuItems list.
+                  # - PENDING - Value shown when the menuItem has been selected by the user but can still be cancelled.
+                  # - CONFIRMED - Value shown when the menuItem has been selected by the user and can no longer be cancelled.
+              "displayName": "A String", # The name to display for the menu item. If you specify this property for a built-in menu item, the default contextual voice command for that menu item is not shown.
+            },
+          ],
+          "id": "A String", # The ID for this menu item. This is generated by the application and is treated as an opaque token.
+          "payload": "A String", # A generic payload whose meaning changes depending on this MenuItem's action.
+              # - When the action is OPEN_URI, the payload is the URL of the website to view.
+              # - When the action is PLAY_VIDEO, the payload is the streaming URL of the video
+              # - When the action is GET_MEDIA_INPUT, the payload is the text transcription of a user's speech input
+        },
+      ],
+      "isBundleCover": True or False, # Whether this item is a bundle cover.
+          #
+          # If an item is marked as a bundle cover, it will be the entry point to the bundle of items that have the same bundleId as that item. It will be shown only on the main timeline — not within the opened bundle.
+          #
+          # On the main timeline, items that are shown are:
+          # - Items that have isBundleCover set to true
+          # - Items that do not have a bundleId  In a bundle sub-timeline, items that are shown are:
+          # - Items that have the bundleId in question AND isBundleCover set to false
+      "etag": "A String", # ETag for this item.
+      "id": "A String", # The ID of the timeline item. This is unique within a user's timeline.
+      "isDeleted": True or False, # When true, indicates this item is deleted, and only the ID property is set.
+      "bundleId": "A String", # The bundle ID for this item. Services can specify a bundleId to group many items together. They appear under a single top-level item on the device.
+      "isPinned": True or False, # When true, indicates this item is pinned, which means it's grouped alongside "active" items like navigation and hangouts, on the opposite side of the home screen from historical (non-pinned) timeline items. You can allow the user to toggle the value of this property with the TOGGLE_PINNED built-in menu item.
+      "title": "A String", # The title of this item.
+      "notification": { # Controls how notifications for a timeline item are presented to the user. # Controls how notifications for this item are presented on the device. If this is missing, no notification will be generated.
+        "level": "A String", # Describes how important the notification is. Allowed values are:
+            # - DEFAULT - Notifications of default importance. A chime will be played to alert users.
+        "deliveryTime": "A String", # The time at which the notification should be delivered.
+      },
+      "speakableText": "A String", # The speakable version of the content of this item. Along with the READ_ALOUD menu item, use this field to provide text that would be clearer when read aloud, or to provide extended information to what is displayed visually on Glass.
+          #
+          # Glassware should also specify the speakableType field, which will be spoken before this text in cases where the additional context is useful, for example when the user requests that the item be read aloud following a notification.
+      "html": "A String", # HTML content for this item. If both text and html are provided for an item, the html will be rendered in the timeline.
+          # Allowed HTML elements - You can use these elements in your timeline cards.
+          #
+          # - Headers: h1, h2, h3, h4, h5, h6
+          # - Images: img
+          # - Lists: li, ol, ul
+          # - HTML5 semantics: article, aside, details, figure, figcaption, footer, header, nav, section, summary, time
+          # - Structural: blockquote, br, div, hr, p, span
+          # - Style: b, big, center, em, i, u, s, small, strike, strong, style, sub, sup
+          # - Tables: table, tbody, td, tfoot, th, thead, tr
+          # Blocked HTML elements: These elements and their contents are removed from HTML payloads.
+          #
+          # - Document headers: head, title
+          # - Embeds: audio, embed, object, source, video
+          # - Frames: frame, frameset
+          # - Scripting: applet, script
+          # Other elements: Any elements that aren't listed are removed, but their contents are preserved.
+      "location": { # A geographic location that can be associated with a timeline item. # The geographic location associated with this item.
+        "kind": "mirror#location", # The type of resource. This is always mirror#location.
+        "displayName": "A String", # The name to be displayed. This may be a business name or a user-defined place, such as "Home".
+        "timestamp": "A String", # The time at which this location was captured, formatted according to RFC 3339.
+        "longitude": 3.14, # The longitude, in degrees.
+        "address": "A String", # The full address of the location.
+        "latitude": 3.14, # The latitude, in degrees.
+        "id": "A String", # The ID of the location.
+        "accuracy": 3.14, # The accuracy of the location fix in meters.
+      },
+      "sourceItemId": "A String", # Opaque string you can use to map a timeline item to data in your own service.
+      "inReplyTo": "A String", # If this item was generated as a reply to another item, this field will be set to the ID of the item being replied to. This can be used to attach a reply to the appropriate conversation or post.
+      "updated": "A String", # The time at which this item was last modified, formatted according to RFC 3339.
+      "canonicalUrl": "A String", # A canonical URL pointing to the canonical/high quality version of the data represented by the timeline item.
+      "recipients": [ # A list of users or groups that this item has been shared with.
+        { # A person or group that can be used as a creator or a contact.
+            "kind": "mirror#contact", # The type of resource. This is always mirror#contact.
+            "displayName": "A String", # The name to display for this contact.
+            "acceptTypes": [ # A list of MIME types that a contact supports. The contact will be shown to the user if any of its acceptTypes matches any of the types of the attachments on the item. If no acceptTypes are given, the contact will be shown for all items.
+              "A String",
+            ],
+            "imageUrls": [ # Set of image URLs to display for a contact. Most contacts will have a single image, but a "group" contact may include up to 8 image URLs and they will be resized and cropped into a mosaic on the client.
+              "A String",
+            ],
+            "priority": 42, # Priority for the contact to determine ordering in a list of contacts. Contacts with higher priorities will be shown before ones with lower priorities.
+            "source": "A String", # The ID of the application that created this contact. This is populated by the API
+            "phoneNumber": "A String", # Primary phone number for the contact. This can be a fully-qualified number, with country calling code and area code, or a local number.
+            "sharingFeatures": [ # A list of sharing features that a contact can handle. Allowed values are:
+                # - ADD_CAPTION
+              "A String",
+            ],
+            "type": "A String", # The type for this contact. This is used for sorting in UIs. Allowed values are:
+                # - INDIVIDUAL - Represents a single person. This is the default.
+                # - GROUP - Represents more than a single person.
+            "acceptCommands": [ # A list of voice menu commands that a contact can handle. Glass shows up to three contacts for each voice menu command. If there are more than that, the three contacts with the highest priority are shown for that particular command.
+              { # A single menu command that is part of a Contact.
+                "type": "A String", # The type of operation this command corresponds to. Allowed values are:
+                    # - TAKE_A_NOTE - Shares a timeline item with the transcription of user speech from the "Take a note" voice menu command.
+                    # - POST_AN_UPDATE - Shares a timeline item with the transcription of user speech from the "Post an update" voice menu command.
+              },
+            ],
+            "id": "A String", # An ID for this contact. This is generated by the application and is treated as an opaque token.
+            "speakableName": "A String", # Name of this contact as it should be pronounced. If this contact's name must be spoken as part of a voice disambiguation menu, this name is used as the expected pronunciation. This is useful for contact names with unpronounceable characters or whose display spelling is otherwise not phonetic.
+          },
+      ],
+      "kind": "mirror#timelineItem", # The type of resource. This is always mirror#timelineItem.
+      "created": "A String", # The time at which this item was created, formatted according to RFC 3339.
+      "pinScore": 42, # For pinned items, this determines the order in which the item is displayed in the timeline, with a higher score appearing closer to the clock. Note: setting this field is currently not supported.
+      "speakableType": "A String", # A speakable description of the type of this item. This will be announced to the user prior to reading the content of the item in cases where the additional context is useful, for example when the user requests that the item be read aloud following a notification.
+          #
+          # This should be a short, simple noun phrase such as "Email", "Text message", or "Daily Planet News Update".
+          #
+          # Glassware are encouraged to populate this field for every timeline item, even if the item does not contain speakableText or text so that the user can learn the type of the item without looking at the screen.
+      "selfLink": "A String", # A URL that can be used to retrieve this item.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/oauth2_v2.html b/docs/dyn/oauth2_v2.html
new file mode 100644
index 0000000..8c22fe5
--- /dev/null
+++ b/docs/dyn/oauth2_v2.html
@@ -0,0 +1,109 @@
+<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="oauth2_v2.html">Google OAuth2 API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="oauth2_v2.userinfo.html">userinfo()</a></code>
+</p>
+<p class="firstline">Returns the userinfo Resource.</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="tokeninfo">tokeninfo(access_token=None, id_token=None)</code>
+  <pre>A description of how to use this function
+
+Args:
+  access_token: string, A parameter
+  id_token: string, A parameter
+
+Returns:
+  An object of the form:
+
+    {
+    "issued_to": "A String", # To whom was the token issued to. In general the same as audience.
+    "user_id": "A String", # The Gaia obfuscated user id.
+    "expires_in": 42, # The expiry time of the token, as number of seconds left until expiry.
+    "access_type": "A String", # The access type granted with this token. It can be offline or online.
+    "audience": "A String", # Who is the intended audience for this token. In general the same as issued_to.
+    "scope": "A String", # The space separated list of scopes granted to this token.
+    "email": "A String", # The email address of the user. Present only if the email scope is present in the request.
+    "verified_email": True or False, # Boolean flag which is true if the email address is verified. Present only if the email scope is present in the request.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/oauth2_v2.userinfo.html b/docs/dyn/oauth2_v2.userinfo.html
new file mode 100644
index 0000000..8bc97cc
--- /dev/null
+++ b/docs/dyn/oauth2_v2.userinfo.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="oauth2_v2.html">Google OAuth2 API</a> . <a href="oauth2_v2.userinfo.html">userinfo</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="oauth2_v2.userinfo.v2.html">v2()</a></code>
+</p>
+<p class="firstline">Returns the v2 Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#get">get()</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="get">get()</code>
+  <pre>A description of how to use this function
+
+Args:
+
+Returns:
+  An object of the form:
+
+    {
+    "family_name": "A String", # The user's last name.
+    "name": "A String", # The user's full name.
+    "picture": "A String", # URL of the user's picture image.
+    "locale": "A String", # The user's preferred locale.
+    "gender": "A String", # The user's gender.
+    "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.
+    "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>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/oauth2_v2.userinfo.v2.html b/docs/dyn/oauth2_v2.userinfo.v2.html
new file mode 100644
index 0000000..230b0b3
--- /dev/null
+++ b/docs/dyn/oauth2_v2.userinfo.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="oauth2_v2.html">Google OAuth2 API</a> . <a href="oauth2_v2.userinfo.html">userinfo</a> . <a href="oauth2_v2.userinfo.v2.html">v2</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="oauth2_v2.userinfo.v2.me.html">me()</a></code>
+</p>
+<p class="firstline">Returns the me Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/oauth2_v2.userinfo.v2.me.html b/docs/dyn/oauth2_v2.userinfo.v2.me.html
new file mode 100644
index 0000000..2a1418f
--- /dev/null
+++ b/docs/dyn/oauth2_v2.userinfo.v2.me.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="oauth2_v2.html">Google OAuth2 API</a> . <a href="oauth2_v2.userinfo.html">userinfo</a> . <a href="oauth2_v2.userinfo.v2.html">v2</a> . <a href="oauth2_v2.userinfo.v2.me.html">me</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get()</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="get">get()</code>
+  <pre>A description of how to use this function
+
+Args:
+
+Returns:
+  An object of the form:
+
+    {
+    "family_name": "A String", # The user's last name.
+    "name": "A String", # The user's full name.
+    "picture": "A String", # URL of the user's picture image.
+    "locale": "A String", # The user's preferred locale.
+    "gender": "A String", # The user's gender.
+    "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.
+    "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>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/orkut_v2.acl.html b/docs/dyn/orkut_v2.acl.html
new file mode 100644
index 0000000..26005b7
--- /dev/null
+++ b/docs/dyn/orkut_v2.acl.html
@@ -0,0 +1,91 @@
+<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="orkut_v2.html">Orkut API</a> . <a href="orkut_v2.acl.html">acl</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(activityId, userId)</a></code></p>
+<p class="firstline">Excludes an element from the ACL of the activity.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(activityId, userId)</code>
+  <pre>Excludes an element from the ACL of the activity.
+
+Args:
+  activityId: string, ID of the activity. (required)
+  userId: string, ID of the user to be removed from the activity. (required)
+</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/orkut_v2.activities.html b/docs/dyn/orkut_v2.activities.html
new file mode 100644
index 0000000..b0ae2d0
--- /dev/null
+++ b/docs/dyn/orkut_v2.activities.html
@@ -0,0 +1,291 @@
+<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="orkut_v2.html">Orkut API</a> . <a href="orkut_v2.activities.html">activities</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(activityId)</a></code></p>
+<p class="firstline">Deletes an existing activity, if the access controls allow it.</p>
+<p class="toc_element">
+  <code><a href="#list">list(userId, collection, pageToken=None, hl=None, maxResults=None)</a></code></p>
+<p class="firstline">Retrieves a list of activities.</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(activityId)</code>
+  <pre>Deletes an existing activity, if the access controls allow it.
+
+Args:
+  activityId: string, ID of the activity to remove. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(userId, collection, pageToken=None, hl=None, maxResults=None)</code>
+  <pre>Retrieves a list of activities.
+
+Args:
+  userId: string, The ID of the user whose activities will be listed. Can be me to refer to the viewer (i.e. the authenticated user). (required)
+  collection: string, The collection of activities to list. (required)
+    Allowed values
+      all - All activities created by the specified user that the authenticated user is authorized to view.
+      scraps - The specified user's scrapbook.
+      stream - The specified user's stream feed, intended for consumption. This includes activities posted by people that the user is following, and activities in which the user has been mentioned.
+  pageToken: string, A continuation token that allows pagination.
+  hl: string, Specifies the interface language (host language) of your user interface.
+  maxResults: integer, The maximum number of activities to include in the response.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # The value of pageToken query parameter in activities.list request to get the next page, if there are more to retrieve.
+    "items": [ # List of activities retrieved.
+      {
+        "kind": "orkut#activity", # The kind of activity. Always orkut#activity.
+        "links": [ # Links to resources related to this activity.
+          { # Links to resources related to the parent object.
+            "href": "A String", # URL of the link.
+            "type": "A String", # Media type of the link.
+            "rel": "A String", # Relation between the resource and the parent object.
+            "title": "A String", # Title of the link.
+          },
+        ],
+        "title": "A String", # Title of the activity.
+        "object": { # The activity's object.
+          "content": "A String", # The HTML-formatted content, suitable for display. When updating an activity's content, post the changes to this property, using the value of originalContent as a starting point. If the update is successful, the server adds HTML formatting and responds with this formatted content.
+          "items": [ # The list of additional items.
+            {
+              "displayName": "A String", # The title of the object.
+              "links": [ # Links to other resources related to this object.
+                { # Links to resources related to the parent object.
+                  "href": "A String", # URL of the link.
+                  "type": "A String", # Media type of the link.
+                  "rel": "A String", # Relation between the resource and the parent object.
+                  "title": "A String", # Title of the link.
+                },
+              ],
+              "community": { # The community which is related with this activity, e.g. a joined community.
+                "category": "A String", # The category of the community.
+                "kind": "orkut#community", # Identifies this resource as a community. Value: "orkut#community"
+                "member_count": 42, # The number of users who are part of the community. This number may be approximate, so do not rely on it for iteration.
+                "description": "A String", # The description of the community.
+                "language": "A String", # The official language of the community.
+                "links": [ # List of resources for the community.
+                  { # Links to resources related to the parent object.
+                    "href": "A String", # URL of the link.
+                    "type": "A String", # Media type of the link.
+                    "rel": "A String", # Relation between the resource and the parent object.
+                    "title": "A String", # Title of the link.
+                  },
+                ],
+                "creation_date": "A String", # The time the community was created, in RFC 3339 format.
+                "owner": { # The person who owns the community.
+                  "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+                  "image": { # Image data about the author.
+                    "url": "A String", # A URL that points to a thumbnail photo of the author.
+                  },
+                  "displayName": "A String", # The name of the author, suitable for display.
+                  "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+                },
+                "moderators": [ # The list of moderators of the community.
+                  {
+                    "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+                    "image": { # Image data about the author.
+                      "url": "A String", # A URL that points to a thumbnail photo of the author.
+                    },
+                    "displayName": "A String", # The name of the author, suitable for display.
+                    "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+                  },
+                ],
+                "location": "A String", # The location of the community.
+                "co_owners": [ # The co-owners of the community.
+                  {
+                    "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+                    "image": { # Image data about the author.
+                      "url": "A String", # A URL that points to a thumbnail photo of the author.
+                    },
+                    "displayName": "A String", # The name of the author, suitable for display.
+                    "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+                  },
+                ],
+                "photo_url": "A String", # The photo of the community.
+                "id": 42, # The id of the community.
+                "name": "A String", # The name of the community.
+              },
+              "content": "A String", # The HTML-formatted content, suitable for display. When updating an activity's content, post the changes to this property, using the value of originalContent as a starting point. If the update is successful, the server adds HTML formatting and responds with this formatted content.
+              "person": { # The person who is related with this activity, e.g. an Added User.
+                "name": { # An object that encapsulates the individual components of a person's name.
+                  "givenName": "A String", # The given name (first name) of this person.
+                  "familyName": "A String", # The family name (last name) of this person.
+                },
+                "url": "A String", # The person's profile url. This is adapted from Google+ and was originaly introduced as extra OpenSocial convenience fields.
+                "gender": "A String", # The person's gender. Values include "male", "female", and "other".
+                "image": { # The person's profile photo. This is adapted from Google+ and was originaly introduced as extra OpenSocial convenience fields.
+                  "url": "A String", # The URL of the person's profile photo.
+                },
+                "birthday": "A String", # The person's date of birth, represented as YYYY-MM-DD.
+                "id": "A String", # The person's opensocial ID.
+              },
+              "id": "A String", # The ID for the object.
+              "objectType": "A String", # The object type.
+            },
+          ],
+          "replies": { # Comments in reply to this activity.
+            "totalItems": "A String", # Total number of comments.
+            "items": [ # The list of comments.
+              {
+                "inReplyTo": { # Link to the original activity where this comment was posted.
+                  "type": "A String", # Type of the post on activity stream being commented. Always text/html.
+                  "href": "A String", # Link to the post on activity stream being commented.
+                  "ref": "A String", # Unique identifier of the post on activity stream being commented.
+                  "rel": "inReplyTo", # Relationship between the comment and the post on activity stream being commented. Always inReplyTo.
+                },
+                "kind": "orkut#comment", # Identifies this resource as a comment. Value: "orkut#comment"
+                "links": [ # List of resources for the comment.
+                  { # Links to resources related to the parent object.
+                    "href": "A String", # URL of the link.
+                    "type": "A String", # Media type of the link.
+                    "rel": "A String", # Relation between the resource and the parent object.
+                    "title": "A String", # Title of the link.
+                  },
+                ],
+                "actor": { # The person who posted the comment.
+                  "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+                  "image": { # Image data about the author.
+                    "url": "A String", # A URL that points to a thumbnail photo of the author.
+                  },
+                  "displayName": "A String", # The name of the author, suitable for display.
+                  "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+                },
+                "content": "A String", # The content of the comment in text/html
+                "published": "A String", # The time the comment was initially published, in RFC 3339 format.
+                "id": "A String", # The unique ID for the comment.
+              },
+            ],
+            "url": "A String", # URL for the collection of comments in reply to this activity.
+          },
+          "objectType": "A String", # The type of the object affected by the activity. Clients can use this information to style the rendered activity object differently depending on the content.
+        },
+        "updated": "A String", # The time at which the activity was last updated.
+        "actor": { # The person who performed the activity.
+          "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+          "image": { # Image data about the author.
+            "url": "A String", # A URL that points to a thumbnail photo of the author.
+          },
+          "displayName": "A String", # The name of the author, suitable for display.
+          "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+        },
+        "access": { # Identifies who has access to see this activity.
+          "items": [ # The list of ACL entries.
+            {
+              "type": "A String", # The type of entity to whom access is granted.
+              "id": "A String", # The ID of the entity. For entities of type "person" or "circle", this is the ID of the resource. For other types, this will be unset.
+            },
+          ],
+          "kind": "orkut#acl", # Identifies this resource as an access control list. Value: "orkut#acl"
+          "description": "A String", # Human readable description of the access granted.
+          "totalParticipants": 42, # The total count of participants of the parent resource.
+        },
+        "verb": "A String", # This activity's verb, indicating what action was performed. Possible values are:
+            # - add - User added new content to profile or album, e.g. video, photo.
+            # - post - User publish content to the stream, e.g. status, scrap.
+            # - update - User commented on an activity.
+            # - make-friend - User added a new friend.
+            # - birthday - User has a birthday.
+        "published": "A String", # The time at which the activity was initially published.
+        "id": "A String", # The ID for the activity.
+      },
+    ],
+    "kind": "orkut#activityList", # Identifies this resource as a collection of activities. Value: "orkut#activityList"
+  }</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/orkut_v2.activityVisibility.html b/docs/dyn/orkut_v2.activityVisibility.html
new file mode 100644
index 0000000..c41949a
--- /dev/null
+++ b/docs/dyn/orkut_v2.activityVisibility.html
@@ -0,0 +1,201 @@
+<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="orkut_v2.html">Orkut API</a> . <a href="orkut_v2.activityVisibility.html">activityVisibility</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(activityId)</a></code></p>
+<p class="firstline">Gets the visibility of an existing activity.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(activityId, body)</a></code></p>
+<p class="firstline">Updates the visibility of an existing activity. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(activityId, body)</a></code></p>
+<p class="firstline">Updates the visibility of an existing activity.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(activityId)</code>
+  <pre>Gets the visibility of an existing activity.
+
+Args:
+  activityId: string, ID of the activity to get the visibility. (required)
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "orkut#visibility", # Identifies this resource as a visibility item. Value: "orkut#visibility"
+      "visibility": "A String", # The visibility of the resource. Possible values are:
+          # - default: not hidden by the user
+          # - hidden: hidden
+      "links": [ # List of resources for the visibility item.
+        { # Links to resources related to the parent object.
+          "href": "A String", # URL of the link.
+          "type": "A String", # Media type of the link.
+          "rel": "A String", # Relation between the resource and the parent object.
+          "title": "A String", # Title of the link.
+        },
+      ],
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(activityId, body)</code>
+  <pre>Updates the visibility of an existing activity. This method supports patch semantics.
+
+Args:
+  activityId: string, ID of the activity. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "kind": "orkut#visibility", # Identifies this resource as a visibility item. Value: "orkut#visibility"
+    "visibility": "A String", # The visibility of the resource. Possible values are:
+        # - default: not hidden by the user
+        # - hidden: hidden
+    "links": [ # List of resources for the visibility item.
+      { # Links to resources related to the parent object.
+        "href": "A String", # URL of the link.
+        "type": "A String", # Media type of the link.
+        "rel": "A String", # Relation between the resource and the parent object.
+        "title": "A String", # Title of the link.
+      },
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "orkut#visibility", # Identifies this resource as a visibility item. Value: "orkut#visibility"
+      "visibility": "A String", # The visibility of the resource. Possible values are:
+          # - default: not hidden by the user
+          # - hidden: hidden
+      "links": [ # List of resources for the visibility item.
+        { # Links to resources related to the parent object.
+          "href": "A String", # URL of the link.
+          "type": "A String", # Media type of the link.
+          "rel": "A String", # Relation between the resource and the parent object.
+          "title": "A String", # Title of the link.
+        },
+      ],
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(activityId, body)</code>
+  <pre>Updates the visibility of an existing activity.
+
+Args:
+  activityId: string, ID of the activity. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "kind": "orkut#visibility", # Identifies this resource as a visibility item. Value: "orkut#visibility"
+    "visibility": "A String", # The visibility of the resource. Possible values are:
+        # - default: not hidden by the user
+        # - hidden: hidden
+    "links": [ # List of resources for the visibility item.
+      { # Links to resources related to the parent object.
+        "href": "A String", # URL of the link.
+        "type": "A String", # Media type of the link.
+        "rel": "A String", # Relation between the resource and the parent object.
+        "title": "A String", # Title of the link.
+      },
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "orkut#visibility", # Identifies this resource as a visibility item. Value: "orkut#visibility"
+      "visibility": "A String", # The visibility of the resource. Possible values are:
+          # - default: not hidden by the user
+          # - hidden: hidden
+      "links": [ # List of resources for the visibility item.
+        { # Links to resources related to the parent object.
+          "href": "A String", # URL of the link.
+          "type": "A String", # Media type of the link.
+          "rel": "A String", # Relation between the resource and the parent object.
+          "title": "A String", # Title of the link.
+        },
+      ],
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/orkut_v2.badges.html b/docs/dyn/orkut_v2.badges.html
new file mode 100644
index 0000000..cb9b33d
--- /dev/null
+++ b/docs/dyn/orkut_v2.badges.html
@@ -0,0 +1,136 @@
+<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="orkut_v2.html">Orkut API</a> . <a href="orkut_v2.badges.html">badges</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(userId, badgeId)</a></code></p>
+<p class="firstline">Retrieves a badge from a user.</p>
+<p class="toc_element">
+  <code><a href="#list">list(userId)</a></code></p>
+<p class="firstline">Retrieves the list of visible badges of a user.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(userId, badgeId)</code>
+  <pre>Retrieves a badge from a user.
+
+Args:
+  userId: string, The ID of the user whose badges will be listed. Can be me to refer to caller. (required)
+  badgeId: string, The ID of the badge that will be retrieved. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "badgeSmallLogo": "A String", # The URL for the 24x24 badge logo.
+    "kind": "orkut#badge", # Identifies this resource as a badge. Value: "orkut#badge"
+    "description": "A String", # The description for the badge, suitable for display.
+    "sponsorLogo": "A String", # The URL for the 32x32 badge sponsor logo.
+    "sponsorName": "A String", # The name of the badge sponsor, suitable for display.
+    "badgeLargeLogo": "A String", # The URL for the 64x64 badge logo.
+    "caption": "A String", # The name of the badge, suitable for display.
+    "sponsorUrl": "A String", # The URL for the badge sponsor.
+    "id": "A String", # The unique ID for the badge.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(userId)</code>
+  <pre>Retrieves the list of visible badges of a user.
+
+Args:
+  userId: string, The id of the user whose badges will be listed. Can be me to refer to caller. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "items": [ # List of badges retrieved.
+      {
+        "badgeSmallLogo": "A String", # The URL for the 24x24 badge logo.
+        "kind": "orkut#badge", # Identifies this resource as a badge. Value: "orkut#badge"
+        "description": "A String", # The description for the badge, suitable for display.
+        "sponsorLogo": "A String", # The URL for the 32x32 badge sponsor logo.
+        "sponsorName": "A String", # The name of the badge sponsor, suitable for display.
+        "badgeLargeLogo": "A String", # The URL for the 64x64 badge logo.
+        "caption": "A String", # The name of the badge, suitable for display.
+        "sponsorUrl": "A String", # The URL for the badge sponsor.
+        "id": "A String", # The unique ID for the badge.
+      },
+    ],
+    "kind": "orkut#badgeList", # Identifies this resource as a collection of badges. Value: "orkut#badgeList"
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/orkut_v2.comments.html b/docs/dyn/orkut_v2.comments.html
new file mode 100644
index 0000000..a26e441
--- /dev/null
+++ b/docs/dyn/orkut_v2.comments.html
@@ -0,0 +1,283 @@
+<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="orkut_v2.html">Orkut API</a> . <a href="orkut_v2.comments.html">comments</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(commentId)</a></code></p>
+<p class="firstline">Deletes an existing comment.</p>
+<p class="toc_element">
+  <code><a href="#get">get(commentId, hl=None)</a></code></p>
+<p class="firstline">Retrieves an existing comment.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(activityId, body)</a></code></p>
+<p class="firstline">Inserts a new comment to an activity.</p>
+<p class="toc_element">
+  <code><a href="#list">list(activityId, orderBy=None, pageToken=None, hl=None, maxResults=None)</a></code></p>
+<p class="firstline">Retrieves a list of comments, 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="delete">delete(commentId)</code>
+  <pre>Deletes an existing comment.
+
+Args:
+  commentId: string, ID of the comment to remove. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(commentId, hl=None)</code>
+  <pre>Retrieves an existing comment.
+
+Args:
+  commentId: string, ID of the comment to get. (required)
+  hl: string, Specifies the interface language (host language) of your user interface.
+
+Returns:
+  An object of the form:
+
+    {
+    "inReplyTo": { # Link to the original activity where this comment was posted.
+      "type": "A String", # Type of the post on activity stream being commented. Always text/html.
+      "href": "A String", # Link to the post on activity stream being commented.
+      "ref": "A String", # Unique identifier of the post on activity stream being commented.
+      "rel": "inReplyTo", # Relationship between the comment and the post on activity stream being commented. Always inReplyTo.
+    },
+    "kind": "orkut#comment", # Identifies this resource as a comment. Value: "orkut#comment"
+    "links": [ # List of resources for the comment.
+      { # Links to resources related to the parent object.
+        "href": "A String", # URL of the link.
+        "type": "A String", # Media type of the link.
+        "rel": "A String", # Relation between the resource and the parent object.
+        "title": "A String", # Title of the link.
+      },
+    ],
+    "actor": { # The person who posted the comment.
+      "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+      "image": { # Image data about the author.
+        "url": "A String", # A URL that points to a thumbnail photo of the author.
+      },
+      "displayName": "A String", # The name of the author, suitable for display.
+      "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+    },
+    "content": "A String", # The content of the comment in text/html
+    "published": "A String", # The time the comment was initially published, in RFC 3339 format.
+    "id": "A String", # The unique ID for the comment.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(activityId, body)</code>
+  <pre>Inserts a new comment to an activity.
+
+Args:
+  activityId: string, The ID of the activity to contain the new comment. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+  "inReplyTo": { # Link to the original activity where this comment was posted.
+    "type": "A String", # Type of the post on activity stream being commented. Always text/html.
+    "href": "A String", # Link to the post on activity stream being commented.
+    "ref": "A String", # Unique identifier of the post on activity stream being commented.
+    "rel": "inReplyTo", # Relationship between the comment and the post on activity stream being commented. Always inReplyTo.
+  },
+  "kind": "orkut#comment", # Identifies this resource as a comment. Value: "orkut#comment"
+  "links": [ # List of resources for the comment.
+    { # Links to resources related to the parent object.
+      "href": "A String", # URL of the link.
+      "type": "A String", # Media type of the link.
+      "rel": "A String", # Relation between the resource and the parent object.
+      "title": "A String", # Title of the link.
+    },
+  ],
+  "actor": { # The person who posted the comment.
+    "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+    "image": { # Image data about the author.
+      "url": "A String", # A URL that points to a thumbnail photo of the author.
+    },
+    "displayName": "A String", # The name of the author, suitable for display.
+    "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+  },
+  "content": "A String", # The content of the comment in text/html
+  "published": "A String", # The time the comment was initially published, in RFC 3339 format.
+  "id": "A String", # The unique ID for the comment.
+}
+
+
+Returns:
+  An object of the form:
+
+    {
+    "inReplyTo": { # Link to the original activity where this comment was posted.
+      "type": "A String", # Type of the post on activity stream being commented. Always text/html.
+      "href": "A String", # Link to the post on activity stream being commented.
+      "ref": "A String", # Unique identifier of the post on activity stream being commented.
+      "rel": "inReplyTo", # Relationship between the comment and the post on activity stream being commented. Always inReplyTo.
+    },
+    "kind": "orkut#comment", # Identifies this resource as a comment. Value: "orkut#comment"
+    "links": [ # List of resources for the comment.
+      { # Links to resources related to the parent object.
+        "href": "A String", # URL of the link.
+        "type": "A String", # Media type of the link.
+        "rel": "A String", # Relation between the resource and the parent object.
+        "title": "A String", # Title of the link.
+      },
+    ],
+    "actor": { # The person who posted the comment.
+      "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+      "image": { # Image data about the author.
+        "url": "A String", # A URL that points to a thumbnail photo of the author.
+      },
+      "displayName": "A String", # The name of the author, suitable for display.
+      "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+    },
+    "content": "A String", # The content of the comment in text/html
+    "published": "A String", # The time the comment was initially published, in RFC 3339 format.
+    "id": "A String", # The unique ID for the comment.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(activityId, orderBy=None, pageToken=None, hl=None, maxResults=None)</code>
+  <pre>Retrieves a list of comments, possibly filtered.
+
+Args:
+  activityId: string, The ID of the activity containing the comments. (required)
+  orderBy: string, Sort search results.
+    Allowed values
+      ascending - Use ascending sort order.
+      descending - Use descending sort order.
+  pageToken: string, A continuation token that allows pagination.
+  hl: string, Specifies the interface language (host language) of your user interface.
+  maxResults: integer, The maximum number of activities to include in the response.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # The value of pageToken query parameter in comments.list request to get the next page, if there are more to retrieve.
+    "items": [ # List of comments retrieved.
+      {
+        "inReplyTo": { # Link to the original activity where this comment was posted.
+          "type": "A String", # Type of the post on activity stream being commented. Always text/html.
+          "href": "A String", # Link to the post on activity stream being commented.
+          "ref": "A String", # Unique identifier of the post on activity stream being commented.
+          "rel": "inReplyTo", # Relationship between the comment and the post on activity stream being commented. Always inReplyTo.
+        },
+        "kind": "orkut#comment", # Identifies this resource as a comment. Value: "orkut#comment"
+        "links": [ # List of resources for the comment.
+          { # Links to resources related to the parent object.
+            "href": "A String", # URL of the link.
+            "type": "A String", # Media type of the link.
+            "rel": "A String", # Relation between the resource and the parent object.
+            "title": "A String", # Title of the link.
+          },
+        ],
+        "actor": { # The person who posted the comment.
+          "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+          "image": { # Image data about the author.
+            "url": "A String", # A URL that points to a thumbnail photo of the author.
+          },
+          "displayName": "A String", # The name of the author, suitable for display.
+          "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+        },
+        "content": "A String", # The content of the comment in text/html
+        "published": "A String", # The time the comment was initially published, in RFC 3339 format.
+        "id": "A String", # The unique ID for the comment.
+      },
+    ],
+    "kind": "orkut#commentList", # Identifies this resource as a collection of comments. Value: "orkut#commentList"
+    "previousPageToken": "A String", # The value of pageToken query parameter in comments.list request to get the previous page, if there are more to retrieve.
+  }</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/orkut_v2.communities.html b/docs/dyn/orkut_v2.communities.html
new file mode 100644
index 0000000..ef4c659
--- /dev/null
+++ b/docs/dyn/orkut_v2.communities.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="orkut_v2.html">Orkut API</a> . <a href="orkut_v2.communities.html">communities</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(communityId, hl=None)</a></code></p>
+<p class="firstline">Retrieves the basic information (aka. profile) of a community.</p>
+<p class="toc_element">
+  <code><a href="#list">list(userId, orderBy=None, hl=None, maxResults=None)</a></code></p>
+<p class="firstline">Retrieves the list of communities the current user is a member of.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(communityId, hl=None)</code>
+  <pre>Retrieves the basic information (aka. profile) of a community.
+
+Args:
+  communityId: integer, The ID of the community to get. (required)
+  hl: string, Specifies the interface language (host language) of your user interface.
+
+Returns:
+  An object of the form:
+
+    {
+    "category": "A String", # The category of the community.
+    "kind": "orkut#community", # Identifies this resource as a community. Value: "orkut#community"
+    "member_count": 42, # The number of users who are part of the community. This number may be approximate, so do not rely on it for iteration.
+    "description": "A String", # The description of the community.
+    "language": "A String", # The official language of the community.
+    "links": [ # List of resources for the community.
+      { # Links to resources related to the parent object.
+        "href": "A String", # URL of the link.
+        "type": "A String", # Media type of the link.
+        "rel": "A String", # Relation between the resource and the parent object.
+        "title": "A String", # Title of the link.
+      },
+    ],
+    "creation_date": "A String", # The time the community was created, in RFC 3339 format.
+    "owner": { # The person who owns the community.
+      "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+      "image": { # Image data about the author.
+        "url": "A String", # A URL that points to a thumbnail photo of the author.
+      },
+      "displayName": "A String", # The name of the author, suitable for display.
+      "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+    },
+    "moderators": [ # The list of moderators of the community.
+      {
+        "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+        "image": { # Image data about the author.
+          "url": "A String", # A URL that points to a thumbnail photo of the author.
+        },
+        "displayName": "A String", # The name of the author, suitable for display.
+        "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+      },
+    ],
+    "location": "A String", # The location of the community.
+    "co_owners": [ # The co-owners of the community.
+      {
+        "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+        "image": { # Image data about the author.
+          "url": "A String", # A URL that points to a thumbnail photo of the author.
+        },
+        "displayName": "A String", # The name of the author, suitable for display.
+        "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+      },
+    ],
+    "photo_url": "A String", # The photo of the community.
+    "id": 42, # The id of the community.
+    "name": "A String", # The name of the community.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(userId, orderBy=None, hl=None, maxResults=None)</code>
+  <pre>Retrieves the list of communities the current user is a member of.
+
+Args:
+  userId: string, The ID of the user whose communities will be listed. Can be me to refer to caller. (required)
+  orderBy: string, How to order the communities by.
+    Allowed values
+      id - Returns the communities sorted by a fixed, natural order.
+      ranked - Returns the communities ranked accordingly to how they are displayed on the orkut web application.
+  hl: string, Specifies the interface language (host language) of your user interface.
+  maxResults: integer, The maximum number of communities to include in the response.
+
+Returns:
+  An object of the form:
+
+    {
+    "items": [ # List of communities retrieved.
+      {
+        "category": "A String", # The category of the community.
+        "kind": "orkut#community", # Identifies this resource as a community. Value: "orkut#community"
+        "member_count": 42, # The number of users who are part of the community. This number may be approximate, so do not rely on it for iteration.
+        "description": "A String", # The description of the community.
+        "language": "A String", # The official language of the community.
+        "links": [ # List of resources for the community.
+          { # Links to resources related to the parent object.
+            "href": "A String", # URL of the link.
+            "type": "A String", # Media type of the link.
+            "rel": "A String", # Relation between the resource and the parent object.
+            "title": "A String", # Title of the link.
+          },
+        ],
+        "creation_date": "A String", # The time the community was created, in RFC 3339 format.
+        "owner": { # The person who owns the community.
+          "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+          "image": { # Image data about the author.
+            "url": "A String", # A URL that points to a thumbnail photo of the author.
+          },
+          "displayName": "A String", # The name of the author, suitable for display.
+          "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+        },
+        "moderators": [ # The list of moderators of the community.
+          {
+            "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+            "image": { # Image data about the author.
+              "url": "A String", # A URL that points to a thumbnail photo of the author.
+            },
+            "displayName": "A String", # The name of the author, suitable for display.
+            "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+          },
+        ],
+        "location": "A String", # The location of the community.
+        "co_owners": [ # The co-owners of the community.
+          {
+            "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+            "image": { # Image data about the author.
+              "url": "A String", # A URL that points to a thumbnail photo of the author.
+            },
+            "displayName": "A String", # The name of the author, suitable for display.
+            "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+          },
+        ],
+        "photo_url": "A String", # The photo of the community.
+        "id": 42, # The id of the community.
+        "name": "A String", # The name of the community.
+      },
+    ],
+    "kind": "orkut#communityList", # Identifies this resource as a collection of communities. Value: "orkut#communityList"
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/orkut_v2.communityFollow.html b/docs/dyn/orkut_v2.communityFollow.html
new file mode 100644
index 0000000..2002c14
--- /dev/null
+++ b/docs/dyn/orkut_v2.communityFollow.html
@@ -0,0 +1,136 @@
+<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="orkut_v2.html">Orkut API</a> . <a href="orkut_v2.communityFollow.html">communityFollow</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(communityId, userId)</a></code></p>
+<p class="firstline">Removes a user from the followers of a community.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(communityId, userId)</a></code></p>
+<p class="firstline">Adds a user as a follower of a community.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(communityId, userId)</code>
+  <pre>Removes a user from the followers of a community.
+
+Args:
+  communityId: integer, ID of the community. (required)
+  userId: string, ID of the user. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(communityId, userId)</code>
+  <pre>Adds a user as a follower of a community.
+
+Args:
+  communityId: integer, ID of the community. (required)
+  userId: string, ID of the user. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "communityMembershipStatus": { # Status and permissions of the user related to the community.
+      "status": "A String", # The status of the current link between the community and the user.
+      "isFollowing": True or False, # Whether the user is following this community.
+      "isRestoreAvailable": True or False, # Whether the restore operation is available for the community.
+      "isModerator": True or False, # Whether the session user is a community moderator.
+      "kind": "orkut#communityMembershipStatus", # Kind of this item. Always orkut#communityMembershipStatus.
+      "isCoOwner": True or False, # Whether the session user is a community co-owner.
+      "canCreatePoll": True or False, # Whether the user can create a poll in this community.
+      "canShout": True or False, # Whether the user can perform a shout operation in this community.
+      "isOwner": True or False, # Whether the session user is the community owner.
+      "canCreateTopic": True or False, # Whether the user can create a topic in this community.
+      "isTakebackAvailable": True or False, # Whether the take-back operation is available for the community.
+    },
+    "person": { # Description of the community member.
+      "name": { # An object that encapsulates the individual components of a person's name.
+        "givenName": "A String", # The given name (first name) of this person.
+        "familyName": "A String", # The family name (last name) of this person.
+      },
+      "url": "A String", # The person's profile url. This is adapted from Google+ and was originaly introduced as extra OpenSocial convenience fields.
+      "gender": "A String", # The person's gender. Values include "male", "female", and "other".
+      "image": { # The person's profile photo. This is adapted from Google+ and was originaly introduced as extra OpenSocial convenience fields.
+        "url": "A String", # The URL of the person's profile photo.
+      },
+      "birthday": "A String", # The person's date of birth, represented as YYYY-MM-DD.
+      "id": "A String", # The person's opensocial ID.
+    },
+    "kind": "orkut#communityMembers", # Kind of this item. Always orkut#communityMembers.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/orkut_v2.communityMembers.html b/docs/dyn/orkut_v2.communityMembers.html
new file mode 100644
index 0000000..ae7831d
--- /dev/null
+++ b/docs/dyn/orkut_v2.communityMembers.html
@@ -0,0 +1,256 @@
+<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="orkut_v2.html">Orkut API</a> . <a href="orkut_v2.communityMembers.html">communityMembers</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(communityId, userId)</a></code></p>
+<p class="firstline">Makes the user leave a community.</p>
+<p class="toc_element">
+  <code><a href="#get">get(communityId, userId, hl=None)</a></code></p>
+<p class="firstline">Retrieves the relationship between a user and a community.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(communityId, userId)</a></code></p>
+<p class="firstline">Makes the user join a community.</p>
+<p class="toc_element">
+  <code><a href="#list">list(communityId, friendsOnly=None, pageToken=None, hl=None, maxResults=None)</a></code></p>
+<p class="firstline">Lists members of a community. Use the pagination tokens to retrieve the full list; do not rely on the member count available in the community profile information to know when to stop iterating, as that count may be approximate.</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(communityId, userId)</code>
+  <pre>Makes the user leave a community.
+
+Args:
+  communityId: integer, ID of the community. (required)
+  userId: string, ID of the user. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(communityId, userId, hl=None)</code>
+  <pre>Retrieves the relationship between a user and a community.
+
+Args:
+  communityId: integer, ID of the community. (required)
+  userId: string, ID of the user. (required)
+  hl: string, Specifies the interface language (host language) of your user interface.
+
+Returns:
+  An object of the form:
+
+    {
+    "communityMembershipStatus": { # Status and permissions of the user related to the community.
+      "status": "A String", # The status of the current link between the community and the user.
+      "isFollowing": True or False, # Whether the user is following this community.
+      "isRestoreAvailable": True or False, # Whether the restore operation is available for the community.
+      "isModerator": True or False, # Whether the session user is a community moderator.
+      "kind": "orkut#communityMembershipStatus", # Kind of this item. Always orkut#communityMembershipStatus.
+      "isCoOwner": True or False, # Whether the session user is a community co-owner.
+      "canCreatePoll": True or False, # Whether the user can create a poll in this community.
+      "canShout": True or False, # Whether the user can perform a shout operation in this community.
+      "isOwner": True or False, # Whether the session user is the community owner.
+      "canCreateTopic": True or False, # Whether the user can create a topic in this community.
+      "isTakebackAvailable": True or False, # Whether the take-back operation is available for the community.
+    },
+    "person": { # Description of the community member.
+      "name": { # An object that encapsulates the individual components of a person's name.
+        "givenName": "A String", # The given name (first name) of this person.
+        "familyName": "A String", # The family name (last name) of this person.
+      },
+      "url": "A String", # The person's profile url. This is adapted from Google+ and was originaly introduced as extra OpenSocial convenience fields.
+      "gender": "A String", # The person's gender. Values include "male", "female", and "other".
+      "image": { # The person's profile photo. This is adapted from Google+ and was originaly introduced as extra OpenSocial convenience fields.
+        "url": "A String", # The URL of the person's profile photo.
+      },
+      "birthday": "A String", # The person's date of birth, represented as YYYY-MM-DD.
+      "id": "A String", # The person's opensocial ID.
+    },
+    "kind": "orkut#communityMembers", # Kind of this item. Always orkut#communityMembers.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(communityId, userId)</code>
+  <pre>Makes the user join a community.
+
+Args:
+  communityId: integer, ID of the community. (required)
+  userId: string, ID of the user. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "communityMembershipStatus": { # Status and permissions of the user related to the community.
+      "status": "A String", # The status of the current link between the community and the user.
+      "isFollowing": True or False, # Whether the user is following this community.
+      "isRestoreAvailable": True or False, # Whether the restore operation is available for the community.
+      "isModerator": True or False, # Whether the session user is a community moderator.
+      "kind": "orkut#communityMembershipStatus", # Kind of this item. Always orkut#communityMembershipStatus.
+      "isCoOwner": True or False, # Whether the session user is a community co-owner.
+      "canCreatePoll": True or False, # Whether the user can create a poll in this community.
+      "canShout": True or False, # Whether the user can perform a shout operation in this community.
+      "isOwner": True or False, # Whether the session user is the community owner.
+      "canCreateTopic": True or False, # Whether the user can create a topic in this community.
+      "isTakebackAvailable": True or False, # Whether the take-back operation is available for the community.
+    },
+    "person": { # Description of the community member.
+      "name": { # An object that encapsulates the individual components of a person's name.
+        "givenName": "A String", # The given name (first name) of this person.
+        "familyName": "A String", # The family name (last name) of this person.
+      },
+      "url": "A String", # The person's profile url. This is adapted from Google+ and was originaly introduced as extra OpenSocial convenience fields.
+      "gender": "A String", # The person's gender. Values include "male", "female", and "other".
+      "image": { # The person's profile photo. This is adapted from Google+ and was originaly introduced as extra OpenSocial convenience fields.
+        "url": "A String", # The URL of the person's profile photo.
+      },
+      "birthday": "A String", # The person's date of birth, represented as YYYY-MM-DD.
+      "id": "A String", # The person's opensocial ID.
+    },
+    "kind": "orkut#communityMembers", # Kind of this item. Always orkut#communityMembers.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(communityId, friendsOnly=None, pageToken=None, hl=None, maxResults=None)</code>
+  <pre>Lists members of a community. Use the pagination tokens to retrieve the full list; do not rely on the member count available in the community profile information to know when to stop iterating, as that count may be approximate.
+
+Args:
+  communityId: integer, The ID of the community whose members will be listed. (required)
+  friendsOnly: boolean, Whether to list only community members who are friends of the user.
+  pageToken: string, A continuation token that allows pagination.
+  hl: string, Specifies the interface language (host language) of your user interface.
+  maxResults: integer, The maximum number of members to include in the response.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # The value of pageToken query parameter in community_members.list request to get the next page, if there are more to retrieve.
+    "kind": "orkut#communityMembersList", # Kind of this item. Always orkut#communityMembersList.
+    "items": [ # List of community members retrieved.
+      {
+        "communityMembershipStatus": { # Status and permissions of the user related to the community.
+          "status": "A String", # The status of the current link between the community and the user.
+          "isFollowing": True or False, # Whether the user is following this community.
+          "isRestoreAvailable": True or False, # Whether the restore operation is available for the community.
+          "isModerator": True or False, # Whether the session user is a community moderator.
+          "kind": "orkut#communityMembershipStatus", # Kind of this item. Always orkut#communityMembershipStatus.
+          "isCoOwner": True or False, # Whether the session user is a community co-owner.
+          "canCreatePoll": True or False, # Whether the user can create a poll in this community.
+          "canShout": True or False, # Whether the user can perform a shout operation in this community.
+          "isOwner": True or False, # Whether the session user is the community owner.
+          "canCreateTopic": True or False, # Whether the user can create a topic in this community.
+          "isTakebackAvailable": True or False, # Whether the take-back operation is available for the community.
+        },
+        "person": { # Description of the community member.
+          "name": { # An object that encapsulates the individual components of a person's name.
+            "givenName": "A String", # The given name (first name) of this person.
+            "familyName": "A String", # The family name (last name) of this person.
+          },
+          "url": "A String", # The person's profile url. This is adapted from Google+ and was originaly introduced as extra OpenSocial convenience fields.
+          "gender": "A String", # The person's gender. Values include "male", "female", and "other".
+          "image": { # The person's profile photo. This is adapted from Google+ and was originaly introduced as extra OpenSocial convenience fields.
+            "url": "A String", # The URL of the person's profile photo.
+          },
+          "birthday": "A String", # The person's date of birth, represented as YYYY-MM-DD.
+          "id": "A String", # The person's opensocial ID.
+        },
+        "kind": "orkut#communityMembers", # Kind of this item. Always orkut#communityMembers.
+      },
+    ],
+    "prevPageToken": "A String", # The value of pageToken query parameter in community_members.list request to get the previous page, if there are more to retrieve.
+    "lastPageToken": "A String", # The value of pageToken query parameter in community_members.list request to get the last page.
+    "firstPageToken": "A String", # The value of pageToken query parameter in community_members.list request to get the first page.
+  }</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/orkut_v2.communityMessages.html b/docs/dyn/orkut_v2.communityMessages.html
new file mode 100644
index 0000000..158ed0e
--- /dev/null
+++ b/docs/dyn/orkut_v2.communityMessages.html
@@ -0,0 +1,229 @@
+<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="orkut_v2.html">Orkut API</a> . <a href="orkut_v2.communityMessages.html">communityMessages</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(communityId, topicId, messageId)</a></code></p>
+<p class="firstline">Moves a message of the community to the trash folder.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(communityId, topicId, body)</a></code></p>
+<p class="firstline">Adds a message to a given community topic.</p>
+<p class="toc_element">
+  <code><a href="#list">list(communityId, topicId, pageToken=None, hl=None, maxResults=None)</a></code></p>
+<p class="firstline">Retrieves the messages of a topic of a community.</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(communityId, topicId, messageId)</code>
+  <pre>Moves a message of the community to the trash folder.
+
+Args:
+  communityId: integer, The ID of the community whose message will be moved to the trash folder. (required)
+  topicId: string, The ID of the topic whose message will be moved to the trash folder. (required)
+  messageId: string, The ID of the message to be moved to the trash folder. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(communityId, topicId, body)</code>
+  <pre>Adds a message to a given community topic.
+
+Args:
+  communityId: integer, The ID of the community the message should be added to. (required)
+  topicId: string, The ID of the topic the message should be added to. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "body": "A String", # The body of the message.
+    "kind": "orkut#communityMessage", # Identifies this resource as a community message. Value: "orkut#communityMessage"
+    "links": [ # List of resources for the community message.
+      { # Links to resources related to the parent object.
+        "href": "A String", # URL of the link.
+        "type": "A String", # Media type of the link.
+        "rel": "A String", # Relation between the resource and the parent object.
+        "title": "A String", # Title of the link.
+      },
+    ],
+    "author": { # The creator of the message. If ommited, the message is annonimous.
+      "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+      "image": { # Image data about the author.
+        "url": "A String", # A URL that points to a thumbnail photo of the author.
+      },
+      "displayName": "A String", # The name of the author, suitable for display.
+      "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+    },
+    "id": "A String", # The ID of the message.
+    "addedDate": "A String", # The timestamp of the date when the message was added, in RFC 3339 format.
+    "isSpam": True or False, # Whether this post was marked as spam by the viewer, when he/she is not the community owner or one of its moderators.
+    "subject": "A String", # The subject of the message.
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "body": "A String", # The body of the message.
+      "kind": "orkut#communityMessage", # Identifies this resource as a community message. Value: "orkut#communityMessage"
+      "links": [ # List of resources for the community message.
+        { # Links to resources related to the parent object.
+          "href": "A String", # URL of the link.
+          "type": "A String", # Media type of the link.
+          "rel": "A String", # Relation between the resource and the parent object.
+          "title": "A String", # Title of the link.
+        },
+      ],
+      "author": { # The creator of the message. If ommited, the message is annonimous.
+        "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+        "image": { # Image data about the author.
+          "url": "A String", # A URL that points to a thumbnail photo of the author.
+        },
+        "displayName": "A String", # The name of the author, suitable for display.
+        "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+      },
+      "id": "A String", # The ID of the message.
+      "addedDate": "A String", # The timestamp of the date when the message was added, in RFC 3339 format.
+      "isSpam": True or False, # Whether this post was marked as spam by the viewer, when he/she is not the community owner or one of its moderators.
+      "subject": "A String", # The subject of the message.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(communityId, topicId, pageToken=None, hl=None, maxResults=None)</code>
+  <pre>Retrieves the messages of a topic of a community.
+
+Args:
+  communityId: integer, The ID of the community which messages will be listed. (required)
+  topicId: string, The ID of the topic which messages will be listed. (required)
+  pageToken: string, A continuation token that allows pagination.
+  hl: string, Specifies the interface language (host language) of your user interface.
+  maxResults: integer, The maximum number of messages to include in the response.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # The value of pageToken query parameter in community_messages.list request to get the next page, if there are more to retrieve.
+    "kind": "orkut#communityMessageList", # Identifies this resource as a collection of community messages. Value: "orkut#communityMessageList"
+    "items": [ # List of messages retrieved.
+      {
+          "body": "A String", # The body of the message.
+          "kind": "orkut#communityMessage", # Identifies this resource as a community message. Value: "orkut#communityMessage"
+          "links": [ # List of resources for the community message.
+            { # Links to resources related to the parent object.
+              "href": "A String", # URL of the link.
+              "type": "A String", # Media type of the link.
+              "rel": "A String", # Relation between the resource and the parent object.
+              "title": "A String", # Title of the link.
+            },
+          ],
+          "author": { # The creator of the message. If ommited, the message is annonimous.
+            "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+            "image": { # Image data about the author.
+              "url": "A String", # A URL that points to a thumbnail photo of the author.
+            },
+            "displayName": "A String", # The name of the author, suitable for display.
+            "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+          },
+          "id": "A String", # The ID of the message.
+          "addedDate": "A String", # The timestamp of the date when the message was added, in RFC 3339 format.
+          "isSpam": True or False, # Whether this post was marked as spam by the viewer, when he/she is not the community owner or one of its moderators.
+          "subject": "A String", # The subject of the message.
+        },
+    ],
+    "prevPageToken": "A String", # The value of pageToken query parameter in community_messages.list request to get the previous page, if there are more to retrieve.
+    "lastPageToken": "A String", # The value of pageToken query parameter in community_messages.list request to get the last page.
+    "firstPageToken": "A String", # The value of pageToken query parameter in community_messages.list request to get the first page.
+  }</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/orkut_v2.communityPollComments.html b/docs/dyn/orkut_v2.communityPollComments.html
new file mode 100644
index 0000000..efeff4a
--- /dev/null
+++ b/docs/dyn/orkut_v2.communityPollComments.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="orkut_v2.html">Orkut API</a> . <a href="orkut_v2.communityPollComments.html">communityPollComments</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#insert">insert(communityId, pollId, body)</a></code></p>
+<p class="firstline">Adds a comment on a community poll.</p>
+<p class="toc_element">
+  <code><a href="#list">list(communityId, pollId, pageToken=None, hl=None, maxResults=None)</a></code></p>
+<p class="firstline">Retrieves the comments of a community poll.</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(communityId, pollId, body)</code>
+  <pre>Adds a comment on a community poll.
+
+Args:
+  communityId: integer, The ID of the community whose poll is being commented. (required)
+  pollId: string, The ID of the poll being commented. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "body": "A String", # The body of the message.
+    "kind": "orkut#communityPollComment", # Identifies this resource as a community poll comment. Value: "orkut#communityPollComment"
+    "addedDate": "A String", # The date when the message was added, in RFC 3339 format.
+    "id": 42, # The ID of the comment.
+    "author": { # The creator of the comment.
+      "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+      "image": { # Image data about the author.
+        "url": "A String", # A URL that points to a thumbnail photo of the author.
+      },
+      "displayName": "A String", # The name of the author, suitable for display.
+      "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "body": "A String", # The body of the message.
+      "kind": "orkut#communityPollComment", # Identifies this resource as a community poll comment. Value: "orkut#communityPollComment"
+      "addedDate": "A String", # The date when the message was added, in RFC 3339 format.
+      "id": 42, # The ID of the comment.
+      "author": { # The creator of the comment.
+        "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+        "image": { # Image data about the author.
+          "url": "A String", # A URL that points to a thumbnail photo of the author.
+        },
+        "displayName": "A String", # The name of the author, suitable for display.
+        "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+      },
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(communityId, pollId, pageToken=None, hl=None, maxResults=None)</code>
+  <pre>Retrieves the comments of a community poll.
+
+Args:
+  communityId: integer, The ID of the community whose poll is having its comments listed. (required)
+  pollId: string, The ID of the community whose polls will be listed. (required)
+  pageToken: string, A continuation token that allows pagination.
+  hl: string, Specifies the interface language (host language) of your user interface.
+  maxResults: integer, The maximum number of comments to include in the response.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # The value of pageToken query parameter in community_poll_comments.list request to get the next page, if there are more to retrieve.
+    "kind": "orkut#CommunityPollCommentList", # Identifies this resource as a collection of community poll comments. Value: "orkut#CommunityPollCommentList"
+    "items": [ # List of community poll comments retrieved.
+      {
+          "body": "A String", # The body of the message.
+          "kind": "orkut#communityPollComment", # Identifies this resource as a community poll comment. Value: "orkut#communityPollComment"
+          "addedDate": "A String", # The date when the message was added, in RFC 3339 format.
+          "id": 42, # The ID of the comment.
+          "author": { # The creator of the comment.
+            "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+            "image": { # Image data about the author.
+              "url": "A String", # A URL that points to a thumbnail photo of the author.
+            },
+            "displayName": "A String", # The name of the author, suitable for display.
+            "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+          },
+        },
+    ],
+    "prevPageToken": "A String", # The value of pageToken query parameter in community_poll_comments.list request to get the previous page, if there are more to retrieve.
+    "lastPageToken": "A String", # The value of pageToken query parameter in community_poll_comments.list request to get the last page.
+    "firstPageToken": "A String", # The value of pageToken query parameter in community_poll_comments.list request to get the first page.
+  }</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/orkut_v2.communityPollVotes.html b/docs/dyn/orkut_v2.communityPollVotes.html
new file mode 100644
index 0000000..00f5269
--- /dev/null
+++ b/docs/dyn/orkut_v2.communityPollVotes.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="orkut_v2.html">Orkut API</a> . <a href="orkut_v2.communityPollVotes.html">communityPollVotes</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#insert">insert(communityId, pollId, body)</a></code></p>
+<p class="firstline">Votes on a community poll.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="insert">insert(communityId, pollId, body)</code>
+  <pre>Votes on a community poll.
+
+Args:
+  communityId: integer, The ID of the community whose poll is being voted. (required)
+  pollId: string, The ID of the poll being voted. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "kind": "orkut#communityPollVote", # Identifies this resource as a community poll vote. Value: "orkut#communityPollVote"
+    "optionIds": [ # The ids of the voted options.
+      42,
+    ],
+    "isVotevisible": True or False, # Whether this vote is visible to other users or not.
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "orkut#communityPollVote", # Identifies this resource as a community poll vote. Value: "orkut#communityPollVote"
+      "optionIds": [ # The ids of the voted options.
+        42,
+      ],
+      "isVotevisible": True or False, # Whether this vote is visible to other users or not.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/orkut_v2.communityPolls.html b/docs/dyn/orkut_v2.communityPolls.html
new file mode 100644
index 0000000..03c6824
--- /dev/null
+++ b/docs/dyn/orkut_v2.communityPolls.html
@@ -0,0 +1,241 @@
+<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="orkut_v2.html">Orkut API</a> . <a href="orkut_v2.communityPolls.html">communityPolls</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(communityId, pollId, hl=None)</a></code></p>
+<p class="firstline">Retrieves one specific poll of a community.</p>
+<p class="toc_element">
+  <code><a href="#list">list(communityId, pageToken=None, hl=None, maxResults=None)</a></code></p>
+<p class="firstline">Retrieves the polls of a community.</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(communityId, pollId, hl=None)</code>
+  <pre>Retrieves one specific poll of a community.
+
+Args:
+  communityId: integer, The ID of the community for whose poll will be retrieved. (required)
+  pollId: string, The ID of the poll to get. (required)
+  hl: string, Specifies the interface language (host language) of your user interface.
+
+Returns:
+  An object of the form:
+
+    {
+    "links": [ # List of resources for the community poll.
+      { # Links to resources related to the parent object.
+        "href": "A String", # URL of the link.
+        "type": "A String", # Media type of the link.
+        "rel": "A String", # Relation between the resource and the parent object.
+        "title": "A String", # Title of the link.
+      },
+    ],
+    "isMultipleAnswers": True or False, # Whether this poll allows voting for more than one option.
+    "image": { # The image representing the poll. Field is omitted if no image exists.
+      "url": "A String", # A URL that points to an image of the poll.
+    },
+    "endingTime": "A String", # The ending date of this poll or empty if the poll doesn't have one.
+    "isVotingAllowedForNonMembers": True or False, # Whether non-members of the community can vote on the poll.
+    "isSpam": True or False, # Whether the user has marked this poll as spam. This only affects the poll for this user, not globally.
+    "totalNumberOfVotes": 42, # The total number of votes this poll has received.
+    "author": { # The person who created the poll.
+      "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+      "image": { # Image data about the author.
+        "url": "A String", # A URL that points to a thumbnail photo of the author.
+      },
+      "displayName": "A String", # The name of the author, suitable for display.
+      "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+    },
+    "question": "A String", # The poll question.
+    "id": "A String", # The poll ID.
+    "isRestricted": True or False, # Whether this poll is restricted for members only. If a poll is open but the user can't vote on it, it's been restricted to members only. This information is important to tell this case apart from the one where the user can't vote simply because the poll is already closed.
+    "communityId": 42, # The ID of the community.
+    "isUsersVotePublic": True or False, # If user has already voted, whether his vote is publicly visible.
+    "lastUpdate": "A String", # The date of the last update of this poll.
+    "description": "A String", # The poll description.
+    "votedOptions": [ # List of options the user has voted on, if there are any.
+      42,
+    ],
+    "isOpenForVoting": True or False, # Whether this poll is still opened for voting. A poll is open for voting if it is not closed, the user has not yet voted on it and the user has the permission to do so, which happens if he/she is either a community member or the poll is open for everybody.
+    "isClosed": True or False, # Whether the poll is not expired if there is an expiration date. A poll is open (that is, not closed for voting) if it either is not expired or doesn't have an expiration date at all. Note that just because a poll is open, it doesn't mean that the requester can vote on it.
+    "hasVoted": True or False, # Whether the user has voted on this poll.
+    "kind": "orkut#communityPoll", # Identifies this resource as a community poll. Value: "orkut#communityPoll"
+    "creationTime": "A String", # The date of creation of this poll
+    "options": [ # List of options of this poll.
+      {
+        "image": { # Image data about the poll option. Field is omitted if no image exists.
+          "url": "A String", # A URL that points to an image of the poll question.
+        },
+        "optionId": 42, # The poll option ID
+        "description": "A String", # The option description.
+        "numberOfVotes": 42, # The total number of votes that this option received.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(communityId, pageToken=None, hl=None, maxResults=None)</code>
+  <pre>Retrieves the polls of a community.
+
+Args:
+  communityId: integer, The ID of the community which polls will be listed. (required)
+  pageToken: string, A continuation token that allows pagination.
+  hl: string, Specifies the interface language (host language) of your user interface.
+  maxResults: integer, The maximum number of polls to include in the response.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # The value of pageToken query parameter in community_polls.list request to get the next page, if there are more to retrieve.
+    "kind": "orkut#communityPollList", # Identifies this resource as a collection of community polls. Value: "orkut#communityPollList"
+    "items": [ # List of community polls retrieved.
+      {
+        "links": [ # List of resources for the community poll.
+          { # Links to resources related to the parent object.
+            "href": "A String", # URL of the link.
+            "type": "A String", # Media type of the link.
+            "rel": "A String", # Relation between the resource and the parent object.
+            "title": "A String", # Title of the link.
+          },
+        ],
+        "isMultipleAnswers": True or False, # Whether this poll allows voting for more than one option.
+        "image": { # The image representing the poll. Field is omitted if no image exists.
+          "url": "A String", # A URL that points to an image of the poll.
+        },
+        "endingTime": "A String", # The ending date of this poll or empty if the poll doesn't have one.
+        "isVotingAllowedForNonMembers": True or False, # Whether non-members of the community can vote on the poll.
+        "isSpam": True or False, # Whether the user has marked this poll as spam. This only affects the poll for this user, not globally.
+        "totalNumberOfVotes": 42, # The total number of votes this poll has received.
+        "author": { # The person who created the poll.
+          "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+          "image": { # Image data about the author.
+            "url": "A String", # A URL that points to a thumbnail photo of the author.
+          },
+          "displayName": "A String", # The name of the author, suitable for display.
+          "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+        },
+        "question": "A String", # The poll question.
+        "id": "A String", # The poll ID.
+        "isRestricted": True or False, # Whether this poll is restricted for members only. If a poll is open but the user can't vote on it, it's been restricted to members only. This information is important to tell this case apart from the one where the user can't vote simply because the poll is already closed.
+        "communityId": 42, # The ID of the community.
+        "isUsersVotePublic": True or False, # If user has already voted, whether his vote is publicly visible.
+        "lastUpdate": "A String", # The date of the last update of this poll.
+        "description": "A String", # The poll description.
+        "votedOptions": [ # List of options the user has voted on, if there are any.
+          42,
+        ],
+        "isOpenForVoting": True or False, # Whether this poll is still opened for voting. A poll is open for voting if it is not closed, the user has not yet voted on it and the user has the permission to do so, which happens if he/she is either a community member or the poll is open for everybody.
+        "isClosed": True or False, # Whether the poll is not expired if there is an expiration date. A poll is open (that is, not closed for voting) if it either is not expired or doesn't have an expiration date at all. Note that just because a poll is open, it doesn't mean that the requester can vote on it.
+        "hasVoted": True or False, # Whether the user has voted on this poll.
+        "kind": "orkut#communityPoll", # Identifies this resource as a community poll. Value: "orkut#communityPoll"
+        "creationTime": "A String", # The date of creation of this poll
+        "options": [ # List of options of this poll.
+          {
+            "image": { # Image data about the poll option. Field is omitted if no image exists.
+              "url": "A String", # A URL that points to an image of the poll question.
+            },
+            "optionId": 42, # The poll option ID
+            "description": "A String", # The option description.
+            "numberOfVotes": 42, # The total number of votes that this option received.
+          },
+        ],
+      },
+    ],
+    "prevPageToken": "A String", # The value of pageToken query parameter in community_polls.list request to get the previous page, if there are more to retrieve.
+    "lastPageToken": "A String", # The value of pageToken query parameter in community_polls.list request to get the last page.
+    "firstPageToken": "A String", # The value of pageToken query parameter in community_polls.list request to get the first page.
+  }</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/orkut_v2.communityRelated.html b/docs/dyn/orkut_v2.communityRelated.html
new file mode 100644
index 0000000..bf7752b
--- /dev/null
+++ b/docs/dyn/orkut_v2.communityRelated.html
@@ -0,0 +1,147 @@
+<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="orkut_v2.html">Orkut API</a> . <a href="orkut_v2.communityRelated.html">communityRelated</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(communityId, hl=None)</a></code></p>
+<p class="firstline">Retrieves the communities related to another one.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(communityId, hl=None)</code>
+  <pre>Retrieves the communities related to another one.
+
+Args:
+  communityId: integer, The ID of the community whose related communities will be listed. (required)
+  hl: string, Specifies the interface language (host language) of your user interface.
+
+Returns:
+  An object of the form:
+
+    {
+    "items": [ # List of communities retrieved.
+      {
+        "category": "A String", # The category of the community.
+        "kind": "orkut#community", # Identifies this resource as a community. Value: "orkut#community"
+        "member_count": 42, # The number of users who are part of the community. This number may be approximate, so do not rely on it for iteration.
+        "description": "A String", # The description of the community.
+        "language": "A String", # The official language of the community.
+        "links": [ # List of resources for the community.
+          { # Links to resources related to the parent object.
+            "href": "A String", # URL of the link.
+            "type": "A String", # Media type of the link.
+            "rel": "A String", # Relation between the resource and the parent object.
+            "title": "A String", # Title of the link.
+          },
+        ],
+        "creation_date": "A String", # The time the community was created, in RFC 3339 format.
+        "owner": { # The person who owns the community.
+          "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+          "image": { # Image data about the author.
+            "url": "A String", # A URL that points to a thumbnail photo of the author.
+          },
+          "displayName": "A String", # The name of the author, suitable for display.
+          "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+        },
+        "moderators": [ # The list of moderators of the community.
+          {
+            "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+            "image": { # Image data about the author.
+              "url": "A String", # A URL that points to a thumbnail photo of the author.
+            },
+            "displayName": "A String", # The name of the author, suitable for display.
+            "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+          },
+        ],
+        "location": "A String", # The location of the community.
+        "co_owners": [ # The co-owners of the community.
+          {
+            "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+            "image": { # Image data about the author.
+              "url": "A String", # A URL that points to a thumbnail photo of the author.
+            },
+            "displayName": "A String", # The name of the author, suitable for display.
+            "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+          },
+        ],
+        "photo_url": "A String", # The photo of the community.
+        "id": 42, # The id of the community.
+        "name": "A String", # The name of the community.
+      },
+    ],
+    "kind": "orkut#communityList", # Identifies this resource as a collection of communities. Value: "orkut#communityList"
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/orkut_v2.communityTopics.html b/docs/dyn/orkut_v2.communityTopics.html
new file mode 100644
index 0000000..1a6046e
--- /dev/null
+++ b/docs/dyn/orkut_v2.communityTopics.html
@@ -0,0 +1,380 @@
+<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="orkut_v2.html">Orkut API</a> . <a href="orkut_v2.communityTopics.html">communityTopics</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(communityId, topicId)</a></code></p>
+<p class="firstline">Moves a topic of the community to the trash folder.</p>
+<p class="toc_element">
+  <code><a href="#get">get(communityId, topicId, hl=None)</a></code></p>
+<p class="firstline">Retrieves a topic of a community.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(communityId, body, isShout=None)</a></code></p>
+<p class="firstline">Adds a topic to a given community.</p>
+<p class="toc_element">
+  <code><a href="#list">list(communityId, pageToken=None, hl=None, maxResults=None)</a></code></p>
+<p class="firstline">Retrieves the topics of a community.</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(communityId, topicId)</code>
+  <pre>Moves a topic of the community to the trash folder.
+
+Args:
+  communityId: integer, The ID of the community whose topic will be moved to the trash folder. (required)
+  topicId: string, The ID of the topic to be moved to the trash folder. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(communityId, topicId, hl=None)</code>
+  <pre>Retrieves a topic of a community.
+
+Args:
+  communityId: integer, The ID of the community whose topic will be retrieved. (required)
+  topicId: string, The ID of the topic to get. (required)
+  hl: string, Specifies the interface language (host language) of your user interface.
+
+Returns:
+  An object of the form:
+
+    {
+      "body": "A String", # The body of the topic.
+      "lastUpdate": "A String", # The timestamp of the last update, in RFC 3339 format.
+      "kind": "orkut#communityTopic", # Identifies this resource as a community topic. Value: "orkut#communityTopic"
+      "links": [ # List of resources for the community.
+        { # Links to resources related to the parent object.
+          "href": "A String", # URL of the link.
+          "type": "A String", # Media type of the link.
+          "rel": "A String", # Relation between the resource and the parent object.
+          "title": "A String", # Title of the link.
+        },
+      ],
+      "author": { # The creator of the topic.
+        "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+        "image": { # Image data about the author.
+          "url": "A String", # A URL that points to a thumbnail photo of the author.
+        },
+        "displayName": "A String", # The name of the author, suitable for display.
+        "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+      },
+      "title": "A String", # The title of the topic.
+      "messages": [ # Most recent messages.
+        {
+            "body": "A String", # The body of the message.
+            "kind": "orkut#communityMessage", # Identifies this resource as a community message. Value: "orkut#communityMessage"
+            "links": [ # List of resources for the community message.
+              { # Links to resources related to the parent object.
+                "href": "A String", # URL of the link.
+                "type": "A String", # Media type of the link.
+                "rel": "A String", # Relation between the resource and the parent object.
+                "title": "A String", # Title of the link.
+              },
+            ],
+            "author": { # The creator of the message. If ommited, the message is annonimous.
+              "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+              "image": { # Image data about the author.
+                "url": "A String", # A URL that points to a thumbnail photo of the author.
+              },
+              "displayName": "A String", # The name of the author, suitable for display.
+              "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+            },
+            "id": "A String", # The ID of the message.
+            "addedDate": "A String", # The timestamp of the date when the message was added, in RFC 3339 format.
+            "isSpam": True or False, # Whether this post was marked as spam by the viewer, when he/she is not the community owner or one of its moderators.
+            "subject": "A String", # The subject of the message.
+          },
+      ],
+      "latestMessageSnippet": "A String", # Snippet of the last message posted on this topic.
+      "isClosed": True or False, # Whether the topic is closed for new messages.
+      "numberOfReplies": 42, # The total number of replies this topic has received.
+      "id": "A String", # The ID of the topic.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(communityId, body, isShout=None)</code>
+  <pre>Adds a topic to a given community.
+
+Args:
+  communityId: integer, The ID of the community the topic should be added to. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "body": "A String", # The body of the topic.
+    "lastUpdate": "A String", # The timestamp of the last update, in RFC 3339 format.
+    "kind": "orkut#communityTopic", # Identifies this resource as a community topic. Value: "orkut#communityTopic"
+    "links": [ # List of resources for the community.
+      { # Links to resources related to the parent object.
+        "href": "A String", # URL of the link.
+        "type": "A String", # Media type of the link.
+        "rel": "A String", # Relation between the resource and the parent object.
+        "title": "A String", # Title of the link.
+      },
+    ],
+    "author": { # The creator of the topic.
+      "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+      "image": { # Image data about the author.
+        "url": "A String", # A URL that points to a thumbnail photo of the author.
+      },
+      "displayName": "A String", # The name of the author, suitable for display.
+      "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+    },
+    "title": "A String", # The title of the topic.
+    "messages": [ # Most recent messages.
+      {
+          "body": "A String", # The body of the message.
+          "kind": "orkut#communityMessage", # Identifies this resource as a community message. Value: "orkut#communityMessage"
+          "links": [ # List of resources for the community message.
+            { # Links to resources related to the parent object.
+              "href": "A String", # URL of the link.
+              "type": "A String", # Media type of the link.
+              "rel": "A String", # Relation between the resource and the parent object.
+              "title": "A String", # Title of the link.
+            },
+          ],
+          "author": { # The creator of the message. If ommited, the message is annonimous.
+            "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+            "image": { # Image data about the author.
+              "url": "A String", # A URL that points to a thumbnail photo of the author.
+            },
+            "displayName": "A String", # The name of the author, suitable for display.
+            "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+          },
+          "id": "A String", # The ID of the message.
+          "addedDate": "A String", # The timestamp of the date when the message was added, in RFC 3339 format.
+          "isSpam": True or False, # Whether this post was marked as spam by the viewer, when he/she is not the community owner or one of its moderators.
+          "subject": "A String", # The subject of the message.
+        },
+    ],
+    "latestMessageSnippet": "A String", # Snippet of the last message posted on this topic.
+    "isClosed": True or False, # Whether the topic is closed for new messages.
+    "numberOfReplies": 42, # The total number of replies this topic has received.
+    "id": "A String", # The ID of the topic.
+  }
+
+  isShout: boolean, Whether this topic is a shout.
+
+Returns:
+  An object of the form:
+
+    {
+      "body": "A String", # The body of the topic.
+      "lastUpdate": "A String", # The timestamp of the last update, in RFC 3339 format.
+      "kind": "orkut#communityTopic", # Identifies this resource as a community topic. Value: "orkut#communityTopic"
+      "links": [ # List of resources for the community.
+        { # Links to resources related to the parent object.
+          "href": "A String", # URL of the link.
+          "type": "A String", # Media type of the link.
+          "rel": "A String", # Relation between the resource and the parent object.
+          "title": "A String", # Title of the link.
+        },
+      ],
+      "author": { # The creator of the topic.
+        "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+        "image": { # Image data about the author.
+          "url": "A String", # A URL that points to a thumbnail photo of the author.
+        },
+        "displayName": "A String", # The name of the author, suitable for display.
+        "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+      },
+      "title": "A String", # The title of the topic.
+      "messages": [ # Most recent messages.
+        {
+            "body": "A String", # The body of the message.
+            "kind": "orkut#communityMessage", # Identifies this resource as a community message. Value: "orkut#communityMessage"
+            "links": [ # List of resources for the community message.
+              { # Links to resources related to the parent object.
+                "href": "A String", # URL of the link.
+                "type": "A String", # Media type of the link.
+                "rel": "A String", # Relation between the resource and the parent object.
+                "title": "A String", # Title of the link.
+              },
+            ],
+            "author": { # The creator of the message. If ommited, the message is annonimous.
+              "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+              "image": { # Image data about the author.
+                "url": "A String", # A URL that points to a thumbnail photo of the author.
+              },
+              "displayName": "A String", # The name of the author, suitable for display.
+              "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+            },
+            "id": "A String", # The ID of the message.
+            "addedDate": "A String", # The timestamp of the date when the message was added, in RFC 3339 format.
+            "isSpam": True or False, # Whether this post was marked as spam by the viewer, when he/she is not the community owner or one of its moderators.
+            "subject": "A String", # The subject of the message.
+          },
+      ],
+      "latestMessageSnippet": "A String", # Snippet of the last message posted on this topic.
+      "isClosed": True or False, # Whether the topic is closed for new messages.
+      "numberOfReplies": 42, # The total number of replies this topic has received.
+      "id": "A String", # The ID of the topic.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(communityId, pageToken=None, hl=None, maxResults=None)</code>
+  <pre>Retrieves the topics of a community.
+
+Args:
+  communityId: integer, The ID of the community which topics will be listed. (required)
+  pageToken: string, A continuation token that allows pagination.
+  hl: string, Specifies the interface language (host language) of your user interface.
+  maxResults: integer, The maximum number of topics to include in the response.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # The value of pageToken query parameter in community_topic.list request to get the next page, if there are more to retrieve.
+    "kind": "orkut#communityTopicList", # Identifies this resource as a collection of community topics. Value: "orkut#communityTopicList"
+    "items": [ # List of topics retrieved.
+      {
+          "body": "A String", # The body of the topic.
+          "lastUpdate": "A String", # The timestamp of the last update, in RFC 3339 format.
+          "kind": "orkut#communityTopic", # Identifies this resource as a community topic. Value: "orkut#communityTopic"
+          "links": [ # List of resources for the community.
+            { # Links to resources related to the parent object.
+              "href": "A String", # URL of the link.
+              "type": "A String", # Media type of the link.
+              "rel": "A String", # Relation between the resource and the parent object.
+              "title": "A String", # Title of the link.
+            },
+          ],
+          "author": { # The creator of the topic.
+            "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+            "image": { # Image data about the author.
+              "url": "A String", # A URL that points to a thumbnail photo of the author.
+            },
+            "displayName": "A String", # The name of the author, suitable for display.
+            "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+          },
+          "title": "A String", # The title of the topic.
+          "messages": [ # Most recent messages.
+            {
+                "body": "A String", # The body of the message.
+                "kind": "orkut#communityMessage", # Identifies this resource as a community message. Value: "orkut#communityMessage"
+                "links": [ # List of resources for the community message.
+                  { # Links to resources related to the parent object.
+                    "href": "A String", # URL of the link.
+                    "type": "A String", # Media type of the link.
+                    "rel": "A String", # Relation between the resource and the parent object.
+                    "title": "A String", # Title of the link.
+                  },
+                ],
+                "author": { # The creator of the message. If ommited, the message is annonimous.
+                  "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+                  "image": { # Image data about the author.
+                    "url": "A String", # A URL that points to a thumbnail photo of the author.
+                  },
+                  "displayName": "A String", # The name of the author, suitable for display.
+                  "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+                },
+                "id": "A String", # The ID of the message.
+                "addedDate": "A String", # The timestamp of the date when the message was added, in RFC 3339 format.
+                "isSpam": True or False, # Whether this post was marked as spam by the viewer, when he/she is not the community owner or one of its moderators.
+                "subject": "A String", # The subject of the message.
+              },
+          ],
+          "latestMessageSnippet": "A String", # Snippet of the last message posted on this topic.
+          "isClosed": True or False, # Whether the topic is closed for new messages.
+          "numberOfReplies": 42, # The total number of replies this topic has received.
+          "id": "A String", # The ID of the topic.
+        },
+    ],
+    "prevPageToken": "A String", # The value of pageToken query parameter in community_topic.list request to get the previous page, if there are more to retrieve.
+    "lastPageToken": "A String", # The value of pageToken query parameter in community_topic.list request to get the last page.
+    "firstPageToken": "A String", # The value of pageToken query parameter in community_topic.list request to get the first page.
+  }</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/orkut_v2.counters.html b/docs/dyn/orkut_v2.counters.html
new file mode 100644
index 0000000..f433265
--- /dev/null
+++ b/docs/dyn/orkut_v2.counters.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="orkut_v2.html">Orkut API</a> . <a href="orkut_v2.counters.html">counters</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(userId)</a></code></p>
+<p class="firstline">Retrieves the counters of a user.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(userId)</code>
+  <pre>Retrieves the counters of a user.
+
+Args:
+  userId: string, The ID of the user whose counters will be listed. Can be me to refer to caller. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "items": [ # List of counters retrieved.
+      {
+        "total": 42, # The number of resources on the counted collection.
+        "link": { # Links to resources related to the parent object. # Link to the collection being counted.
+          "href": "A String", # URL of the link.
+          "type": "A String", # Media type of the link.
+          "rel": "A String", # Relation between the resource and the parent object.
+          "title": "A String", # Title of the link.
+        },
+        "name": "A String", # The name of the counted collection. Currently supported collections are:
+            # - scraps - The scraps of the user.
+            # - photos - The photos of the user.
+            # - videos - The videos of the user.
+            # - pendingTestimonials - The pending testimonials of the user.
+      },
+    ],
+    "kind": "orkut#counters", # Identifies this resource as a collection of counters. Value: "orkut#counters"
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/orkut_v2.html b/docs/dyn/orkut_v2.html
new file mode 100644
index 0000000..5d7ad82
--- /dev/null
+++ b/docs/dyn/orkut_v2.html
@@ -0,0 +1,157 @@
+<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="orkut_v2.html">Orkut API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="orkut_v2.acl.html">acl()</a></code>
+</p>
+<p class="firstline">Returns the acl Resource.</p>
+
+<p class="toc_element">
+  <code><a href="orkut_v2.activities.html">activities()</a></code>
+</p>
+<p class="firstline">Returns the activities Resource.</p>
+
+<p class="toc_element">
+  <code><a href="orkut_v2.activityVisibility.html">activityVisibility()</a></code>
+</p>
+<p class="firstline">Returns the activityVisibility Resource.</p>
+
+<p class="toc_element">
+  <code><a href="orkut_v2.badges.html">badges()</a></code>
+</p>
+<p class="firstline">Returns the badges Resource.</p>
+
+<p class="toc_element">
+  <code><a href="orkut_v2.comments.html">comments()</a></code>
+</p>
+<p class="firstline">Returns the comments Resource.</p>
+
+<p class="toc_element">
+  <code><a href="orkut_v2.communities.html">communities()</a></code>
+</p>
+<p class="firstline">Returns the communities Resource.</p>
+
+<p class="toc_element">
+  <code><a href="orkut_v2.communityFollow.html">communityFollow()</a></code>
+</p>
+<p class="firstline">Returns the communityFollow Resource.</p>
+
+<p class="toc_element">
+  <code><a href="orkut_v2.communityMembers.html">communityMembers()</a></code>
+</p>
+<p class="firstline">Returns the communityMembers Resource.</p>
+
+<p class="toc_element">
+  <code><a href="orkut_v2.communityMessages.html">communityMessages()</a></code>
+</p>
+<p class="firstline">Returns the communityMessages Resource.</p>
+
+<p class="toc_element">
+  <code><a href="orkut_v2.communityPollComments.html">communityPollComments()</a></code>
+</p>
+<p class="firstline">Returns the communityPollComments Resource.</p>
+
+<p class="toc_element">
+  <code><a href="orkut_v2.communityPollVotes.html">communityPollVotes()</a></code>
+</p>
+<p class="firstline">Returns the communityPollVotes Resource.</p>
+
+<p class="toc_element">
+  <code><a href="orkut_v2.communityPolls.html">communityPolls()</a></code>
+</p>
+<p class="firstline">Returns the communityPolls Resource.</p>
+
+<p class="toc_element">
+  <code><a href="orkut_v2.communityRelated.html">communityRelated()</a></code>
+</p>
+<p class="firstline">Returns the communityRelated Resource.</p>
+
+<p class="toc_element">
+  <code><a href="orkut_v2.communityTopics.html">communityTopics()</a></code>
+</p>
+<p class="firstline">Returns the communityTopics Resource.</p>
+
+<p class="toc_element">
+  <code><a href="orkut_v2.counters.html">counters()</a></code>
+</p>
+<p class="firstline">Returns the counters Resource.</p>
+
+<p class="toc_element">
+  <code><a href="orkut_v2.scraps.html">scraps()</a></code>
+</p>
+<p class="firstline">Returns the scraps Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/orkut_v2.scraps.html b/docs/dyn/orkut_v2.scraps.html
new file mode 100644
index 0000000..3aff5dc
--- /dev/null
+++ b/docs/dyn/orkut_v2.scraps.html
@@ -0,0 +1,406 @@
+<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="orkut_v2.html">Orkut API</a> . <a href="orkut_v2.scraps.html">scraps</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#insert">insert(body)</a></code></p>
+<p class="firstline">Creates a new scrap.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="insert">insert(body)</code>
+  <pre>Creates a new scrap.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+  "kind": "orkut#activity", # The kind of activity. Always orkut#activity.
+  "links": [ # Links to resources related to this activity.
+    { # Links to resources related to the parent object.
+      "href": "A String", # URL of the link.
+      "type": "A String", # Media type of the link.
+      "rel": "A String", # Relation between the resource and the parent object.
+      "title": "A String", # Title of the link.
+    },
+  ],
+  "title": "A String", # Title of the activity.
+  "object": { # The activity's object.
+    "content": "A String", # The HTML-formatted content, suitable for display. When updating an activity's content, post the changes to this property, using the value of originalContent as a starting point. If the update is successful, the server adds HTML formatting and responds with this formatted content.
+    "items": [ # The list of additional items.
+      {
+        "displayName": "A String", # The title of the object.
+        "links": [ # Links to other resources related to this object.
+          { # Links to resources related to the parent object.
+            "href": "A String", # URL of the link.
+            "type": "A String", # Media type of the link.
+            "rel": "A String", # Relation between the resource and the parent object.
+            "title": "A String", # Title of the link.
+          },
+        ],
+        "community": { # The community which is related with this activity, e.g. a joined community.
+          "category": "A String", # The category of the community.
+          "kind": "orkut#community", # Identifies this resource as a community. Value: "orkut#community"
+          "member_count": 42, # The number of users who are part of the community. This number may be approximate, so do not rely on it for iteration.
+          "description": "A String", # The description of the community.
+          "language": "A String", # The official language of the community.
+          "links": [ # List of resources for the community.
+            { # Links to resources related to the parent object.
+              "href": "A String", # URL of the link.
+              "type": "A String", # Media type of the link.
+              "rel": "A String", # Relation between the resource and the parent object.
+              "title": "A String", # Title of the link.
+            },
+          ],
+          "creation_date": "A String", # The time the community was created, in RFC 3339 format.
+          "owner": { # The person who owns the community.
+            "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+            "image": { # Image data about the author.
+              "url": "A String", # A URL that points to a thumbnail photo of the author.
+            },
+            "displayName": "A String", # The name of the author, suitable for display.
+            "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+          },
+          "moderators": [ # The list of moderators of the community.
+            {
+              "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+              "image": { # Image data about the author.
+                "url": "A String", # A URL that points to a thumbnail photo of the author.
+              },
+              "displayName": "A String", # The name of the author, suitable for display.
+              "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+            },
+          ],
+          "location": "A String", # The location of the community.
+          "co_owners": [ # The co-owners of the community.
+            {
+              "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+              "image": { # Image data about the author.
+                "url": "A String", # A URL that points to a thumbnail photo of the author.
+              },
+              "displayName": "A String", # The name of the author, suitable for display.
+              "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+            },
+          ],
+          "photo_url": "A String", # The photo of the community.
+          "id": 42, # The id of the community.
+          "name": "A String", # The name of the community.
+        },
+        "content": "A String", # The HTML-formatted content, suitable for display. When updating an activity's content, post the changes to this property, using the value of originalContent as a starting point. If the update is successful, the server adds HTML formatting and responds with this formatted content.
+        "person": { # The person who is related with this activity, e.g. an Added User.
+          "name": { # An object that encapsulates the individual components of a person's name.
+            "givenName": "A String", # The given name (first name) of this person.
+            "familyName": "A String", # The family name (last name) of this person.
+          },
+          "url": "A String", # The person's profile url. This is adapted from Google+ and was originaly introduced as extra OpenSocial convenience fields.
+          "gender": "A String", # The person's gender. Values include "male", "female", and "other".
+          "image": { # The person's profile photo. This is adapted from Google+ and was originaly introduced as extra OpenSocial convenience fields.
+            "url": "A String", # The URL of the person's profile photo.
+          },
+          "birthday": "A String", # The person's date of birth, represented as YYYY-MM-DD.
+          "id": "A String", # The person's opensocial ID.
+        },
+        "id": "A String", # The ID for the object.
+        "objectType": "A String", # The object type.
+      },
+    ],
+    "replies": { # Comments in reply to this activity.
+      "totalItems": "A String", # Total number of comments.
+      "items": [ # The list of comments.
+        {
+          "inReplyTo": { # Link to the original activity where this comment was posted.
+            "type": "A String", # Type of the post on activity stream being commented. Always text/html.
+            "href": "A String", # Link to the post on activity stream being commented.
+            "ref": "A String", # Unique identifier of the post on activity stream being commented.
+            "rel": "inReplyTo", # Relationship between the comment and the post on activity stream being commented. Always inReplyTo.
+          },
+          "kind": "orkut#comment", # Identifies this resource as a comment. Value: "orkut#comment"
+          "links": [ # List of resources for the comment.
+            { # Links to resources related to the parent object.
+              "href": "A String", # URL of the link.
+              "type": "A String", # Media type of the link.
+              "rel": "A String", # Relation between the resource and the parent object.
+              "title": "A String", # Title of the link.
+            },
+          ],
+          "actor": { # The person who posted the comment.
+            "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+            "image": { # Image data about the author.
+              "url": "A String", # A URL that points to a thumbnail photo of the author.
+            },
+            "displayName": "A String", # The name of the author, suitable for display.
+            "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+          },
+          "content": "A String", # The content of the comment in text/html
+          "published": "A String", # The time the comment was initially published, in RFC 3339 format.
+          "id": "A String", # The unique ID for the comment.
+        },
+      ],
+      "url": "A String", # URL for the collection of comments in reply to this activity.
+    },
+    "objectType": "A String", # The type of the object affected by the activity. Clients can use this information to style the rendered activity object differently depending on the content.
+  },
+  "updated": "A String", # The time at which the activity was last updated.
+  "actor": { # The person who performed the activity.
+    "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+    "image": { # Image data about the author.
+      "url": "A String", # A URL that points to a thumbnail photo of the author.
+    },
+    "displayName": "A String", # The name of the author, suitable for display.
+    "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+  },
+  "access": { # Identifies who has access to see this activity.
+    "items": [ # The list of ACL entries.
+      {
+        "type": "A String", # The type of entity to whom access is granted.
+        "id": "A String", # The ID of the entity. For entities of type "person" or "circle", this is the ID of the resource. For other types, this will be unset.
+      },
+    ],
+    "kind": "orkut#acl", # Identifies this resource as an access control list. Value: "orkut#acl"
+    "description": "A String", # Human readable description of the access granted.
+    "totalParticipants": 42, # The total count of participants of the parent resource.
+  },
+  "verb": "A String", # This activity's verb, indicating what action was performed. Possible values are:
+      # - add - User added new content to profile or album, e.g. video, photo.
+      # - post - User publish content to the stream, e.g. status, scrap.
+      # - update - User commented on an activity.
+      # - make-friend - User added a new friend.
+      # - birthday - User has a birthday.
+  "published": "A String", # The time at which the activity was initially published.
+  "id": "A String", # The ID for the activity.
+}
+
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "orkut#activity", # The kind of activity. Always orkut#activity.
+    "links": [ # Links to resources related to this activity.
+      { # Links to resources related to the parent object.
+        "href": "A String", # URL of the link.
+        "type": "A String", # Media type of the link.
+        "rel": "A String", # Relation between the resource and the parent object.
+        "title": "A String", # Title of the link.
+      },
+    ],
+    "title": "A String", # Title of the activity.
+    "object": { # The activity's object.
+      "content": "A String", # The HTML-formatted content, suitable for display. When updating an activity's content, post the changes to this property, using the value of originalContent as a starting point. If the update is successful, the server adds HTML formatting and responds with this formatted content.
+      "items": [ # The list of additional items.
+        {
+          "displayName": "A String", # The title of the object.
+          "links": [ # Links to other resources related to this object.
+            { # Links to resources related to the parent object.
+              "href": "A String", # URL of the link.
+              "type": "A String", # Media type of the link.
+              "rel": "A String", # Relation between the resource and the parent object.
+              "title": "A String", # Title of the link.
+            },
+          ],
+          "community": { # The community which is related with this activity, e.g. a joined community.
+            "category": "A String", # The category of the community.
+            "kind": "orkut#community", # Identifies this resource as a community. Value: "orkut#community"
+            "member_count": 42, # The number of users who are part of the community. This number may be approximate, so do not rely on it for iteration.
+            "description": "A String", # The description of the community.
+            "language": "A String", # The official language of the community.
+            "links": [ # List of resources for the community.
+              { # Links to resources related to the parent object.
+                "href": "A String", # URL of the link.
+                "type": "A String", # Media type of the link.
+                "rel": "A String", # Relation between the resource and the parent object.
+                "title": "A String", # Title of the link.
+              },
+            ],
+            "creation_date": "A String", # The time the community was created, in RFC 3339 format.
+            "owner": { # The person who owns the community.
+              "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+              "image": { # Image data about the author.
+                "url": "A String", # A URL that points to a thumbnail photo of the author.
+              },
+              "displayName": "A String", # The name of the author, suitable for display.
+              "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+            },
+            "moderators": [ # The list of moderators of the community.
+              {
+                "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+                "image": { # Image data about the author.
+                  "url": "A String", # A URL that points to a thumbnail photo of the author.
+                },
+                "displayName": "A String", # The name of the author, suitable for display.
+                "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+              },
+            ],
+            "location": "A String", # The location of the community.
+            "co_owners": [ # The co-owners of the community.
+              {
+                "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+                "image": { # Image data about the author.
+                  "url": "A String", # A URL that points to a thumbnail photo of the author.
+                },
+                "displayName": "A String", # The name of the author, suitable for display.
+                "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+              },
+            ],
+            "photo_url": "A String", # The photo of the community.
+            "id": 42, # The id of the community.
+            "name": "A String", # The name of the community.
+          },
+          "content": "A String", # The HTML-formatted content, suitable for display. When updating an activity's content, post the changes to this property, using the value of originalContent as a starting point. If the update is successful, the server adds HTML formatting and responds with this formatted content.
+          "person": { # The person who is related with this activity, e.g. an Added User.
+            "name": { # An object that encapsulates the individual components of a person's name.
+              "givenName": "A String", # The given name (first name) of this person.
+              "familyName": "A String", # The family name (last name) of this person.
+            },
+            "url": "A String", # The person's profile url. This is adapted from Google+ and was originaly introduced as extra OpenSocial convenience fields.
+            "gender": "A String", # The person's gender. Values include "male", "female", and "other".
+            "image": { # The person's profile photo. This is adapted from Google+ and was originaly introduced as extra OpenSocial convenience fields.
+              "url": "A String", # The URL of the person's profile photo.
+            },
+            "birthday": "A String", # The person's date of birth, represented as YYYY-MM-DD.
+            "id": "A String", # The person's opensocial ID.
+          },
+          "id": "A String", # The ID for the object.
+          "objectType": "A String", # The object type.
+        },
+      ],
+      "replies": { # Comments in reply to this activity.
+        "totalItems": "A String", # Total number of comments.
+        "items": [ # The list of comments.
+          {
+            "inReplyTo": { # Link to the original activity where this comment was posted.
+              "type": "A String", # Type of the post on activity stream being commented. Always text/html.
+              "href": "A String", # Link to the post on activity stream being commented.
+              "ref": "A String", # Unique identifier of the post on activity stream being commented.
+              "rel": "inReplyTo", # Relationship between the comment and the post on activity stream being commented. Always inReplyTo.
+            },
+            "kind": "orkut#comment", # Identifies this resource as a comment. Value: "orkut#comment"
+            "links": [ # List of resources for the comment.
+              { # Links to resources related to the parent object.
+                "href": "A String", # URL of the link.
+                "type": "A String", # Media type of the link.
+                "rel": "A String", # Relation between the resource and the parent object.
+                "title": "A String", # Title of the link.
+              },
+            ],
+            "actor": { # The person who posted the comment.
+              "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+              "image": { # Image data about the author.
+                "url": "A String", # A URL that points to a thumbnail photo of the author.
+              },
+              "displayName": "A String", # The name of the author, suitable for display.
+              "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+            },
+            "content": "A String", # The content of the comment in text/html
+            "published": "A String", # The time the comment was initially published, in RFC 3339 format.
+            "id": "A String", # The unique ID for the comment.
+          },
+        ],
+        "url": "A String", # URL for the collection of comments in reply to this activity.
+      },
+      "objectType": "A String", # The type of the object affected by the activity. Clients can use this information to style the rendered activity object differently depending on the content.
+    },
+    "updated": "A String", # The time at which the activity was last updated.
+    "actor": { # The person who performed the activity.
+      "url": "A String", # The URL of the author who posted the comment [not yet implemented]
+      "image": { # Image data about the author.
+        "url": "A String", # A URL that points to a thumbnail photo of the author.
+      },
+      "displayName": "A String", # The name of the author, suitable for display.
+      "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
+    },
+    "access": { # Identifies who has access to see this activity.
+      "items": [ # The list of ACL entries.
+        {
+          "type": "A String", # The type of entity to whom access is granted.
+          "id": "A String", # The ID of the entity. For entities of type "person" or "circle", this is the ID of the resource. For other types, this will be unset.
+        },
+      ],
+      "kind": "orkut#acl", # Identifies this resource as an access control list. Value: "orkut#acl"
+      "description": "A String", # Human readable description of the access granted.
+      "totalParticipants": 42, # The total count of participants of the parent resource.
+    },
+    "verb": "A String", # This activity's verb, indicating what action was performed. Possible values are:
+        # - add - User added new content to profile or album, e.g. video, photo.
+        # - post - User publish content to the stream, e.g. status, scrap.
+        # - update - User commented on an activity.
+        # - make-friend - User added a new friend.
+        # - birthday - User has a birthday.
+    "published": "A String", # The time at which the activity was initially published.
+    "id": "A String", # The ID for the activity.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/pagespeedonline_v1.html b/docs/dyn/pagespeedonline_v1.html
new file mode 100644
index 0000000..4b0abf3
--- /dev/null
+++ b/docs/dyn/pagespeedonline_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="pagespeedonline_v1.html">PageSpeed Insights API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="pagespeedonline_v1.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_v1.pagespeedapi.html b/docs/dyn/pagespeedonline_v1.pagespeedapi.html
new file mode 100644
index 0000000..5ce2117
--- /dev/null
+++ b/docs/dyn/pagespeedonline_v1.pagespeedapi.html
@@ -0,0 +1,183 @@
+<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_v1.html">PageSpeed Insights API</a> . <a href="pagespeedonline_v1.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, snapshots=None, strategy=None, filter_third_party_resources=None)</a></code></p>
+<p class="firstline">Runs Page Speed analysis on the page at the specified URL, and returns a Page Speed score, 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, snapshots=None, strategy=None, filter_third_party_resources=None)</code>
+  <pre>Runs Page Speed analysis on the page at the specified URL, and returns a Page Speed score, 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 Page Speed rule to run; if none are given, all rules are run (repeated)
+  snapshots: boolean, Indicates if binary data containing snapshot images should be included
+  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 Page Speed results. Contains a ruleResults entry for each Page Speed rule instantiated and run by the server.
+      "locale": "A String", # The locale of the formattedResults, e.g. "en_US".
+      "ruleResults": { # Dictionary of formatted rule results, with one entry for each Page Speed rule instantiated and run by the server.
+        "a_key": { # The enum-like identifier for this rule. For instance "EnableKeepAlive" or "AvoidCssImport". Not localized.
+          "localizedRuleName": "A String", # Localized name of the rule, intended for presentation to a user.
+          "urlBlocks": [ # List of blocks of URLs. Each block may contain a heading and a list of URLs. Each URL may optionally include additional details.
+            {
+              "header": { # Heading to be displayed with the list of URLs.
+                "args": [ # List of arguments for the format string.
+                  {
+                    "type": "A String", # Type of argument. One of URL, STRING_LITERAL, INT_LITERAL, BYTES, or DURATION.
+                    "value": "A String", # Argument value, as a localized string.
+                  },
+                ],
+                "format": "A String", # A localized format string with $N placeholders, where N is the 1-indexed argument number, e.g. 'Minifying the following $1 resources would save a total of $2 bytes'.
+              },
+              "urls": [ # List of entries that provide information about URLs in the url block. Optional.
+                {
+                  "details": [ # List of entries that provide additional details about a single URL. Optional.
+                    {
+                      "args": [ # List of arguments for the format string.
+                        {
+                          "type": "A String", # Type of argument. One of URL, STRING_LITERAL, INT_LITERAL, BYTES, or DURATION.
+                          "value": "A String", # Argument value, as a localized string.
+                        },
+                      ],
+                      "format": "A String", # A localized format string with $N placeholders, where N is the 1-indexed argument number, e.g. 'Unnecessary metadata for this resource adds an additional $1 bytes to its download size'.
+                    },
+                  ],
+                  "result": { # A format string that gives information about the URL, and a list of arguments for that format string.
+                    "args": [ # List of arguments for the format string.
+                      {
+                        "type": "A String", # Type of argument. One of URL, STRING_LITERAL, INT_LITERAL, BYTES, or DURATION.
+                        "value": "A String", # Argument value, as a localized string.
+                      },
+                    ],
+                    "format": "A String", # A localized format string with $N placeholders, where N is the 1-indexed argument number, e.g. 'Minifying the resource at URL $1 can save $2 bytes'.
+                  },
+                },
+              ],
+            },
+          ],
+          "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.
+        },
+      },
+    },
+    "screenshot": { # Base64 encoded screenshot of the page that was analyzed.
+      "width": 42, # Width of screenshot in pixels.
+      "data": "A String", # Image data base64 encoded.
+      "mime_type": "A String", # Mime type of image data. E.g. "image/jpeg".
+      "height": 42, # Height of screenshot in pixels.
+    },
+    "title": "A String", # Title of the page, as displayed in the browser's title bar.
+    "version": { # The version of the Page Speed SDK used to generate these results.
+      "major": 42, # The major version number of the Page Speed SDK used to generate these results.
+      "minor": 42, # The minor version number of the Page Speed SDK used to generate these results.
+    },
+    "score": 42, # The Page Speed Score (0-100), which indicates how much faster a page could be. A high score indicates little room for improvement, while a lower score indicates more room for improvement.
+    "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/plusDomains_v1.activities.html b/docs/dyn/plusDomains_v1.activities.html
new file mode 100644
index 0000000..9f230fc
--- /dev/null
+++ b/docs/dyn/plusDomains_v1.activities.html
@@ -0,0 +1,742 @@
+<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="plusDomains_v1.html">Google+ Domains API</a> . <a href="plusDomains_v1.activities.html">activities</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(activityId)</a></code></p>
+<p class="firstline">Get an activity.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(userId, body, preview=None)</a></code></p>
+<p class="firstline">Create a new activity for the authenticated user.</p>
+<p class="toc_element">
+  <code><a href="#list">list(userId, collection, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">List all of the activities in the specified collection for a particular user.</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(activityId)</code>
+  <pre>Get an activity.
+
+Args:
+  activityId: string, The ID of the activity to get. (required)
+
+Returns:
+  An object of the form:
+
+    {
+      "placeName": "A String", # Name of the place where this activity occurred.
+      "kind": "plus#activity", # Identifies this resource as an activity. Value: "plus#activity".
+      "updated": "A String", # The time at which this activity was last updated. Formatted as an RFC 3339 timestamp.
+      "provider": { # The service provider that initially published this activity.
+        "title": "A String", # Name of the service provider.
+      },
+      "title": "A String", # Title of this activity.
+      "url": "A String", # The link to this activity.
+      "geocode": "A String", # Latitude and longitude where this activity occurred. Format is latitude followed by longitude, space separated.
+      "object": { # The object of this activity.
+        "resharers": { # People who reshared this activity.
+          "totalItems": 42, # Total number of people who reshared this activity.
+          "selfLink": "A String", # The URL for the collection of resharers.
+        },
+        "attachments": [ # The media objects attached to this activity.
+          {
+            "previewThumbnails": [ # When previewing, these are the optional thumbnails for the post. When posting an article, choose one by setting the attachment.image.url property. If you don't choose one, one will be chosen for you.
+              {
+                "url": "A String", # URL of the thumbnail image.
+              },
+            ],
+            "displayName": "A String", # The title of the attachment, such as a photo caption or an article title.
+            "thumbnails": [ # If the attachment is an album, this property is a list of potential additional thumbnails from the album.
+              {
+                "url": "A String", # URL of the webpage containing the image.
+                "image": { # Image resource.
+                  "url": "A String", # Image url.
+                  "width": 42, # The width, in pixels, of the linked resource.
+                  "type": "A String", # Media type of the link.
+                  "height": 42, # The height, in pixels, of the linked resource.
+                },
+                "description": "A String", # Potential name of the thumbnail.
+              },
+            ],
+            "fullImage": { # The full image URL for photo attachments.
+              "url": "A String", # URL of the image.
+              "width": 42, # The width, in pixels, of the linked resource.
+              "type": "A String", # Media type of the link.
+              "height": 42, # The height, in pixels, of the linked resource.
+            },
+            "url": "A String", # The link to the attachment, which should be of type text/html.
+            "image": { # The preview image for photos or videos.
+              "url": "A String", # Image URL.
+              "width": 42, # The width, in pixels, of the linked resource.
+              "type": "A String", # Media type of the link.
+              "height": 42, # The height, in pixels, of the linked resource.
+            },
+            "content": "A String", # If the attachment is an article, this property contains a snippet of text from the article. It can also include descriptions for other types.
+            "embed": { # If the attachment is a video, the embeddable link.
+              "url": "A String", # URL of the link.
+              "type": "A String", # Media type of the link.
+            },
+            "id": "A String", # The ID of the attachment.
+            "objectType": "A String", # The type of media object. Possible values include, but are not limited to, the following values:
+                # - "photo" - A photo.
+                # - "album" - A photo album.
+                # - "video" - A video.
+                # - "article" - An article, specified by a link.
+          },
+        ],
+        "originalContent": "A String", # The content (text) as provided by the author, which is stored without any HTML formatting. When creating or updating an activity, this value must be supplied as plain text in the request.
+        "plusoners": { # People who +1'd this activity.
+          "totalItems": 42, # Total number of people who +1'd this activity.
+          "selfLink": "A String", # The URL for the collection of people who +1'd this activity.
+        },
+        "actor": { # If this activity's object is itself another activity, such as when a person reshares an activity, this property specifies the original activity's actor.
+          "url": "A String", # A link to the original actor's Google profile.
+          "image": { # The image representation of the original actor.
+            "url": "A String", # A URL that points to a thumbnail photo of the original actor.
+          },
+          "displayName": "A String", # The original actor's name, which is suitable for display.
+          "id": "A String", # ID of the original actor.
+        },
+        "content": "A String", # The HTML-formatted content, which is suitable for display.
+        "url": "A String", # The URL that points to the linked resource.
+        "statusForViewer": { # Status of the activity as seen by the viewer.
+          "canPlusone": True or False, # Whether the viewer can +1 the activity.
+          "canUpdate": True or False, # Whether the viewer can edit or delete the activity.
+          "isPlusOned": True or False, # Whether the viewer has +1'd the activity.
+          "resharingDisabled": True or False, # Whether reshares are disabled for the activity.
+          "canComment": True or False, # Whether the viewer can comment on the activity.
+        },
+        "replies": { # Comments in reply to this activity.
+          "totalItems": 42, # Total number of comments on this activity.
+          "selfLink": "A String", # The URL for the collection of comments in reply to this activity.
+        },
+        "id": "A String", # The ID of the object. When resharing an activity, this is the ID of the activity that is being reshared.
+        "objectType": "A String", # The type of the object. Possible values include, but are not limited to, the following values:
+            # - "note" - Textual content.
+            # - "activity" - A Google+ activity.
+      },
+      "placeId": "A String", # ID of the place where this activity occurred.
+      "actor": { # The person who performed this activity.
+        "url": "A String", # The link to the actor's Google profile.
+        "image": { # The image representation of the actor.
+          "url": "A String", # The URL of the actor's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
+        },
+        "displayName": "A String", # The name of the actor, suitable for display.
+        "id": "A String", # The ID of the actor's Person resource.
+        "name": { # An object representation of the individual components of name.
+          "givenName": "A String", # The given name ("first name") of the actor.
+          "familyName": "A String", # The family name ("last name") of the actor.
+        },
+      },
+      "id": "A String", # The ID of this activity.
+      "access": { # Identifies who has access to see this activity.
+        "items": [ # The list of access entries.
+          {
+            "type": "A String", # The type of entry describing to whom access is granted. Possible values are:
+                # - "person" - Access to an individual.
+                # - "circle" - Access to members of a circle.
+                # - "myCircles" - Access to members of all the person's circles.
+                # - "extendedCircles" - Access to members of all the person's circles, plus all of the people in their circles.
+                # - "domain" - Access to members of the person's Google Apps domain.
+                # - "public" - Access to anyone on the web.
+            "displayName": "A String", # A descriptive name for this entry. Suitable for display.
+            "id": "A String", # The ID of the entry. For entries of type "person" or "circle", this is the ID of the resource. For other types, this property is not set.
+          },
+        ],
+        "kind": "plus#acl", # Identifies this resource as a collection of access controls. Value: "plus#acl".
+        "description": "A String", # Description of the access granted, suitable for display.
+        "domainRestricted": True or False, # Whether access is restricted to the domain.
+      },
+      "verb": "A String", # This activity's verb, which indicates the action that was performed. Possible values include, but are not limited to, the following values:
+          # - "post" - Publish content to the stream.
+          # - "share" - Reshare an activity.
+      "etag": "A String", # ETag of this response for caching purposes.
+      "radius": "A String", # Radius, in meters, of the region where this activity occurred, centered at the latitude and longitude identified in geocode.
+      "location": { # The location where this activity occurred.
+        "position": { # The position of the place.
+          "latitude": 3.14, # The latitude of this position.
+          "longitude": 3.14, # The longitude of this position.
+        },
+        "kind": "plus#place", # Identifies this resource as a place. Value: "plus#place".
+        "displayName": "A String", # The display name of the place.
+        "address": { # The physical address of the place.
+          "formatted": "A String", # The formatted address for display.
+        },
+      },
+      "address": "A String", # Street address where this activity occurred.
+      "crosspostSource": "A String", # If this activity is a crosspost from another system, this property specifies the ID of the original activity.
+      "annotation": "A String", # Additional content added by the person who shared this activity, applicable only when resharing an activity.
+      "published": "A String", # The time at which this activity was initially published. Formatted as an RFC 3339 timestamp.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(userId, body, preview=None)</code>
+  <pre>Create a new activity for the authenticated user.
+
+Args:
+  userId: string, The ID of the user to create the activity on behalf of. Its value should be "me", to indicate the authenticated user. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "placeName": "A String", # Name of the place where this activity occurred.
+    "kind": "plus#activity", # Identifies this resource as an activity. Value: "plus#activity".
+    "updated": "A String", # The time at which this activity was last updated. Formatted as an RFC 3339 timestamp.
+    "provider": { # The service provider that initially published this activity.
+      "title": "A String", # Name of the service provider.
+    },
+    "title": "A String", # Title of this activity.
+    "url": "A String", # The link to this activity.
+    "geocode": "A String", # Latitude and longitude where this activity occurred. Format is latitude followed by longitude, space separated.
+    "object": { # The object of this activity.
+      "resharers": { # People who reshared this activity.
+        "totalItems": 42, # Total number of people who reshared this activity.
+        "selfLink": "A String", # The URL for the collection of resharers.
+      },
+      "attachments": [ # The media objects attached to this activity.
+        {
+          "previewThumbnails": [ # When previewing, these are the optional thumbnails for the post. When posting an article, choose one by setting the attachment.image.url property. If you don't choose one, one will be chosen for you.
+            {
+              "url": "A String", # URL of the thumbnail image.
+            },
+          ],
+          "displayName": "A String", # The title of the attachment, such as a photo caption or an article title.
+          "thumbnails": [ # If the attachment is an album, this property is a list of potential additional thumbnails from the album.
+            {
+              "url": "A String", # URL of the webpage containing the image.
+              "image": { # Image resource.
+                "url": "A String", # Image url.
+                "width": 42, # The width, in pixels, of the linked resource.
+                "type": "A String", # Media type of the link.
+                "height": 42, # The height, in pixels, of the linked resource.
+              },
+              "description": "A String", # Potential name of the thumbnail.
+            },
+          ],
+          "fullImage": { # The full image URL for photo attachments.
+            "url": "A String", # URL of the image.
+            "width": 42, # The width, in pixels, of the linked resource.
+            "type": "A String", # Media type of the link.
+            "height": 42, # The height, in pixels, of the linked resource.
+          },
+          "url": "A String", # The link to the attachment, which should be of type text/html.
+          "image": { # The preview image for photos or videos.
+            "url": "A String", # Image URL.
+            "width": 42, # The width, in pixels, of the linked resource.
+            "type": "A String", # Media type of the link.
+            "height": 42, # The height, in pixels, of the linked resource.
+          },
+          "content": "A String", # If the attachment is an article, this property contains a snippet of text from the article. It can also include descriptions for other types.
+          "embed": { # If the attachment is a video, the embeddable link.
+            "url": "A String", # URL of the link.
+            "type": "A String", # Media type of the link.
+          },
+          "id": "A String", # The ID of the attachment.
+          "objectType": "A String", # The type of media object. Possible values include, but are not limited to, the following values:
+              # - "photo" - A photo.
+              # - "album" - A photo album.
+              # - "video" - A video.
+              # - "article" - An article, specified by a link.
+        },
+      ],
+      "originalContent": "A String", # The content (text) as provided by the author, which is stored without any HTML formatting. When creating or updating an activity, this value must be supplied as plain text in the request.
+      "plusoners": { # People who +1'd this activity.
+        "totalItems": 42, # Total number of people who +1'd this activity.
+        "selfLink": "A String", # The URL for the collection of people who +1'd this activity.
+      },
+      "actor": { # If this activity's object is itself another activity, such as when a person reshares an activity, this property specifies the original activity's actor.
+        "url": "A String", # A link to the original actor's Google profile.
+        "image": { # The image representation of the original actor.
+          "url": "A String", # A URL that points to a thumbnail photo of the original actor.
+        },
+        "displayName": "A String", # The original actor's name, which is suitable for display.
+        "id": "A String", # ID of the original actor.
+      },
+      "content": "A String", # The HTML-formatted content, which is suitable for display.
+      "url": "A String", # The URL that points to the linked resource.
+      "statusForViewer": { # Status of the activity as seen by the viewer.
+        "canPlusone": True or False, # Whether the viewer can +1 the activity.
+        "canUpdate": True or False, # Whether the viewer can edit or delete the activity.
+        "isPlusOned": True or False, # Whether the viewer has +1'd the activity.
+        "resharingDisabled": True or False, # Whether reshares are disabled for the activity.
+        "canComment": True or False, # Whether the viewer can comment on the activity.
+      },
+      "replies": { # Comments in reply to this activity.
+        "totalItems": 42, # Total number of comments on this activity.
+        "selfLink": "A String", # The URL for the collection of comments in reply to this activity.
+      },
+      "id": "A String", # The ID of the object. When resharing an activity, this is the ID of the activity that is being reshared.
+      "objectType": "A String", # The type of the object. Possible values include, but are not limited to, the following values:
+          # - "note" - Textual content.
+          # - "activity" - A Google+ activity.
+    },
+    "placeId": "A String", # ID of the place where this activity occurred.
+    "actor": { # The person who performed this activity.
+      "url": "A String", # The link to the actor's Google profile.
+      "image": { # The image representation of the actor.
+        "url": "A String", # The URL of the actor's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
+      },
+      "displayName": "A String", # The name of the actor, suitable for display.
+      "id": "A String", # The ID of the actor's Person resource.
+      "name": { # An object representation of the individual components of name.
+        "givenName": "A String", # The given name ("first name") of the actor.
+        "familyName": "A String", # The family name ("last name") of the actor.
+      },
+    },
+    "id": "A String", # The ID of this activity.
+    "access": { # Identifies who has access to see this activity.
+      "items": [ # The list of access entries.
+        {
+          "type": "A String", # The type of entry describing to whom access is granted. Possible values are:
+              # - "person" - Access to an individual.
+              # - "circle" - Access to members of a circle.
+              # - "myCircles" - Access to members of all the person's circles.
+              # - "extendedCircles" - Access to members of all the person's circles, plus all of the people in their circles.
+              # - "domain" - Access to members of the person's Google Apps domain.
+              # - "public" - Access to anyone on the web.
+          "displayName": "A String", # A descriptive name for this entry. Suitable for display.
+          "id": "A String", # The ID of the entry. For entries of type "person" or "circle", this is the ID of the resource. For other types, this property is not set.
+        },
+      ],
+      "kind": "plus#acl", # Identifies this resource as a collection of access controls. Value: "plus#acl".
+      "description": "A String", # Description of the access granted, suitable for display.
+      "domainRestricted": True or False, # Whether access is restricted to the domain.
+    },
+    "verb": "A String", # This activity's verb, which indicates the action that was performed. Possible values include, but are not limited to, the following values:
+        # - "post" - Publish content to the stream.
+        # - "share" - Reshare an activity.
+    "etag": "A String", # ETag of this response for caching purposes.
+    "radius": "A String", # Radius, in meters, of the region where this activity occurred, centered at the latitude and longitude identified in geocode.
+    "location": { # The location where this activity occurred.
+      "position": { # The position of the place.
+        "latitude": 3.14, # The latitude of this position.
+        "longitude": 3.14, # The longitude of this position.
+      },
+      "kind": "plus#place", # Identifies this resource as a place. Value: "plus#place".
+      "displayName": "A String", # The display name of the place.
+      "address": { # The physical address of the place.
+        "formatted": "A String", # The formatted address for display.
+      },
+    },
+    "address": "A String", # Street address where this activity occurred.
+    "crosspostSource": "A String", # If this activity is a crosspost from another system, this property specifies the ID of the original activity.
+    "annotation": "A String", # Additional content added by the person who shared this activity, applicable only when resharing an activity.
+    "published": "A String", # The time at which this activity was initially published. Formatted as an RFC 3339 timestamp.
+  }
+
+  preview: boolean, If "true", extract the potential media attachments for a URL. The response will include all possible attachments for a URL, including video, photos, and articles based on the content of the page.
+
+Returns:
+  An object of the form:
+
+    {
+      "placeName": "A String", # Name of the place where this activity occurred.
+      "kind": "plus#activity", # Identifies this resource as an activity. Value: "plus#activity".
+      "updated": "A String", # The time at which this activity was last updated. Formatted as an RFC 3339 timestamp.
+      "provider": { # The service provider that initially published this activity.
+        "title": "A String", # Name of the service provider.
+      },
+      "title": "A String", # Title of this activity.
+      "url": "A String", # The link to this activity.
+      "geocode": "A String", # Latitude and longitude where this activity occurred. Format is latitude followed by longitude, space separated.
+      "object": { # The object of this activity.
+        "resharers": { # People who reshared this activity.
+          "totalItems": 42, # Total number of people who reshared this activity.
+          "selfLink": "A String", # The URL for the collection of resharers.
+        },
+        "attachments": [ # The media objects attached to this activity.
+          {
+            "previewThumbnails": [ # When previewing, these are the optional thumbnails for the post. When posting an article, choose one by setting the attachment.image.url property. If you don't choose one, one will be chosen for you.
+              {
+                "url": "A String", # URL of the thumbnail image.
+              },
+            ],
+            "displayName": "A String", # The title of the attachment, such as a photo caption or an article title.
+            "thumbnails": [ # If the attachment is an album, this property is a list of potential additional thumbnails from the album.
+              {
+                "url": "A String", # URL of the webpage containing the image.
+                "image": { # Image resource.
+                  "url": "A String", # Image url.
+                  "width": 42, # The width, in pixels, of the linked resource.
+                  "type": "A String", # Media type of the link.
+                  "height": 42, # The height, in pixels, of the linked resource.
+                },
+                "description": "A String", # Potential name of the thumbnail.
+              },
+            ],
+            "fullImage": { # The full image URL for photo attachments.
+              "url": "A String", # URL of the image.
+              "width": 42, # The width, in pixels, of the linked resource.
+              "type": "A String", # Media type of the link.
+              "height": 42, # The height, in pixels, of the linked resource.
+            },
+            "url": "A String", # The link to the attachment, which should be of type text/html.
+            "image": { # The preview image for photos or videos.
+              "url": "A String", # Image URL.
+              "width": 42, # The width, in pixels, of the linked resource.
+              "type": "A String", # Media type of the link.
+              "height": 42, # The height, in pixels, of the linked resource.
+            },
+            "content": "A String", # If the attachment is an article, this property contains a snippet of text from the article. It can also include descriptions for other types.
+            "embed": { # If the attachment is a video, the embeddable link.
+              "url": "A String", # URL of the link.
+              "type": "A String", # Media type of the link.
+            },
+            "id": "A String", # The ID of the attachment.
+            "objectType": "A String", # The type of media object. Possible values include, but are not limited to, the following values:
+                # - "photo" - A photo.
+                # - "album" - A photo album.
+                # - "video" - A video.
+                # - "article" - An article, specified by a link.
+          },
+        ],
+        "originalContent": "A String", # The content (text) as provided by the author, which is stored without any HTML formatting. When creating or updating an activity, this value must be supplied as plain text in the request.
+        "plusoners": { # People who +1'd this activity.
+          "totalItems": 42, # Total number of people who +1'd this activity.
+          "selfLink": "A String", # The URL for the collection of people who +1'd this activity.
+        },
+        "actor": { # If this activity's object is itself another activity, such as when a person reshares an activity, this property specifies the original activity's actor.
+          "url": "A String", # A link to the original actor's Google profile.
+          "image": { # The image representation of the original actor.
+            "url": "A String", # A URL that points to a thumbnail photo of the original actor.
+          },
+          "displayName": "A String", # The original actor's name, which is suitable for display.
+          "id": "A String", # ID of the original actor.
+        },
+        "content": "A String", # The HTML-formatted content, which is suitable for display.
+        "url": "A String", # The URL that points to the linked resource.
+        "statusForViewer": { # Status of the activity as seen by the viewer.
+          "canPlusone": True or False, # Whether the viewer can +1 the activity.
+          "canUpdate": True or False, # Whether the viewer can edit or delete the activity.
+          "isPlusOned": True or False, # Whether the viewer has +1'd the activity.
+          "resharingDisabled": True or False, # Whether reshares are disabled for the activity.
+          "canComment": True or False, # Whether the viewer can comment on the activity.
+        },
+        "replies": { # Comments in reply to this activity.
+          "totalItems": 42, # Total number of comments on this activity.
+          "selfLink": "A String", # The URL for the collection of comments in reply to this activity.
+        },
+        "id": "A String", # The ID of the object. When resharing an activity, this is the ID of the activity that is being reshared.
+        "objectType": "A String", # The type of the object. Possible values include, but are not limited to, the following values:
+            # - "note" - Textual content.
+            # - "activity" - A Google+ activity.
+      },
+      "placeId": "A String", # ID of the place where this activity occurred.
+      "actor": { # The person who performed this activity.
+        "url": "A String", # The link to the actor's Google profile.
+        "image": { # The image representation of the actor.
+          "url": "A String", # The URL of the actor's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
+        },
+        "displayName": "A String", # The name of the actor, suitable for display.
+        "id": "A String", # The ID of the actor's Person resource.
+        "name": { # An object representation of the individual components of name.
+          "givenName": "A String", # The given name ("first name") of the actor.
+          "familyName": "A String", # The family name ("last name") of the actor.
+        },
+      },
+      "id": "A String", # The ID of this activity.
+      "access": { # Identifies who has access to see this activity.
+        "items": [ # The list of access entries.
+          {
+            "type": "A String", # The type of entry describing to whom access is granted. Possible values are:
+                # - "person" - Access to an individual.
+                # - "circle" - Access to members of a circle.
+                # - "myCircles" - Access to members of all the person's circles.
+                # - "extendedCircles" - Access to members of all the person's circles, plus all of the people in their circles.
+                # - "domain" - Access to members of the person's Google Apps domain.
+                # - "public" - Access to anyone on the web.
+            "displayName": "A String", # A descriptive name for this entry. Suitable for display.
+            "id": "A String", # The ID of the entry. For entries of type "person" or "circle", this is the ID of the resource. For other types, this property is not set.
+          },
+        ],
+        "kind": "plus#acl", # Identifies this resource as a collection of access controls. Value: "plus#acl".
+        "description": "A String", # Description of the access granted, suitable for display.
+        "domainRestricted": True or False, # Whether access is restricted to the domain.
+      },
+      "verb": "A String", # This activity's verb, which indicates the action that was performed. Possible values include, but are not limited to, the following values:
+          # - "post" - Publish content to the stream.
+          # - "share" - Reshare an activity.
+      "etag": "A String", # ETag of this response for caching purposes.
+      "radius": "A String", # Radius, in meters, of the region where this activity occurred, centered at the latitude and longitude identified in geocode.
+      "location": { # The location where this activity occurred.
+        "position": { # The position of the place.
+          "latitude": 3.14, # The latitude of this position.
+          "longitude": 3.14, # The longitude of this position.
+        },
+        "kind": "plus#place", # Identifies this resource as a place. Value: "plus#place".
+        "displayName": "A String", # The display name of the place.
+        "address": { # The physical address of the place.
+          "formatted": "A String", # The formatted address for display.
+        },
+      },
+      "address": "A String", # Street address where this activity occurred.
+      "crosspostSource": "A String", # If this activity is a crosspost from another system, this property specifies the ID of the original activity.
+      "annotation": "A String", # Additional content added by the person who shared this activity, applicable only when resharing an activity.
+      "published": "A String", # The time at which this activity was initially published. Formatted as an RFC 3339 timestamp.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(userId, collection, pageToken=None, maxResults=None)</code>
+  <pre>List all of the activities in the specified collection for a particular user.
+
+Args:
+  userId: string, The ID of the user to get activities for. The special value "me" can be used to indicate the authenticated user. (required)
+  collection: string, The collection of activities to list. (required)
+    Allowed values
+      user - All activities created by the specified user that the authenticated user is authorized to view.
+  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.
+  maxResults: integer, The maximum number of activities to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.
+
+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.
+    "kind": "plus#activityFeed", # Identifies this resource as a collection of activities. Value: "plus#activityFeed".
+    "title": "A String", # The title of this collection of activities, which is a truncated portion of the content.
+    "items": [ # The activities in this page of results.
+      {
+          "placeName": "A String", # Name of the place where this activity occurred.
+          "kind": "plus#activity", # Identifies this resource as an activity. Value: "plus#activity".
+          "updated": "A String", # The time at which this activity was last updated. Formatted as an RFC 3339 timestamp.
+          "provider": { # The service provider that initially published this activity.
+            "title": "A String", # Name of the service provider.
+          },
+          "title": "A String", # Title of this activity.
+          "url": "A String", # The link to this activity.
+          "geocode": "A String", # Latitude and longitude where this activity occurred. Format is latitude followed by longitude, space separated.
+          "object": { # The object of this activity.
+            "resharers": { # People who reshared this activity.
+              "totalItems": 42, # Total number of people who reshared this activity.
+              "selfLink": "A String", # The URL for the collection of resharers.
+            },
+            "attachments": [ # The media objects attached to this activity.
+              {
+                "previewThumbnails": [ # When previewing, these are the optional thumbnails for the post. When posting an article, choose one by setting the attachment.image.url property. If you don't choose one, one will be chosen for you.
+                  {
+                    "url": "A String", # URL of the thumbnail image.
+                  },
+                ],
+                "displayName": "A String", # The title of the attachment, such as a photo caption or an article title.
+                "thumbnails": [ # If the attachment is an album, this property is a list of potential additional thumbnails from the album.
+                  {
+                    "url": "A String", # URL of the webpage containing the image.
+                    "image": { # Image resource.
+                      "url": "A String", # Image url.
+                      "width": 42, # The width, in pixels, of the linked resource.
+                      "type": "A String", # Media type of the link.
+                      "height": 42, # The height, in pixels, of the linked resource.
+                    },
+                    "description": "A String", # Potential name of the thumbnail.
+                  },
+                ],
+                "fullImage": { # The full image URL for photo attachments.
+                  "url": "A String", # URL of the image.
+                  "width": 42, # The width, in pixels, of the linked resource.
+                  "type": "A String", # Media type of the link.
+                  "height": 42, # The height, in pixels, of the linked resource.
+                },
+                "url": "A String", # The link to the attachment, which should be of type text/html.
+                "image": { # The preview image for photos or videos.
+                  "url": "A String", # Image URL.
+                  "width": 42, # The width, in pixels, of the linked resource.
+                  "type": "A String", # Media type of the link.
+                  "height": 42, # The height, in pixels, of the linked resource.
+                },
+                "content": "A String", # If the attachment is an article, this property contains a snippet of text from the article. It can also include descriptions for other types.
+                "embed": { # If the attachment is a video, the embeddable link.
+                  "url": "A String", # URL of the link.
+                  "type": "A String", # Media type of the link.
+                },
+                "id": "A String", # The ID of the attachment.
+                "objectType": "A String", # The type of media object. Possible values include, but are not limited to, the following values:
+                    # - "photo" - A photo.
+                    # - "album" - A photo album.
+                    # - "video" - A video.
+                    # - "article" - An article, specified by a link.
+              },
+            ],
+            "originalContent": "A String", # The content (text) as provided by the author, which is stored without any HTML formatting. When creating or updating an activity, this value must be supplied as plain text in the request.
+            "plusoners": { # People who +1'd this activity.
+              "totalItems": 42, # Total number of people who +1'd this activity.
+              "selfLink": "A String", # The URL for the collection of people who +1'd this activity.
+            },
+            "actor": { # If this activity's object is itself another activity, such as when a person reshares an activity, this property specifies the original activity's actor.
+              "url": "A String", # A link to the original actor's Google profile.
+              "image": { # The image representation of the original actor.
+                "url": "A String", # A URL that points to a thumbnail photo of the original actor.
+              },
+              "displayName": "A String", # The original actor's name, which is suitable for display.
+              "id": "A String", # ID of the original actor.
+            },
+            "content": "A String", # The HTML-formatted content, which is suitable for display.
+            "url": "A String", # The URL that points to the linked resource.
+            "statusForViewer": { # Status of the activity as seen by the viewer.
+              "canPlusone": True or False, # Whether the viewer can +1 the activity.
+              "canUpdate": True or False, # Whether the viewer can edit or delete the activity.
+              "isPlusOned": True or False, # Whether the viewer has +1'd the activity.
+              "resharingDisabled": True or False, # Whether reshares are disabled for the activity.
+              "canComment": True or False, # Whether the viewer can comment on the activity.
+            },
+            "replies": { # Comments in reply to this activity.
+              "totalItems": 42, # Total number of comments on this activity.
+              "selfLink": "A String", # The URL for the collection of comments in reply to this activity.
+            },
+            "id": "A String", # The ID of the object. When resharing an activity, this is the ID of the activity that is being reshared.
+            "objectType": "A String", # The type of the object. Possible values include, but are not limited to, the following values:
+                # - "note" - Textual content.
+                # - "activity" - A Google+ activity.
+          },
+          "placeId": "A String", # ID of the place where this activity occurred.
+          "actor": { # The person who performed this activity.
+            "url": "A String", # The link to the actor's Google profile.
+            "image": { # The image representation of the actor.
+              "url": "A String", # The URL of the actor's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
+            },
+            "displayName": "A String", # The name of the actor, suitable for display.
+            "id": "A String", # The ID of the actor's Person resource.
+            "name": { # An object representation of the individual components of name.
+              "givenName": "A String", # The given name ("first name") of the actor.
+              "familyName": "A String", # The family name ("last name") of the actor.
+            },
+          },
+          "id": "A String", # The ID of this activity.
+          "access": { # Identifies who has access to see this activity.
+            "items": [ # The list of access entries.
+              {
+                "type": "A String", # The type of entry describing to whom access is granted. Possible values are:
+                    # - "person" - Access to an individual.
+                    # - "circle" - Access to members of a circle.
+                    # - "myCircles" - Access to members of all the person's circles.
+                    # - "extendedCircles" - Access to members of all the person's circles, plus all of the people in their circles.
+                    # - "domain" - Access to members of the person's Google Apps domain.
+                    # - "public" - Access to anyone on the web.
+                "displayName": "A String", # A descriptive name for this entry. Suitable for display.
+                "id": "A String", # The ID of the entry. For entries of type "person" or "circle", this is the ID of the resource. For other types, this property is not set.
+              },
+            ],
+            "kind": "plus#acl", # Identifies this resource as a collection of access controls. Value: "plus#acl".
+            "description": "A String", # Description of the access granted, suitable for display.
+            "domainRestricted": True or False, # Whether access is restricted to the domain.
+          },
+          "verb": "A String", # This activity's verb, which indicates the action that was performed. Possible values include, but are not limited to, the following values:
+              # - "post" - Publish content to the stream.
+              # - "share" - Reshare an activity.
+          "etag": "A String", # ETag of this response for caching purposes.
+          "radius": "A String", # Radius, in meters, of the region where this activity occurred, centered at the latitude and longitude identified in geocode.
+          "location": { # The location where this activity occurred.
+            "position": { # The position of the place.
+              "latitude": 3.14, # The latitude of this position.
+              "longitude": 3.14, # The longitude of this position.
+            },
+            "kind": "plus#place", # Identifies this resource as a place. Value: "plus#place".
+            "displayName": "A String", # The display name of the place.
+            "address": { # The physical address of the place.
+              "formatted": "A String", # The formatted address for display.
+            },
+          },
+          "address": "A String", # Street address where this activity occurred.
+          "crosspostSource": "A String", # If this activity is a crosspost from another system, this property specifies the ID of the original activity.
+          "annotation": "A String", # Additional content added by the person who shared this activity, applicable only when resharing an activity.
+          "published": "A String", # The time at which this activity was initially published. Formatted as an RFC 3339 timestamp.
+        },
+    ],
+    "updated": "A String", # The time at which this collection of activities was last updated. Formatted as an RFC 3339 timestamp.
+    "nextLink": "A String", # Link to the next page of activities.
+    "etag": "A String", # ETag of this response for caching purposes.
+    "id": "A String", # The ID of this collection of activities. Deprecated.
+    "selfLink": "A String", # Link to this activity resource.
+  }</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/plusDomains_v1.audiences.html b/docs/dyn/plusDomains_v1.audiences.html
new file mode 100644
index 0000000..817c41d
--- /dev/null
+++ b/docs/dyn/plusDomains_v1.audiences.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="plusDomains_v1.html">Google+ Domains API</a> . <a href="plusDomains_v1.audiences.html">audiences</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(userId, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">List all of the audiences to which a user can share.</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(userId, pageToken=None, maxResults=None)</code>
+  <pre>List all of the audiences to which a user can share.
+
+Args:
+  userId: string, The ID of the user to get audiences for. The special value "me" can be used to indicate the authenticated user. (required)
+  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.
+  maxResults: integer, The maximum number of circles to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.
+
+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.
+    "items": [ # The audiences in this result.
+      {
+        "memberCount": 42, # The number of people in this circle. This only applies if entity_type is CIRCLE.
+        "item": { # The access control list entry.
+          "type": "A String", # The type of entry describing to whom access is granted. Possible values are:
+              # - "person" - Access to an individual.
+              # - "circle" - Access to members of a circle.
+              # - "myCircles" - Access to members of all the person's circles.
+              # - "extendedCircles" - Access to members of all the person's circles, plus all of the people in their circles.
+              # - "domain" - Access to members of the person's Google Apps domain.
+              # - "public" - Access to anyone on the web.
+          "displayName": "A String", # A descriptive name for this entry. Suitable for display.
+          "id": "A String", # The ID of the entry. For entries of type "person" or "circle", this is the ID of the resource. For other types, this property is not set.
+        },
+        "kind": "plus#audience", # Identifies this resource as an audience. Value: "plus#audience".
+        "etag": "A String", # ETag of this response for caching purposes.
+        "visibility": "A String", # The circle members' visibility as chosen by the owner of the circle. This only applies for items with "item.type" equals "circle". Possible values are:
+            # - "public" - Members are visible to the public.
+            # - "limited" - Members are visible to a limited audience.
+            # - "private" - Members are visible to the owner only.
+      },
+    ],
+    "kind": "plus#audiencesFeed", # Identifies this resource as a collection of audiences. Value: "plus#audienceFeed".
+    "etag": "A String", # ETag of this response for caching purposes.
+    "totalItems": 42, # The total number of ACL entries. The number of entries in this response may be smaller due to paging.
+  }</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/plusDomains_v1.circles.html b/docs/dyn/plusDomains_v1.circles.html
new file mode 100644
index 0000000..f702378
--- /dev/null
+++ b/docs/dyn/plusDomains_v1.circles.html
@@ -0,0 +1,337 @@
+<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="plusDomains_v1.html">Google+ Domains API</a> . <a href="plusDomains_v1.circles.html">circles</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#addPeople">addPeople(circleId, userId=None, email=None)</a></code></p>
+<p class="firstline">Add a person to a circle. Google+ limits certain circle operations, including the number of circle adds. Learn More.</p>
+<p class="toc_element">
+  <code><a href="#get">get(circleId)</a></code></p>
+<p class="firstline">Get a circle.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(userId, body)</a></code></p>
+<p class="firstline">Create a new circle for the authenticated user.</p>
+<p class="toc_element">
+  <code><a href="#list">list(userId, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">List all of the circles for a user.</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(circleId, body)</a></code></p>
+<p class="firstline">Update a circle's description. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#remove">remove(circleId)</a></code></p>
+<p class="firstline">Delete a circle.</p>
+<p class="toc_element">
+  <code><a href="#removePeople">removePeople(circleId, userId=None, email=None)</a></code></p>
+<p class="firstline">Remove a person from a circle.</p>
+<p class="toc_element">
+  <code><a href="#update">update(circleId, body)</a></code></p>
+<p class="firstline">Update a circle's description.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="addPeople">addPeople(circleId, userId=None, email=None)</code>
+  <pre>Add a person to a circle. Google+ limits certain circle operations, including the number of circle adds. Learn More.
+
+Args:
+  circleId: string, The ID of the circle to add the person to. (required)
+  userId: string, IDs of the people to add to the circle. Optional, can be repeated. (repeated)
+  email: string, Email of the people to add to the circle. Optional, can be repeated. (repeated)
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "plus#circle", # Identifies this resource as a circle. Value: "plus#circle".
+      "displayName": "A String", # The circle name.
+      "description": "A String", # The description of this circle.
+      "people": { # The people in this circle.
+        "totalItems": 42, # The total number of people in this circle.
+      },
+      "etag": "A String", # ETag of this response for caching purposes.
+      "id": "A String", # The ID of the circle.
+      "selfLink": "A String", # Link to this circle resource
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(circleId)</code>
+  <pre>Get a circle.
+
+Args:
+  circleId: string, The ID of the circle to get. (required)
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "plus#circle", # Identifies this resource as a circle. Value: "plus#circle".
+      "displayName": "A String", # The circle name.
+      "description": "A String", # The description of this circle.
+      "people": { # The people in this circle.
+        "totalItems": 42, # The total number of people in this circle.
+      },
+      "etag": "A String", # ETag of this response for caching purposes.
+      "id": "A String", # The ID of the circle.
+      "selfLink": "A String", # Link to this circle resource
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(userId, body)</code>
+  <pre>Create a new circle for the authenticated user.
+
+Args:
+  userId: string, The ID of the user to create the circle on behalf of. The value "me" can be used to indicate the authenticated user. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "kind": "plus#circle", # Identifies this resource as a circle. Value: "plus#circle".
+    "displayName": "A String", # The circle name.
+    "description": "A String", # The description of this circle.
+    "people": { # The people in this circle.
+      "totalItems": 42, # The total number of people in this circle.
+    },
+    "etag": "A String", # ETag of this response for caching purposes.
+    "id": "A String", # The ID of the circle.
+    "selfLink": "A String", # Link to this circle resource
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "plus#circle", # Identifies this resource as a circle. Value: "plus#circle".
+      "displayName": "A String", # The circle name.
+      "description": "A String", # The description of this circle.
+      "people": { # The people in this circle.
+        "totalItems": 42, # The total number of people in this circle.
+      },
+      "etag": "A String", # ETag of this response for caching purposes.
+      "id": "A String", # The ID of the circle.
+      "selfLink": "A String", # Link to this circle resource
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(userId, pageToken=None, maxResults=None)</code>
+  <pre>List all of the circles for a user.
+
+Args:
+  userId: string, The ID of the user to get circles for. The special value "me" can be used to indicate the authenticated user. (required)
+  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.
+  maxResults: integer, The maximum number of circles to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.
+
+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.
+    "kind": "plus#circleFeed", # Identifies this resource as a collection of circles. Value: "plus#circleFeed".
+    "title": "A String", # The title of this list of resources.
+    "items": [ # The circles in this page of results.
+      {
+          "kind": "plus#circle", # Identifies this resource as a circle. Value: "plus#circle".
+          "displayName": "A String", # The circle name.
+          "description": "A String", # The description of this circle.
+          "people": { # The people in this circle.
+            "totalItems": 42, # The total number of people in this circle.
+          },
+          "etag": "A String", # ETag of this response for caching purposes.
+          "id": "A String", # The ID of the circle.
+          "selfLink": "A String", # Link to this circle resource
+        },
+    ],
+    "nextLink": "A String", # Link to the next page of circles.
+    "etag": "A String", # ETag of this response for caching purposes.
+    "totalItems": 42, # The total number of circles. The number of circles in this response may be smaller due to paging.
+    "selfLink": "A String", # Link to this page of circles.
+  }</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(circleId, body)</code>
+  <pre>Update a circle's description. This method supports patch semantics.
+
+Args:
+  circleId: string, The ID of the circle to update. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "kind": "plus#circle", # Identifies this resource as a circle. Value: "plus#circle".
+    "displayName": "A String", # The circle name.
+    "description": "A String", # The description of this circle.
+    "people": { # The people in this circle.
+      "totalItems": 42, # The total number of people in this circle.
+    },
+    "etag": "A String", # ETag of this response for caching purposes.
+    "id": "A String", # The ID of the circle.
+    "selfLink": "A String", # Link to this circle resource
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "plus#circle", # Identifies this resource as a circle. Value: "plus#circle".
+      "displayName": "A String", # The circle name.
+      "description": "A String", # The description of this circle.
+      "people": { # The people in this circle.
+        "totalItems": 42, # The total number of people in this circle.
+      },
+      "etag": "A String", # ETag of this response for caching purposes.
+      "id": "A String", # The ID of the circle.
+      "selfLink": "A String", # Link to this circle resource
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="remove">remove(circleId)</code>
+  <pre>Delete a circle.
+
+Args:
+  circleId: string, The ID of the circle to delete. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="removePeople">removePeople(circleId, userId=None, email=None)</code>
+  <pre>Remove a person from a circle.
+
+Args:
+  circleId: string, The ID of the circle to remove the person from. (required)
+  userId: string, IDs of the people to remove from the circle. Optional, can be repeated. (repeated)
+  email: string, Email of the people to add to the circle. Optional, can be repeated. (repeated)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(circleId, body)</code>
+  <pre>Update a circle's description.
+
+Args:
+  circleId: string, The ID of the circle to update. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "kind": "plus#circle", # Identifies this resource as a circle. Value: "plus#circle".
+    "displayName": "A String", # The circle name.
+    "description": "A String", # The description of this circle.
+    "people": { # The people in this circle.
+      "totalItems": 42, # The total number of people in this circle.
+    },
+    "etag": "A String", # ETag of this response for caching purposes.
+    "id": "A String", # The ID of the circle.
+    "selfLink": "A String", # Link to this circle resource
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "plus#circle", # Identifies this resource as a circle. Value: "plus#circle".
+      "displayName": "A String", # The circle name.
+      "description": "A String", # The description of this circle.
+      "people": { # The people in this circle.
+        "totalItems": 42, # The total number of people in this circle.
+      },
+      "etag": "A String", # ETag of this response for caching purposes.
+      "id": "A String", # The ID of the circle.
+      "selfLink": "A String", # Link to this circle resource
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/plusDomains_v1.comments.html b/docs/dyn/plusDomains_v1.comments.html
new file mode 100644
index 0000000..6aefd3f
--- /dev/null
+++ b/docs/dyn/plusDomains_v1.comments.html
@@ -0,0 +1,293 @@
+<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="plusDomains_v1.html">Google+ Domains API</a> . <a href="plusDomains_v1.comments.html">comments</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(commentId)</a></code></p>
+<p class="firstline">Get a comment.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(activityId, body)</a></code></p>
+<p class="firstline">Create a new comment in reply to an activity.</p>
+<p class="toc_element">
+  <code><a href="#list">list(activityId, pageToken=None, maxResults=None, sortOrder=None)</a></code></p>
+<p class="firstline">List all of the comments for an activity.</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(commentId)</code>
+  <pre>Get a comment.
+
+Args:
+  commentId: string, The ID of the comment to get. (required)
+
+Returns:
+  An object of the form:
+
+    {
+      "inReplyTo": [ # The activity this comment replied to.
+        {
+          "url": "A String", # The URL of the activity.
+          "id": "A String", # The ID of the activity.
+        },
+      ],
+      "kind": "plus#comment", # Identifies this resource as a comment. Value: "plus#comment".
+      "plusoners": { # People who +1'd this comment.
+        "totalItems": 42, # Total number of people who +1'd this comment.
+      },
+      "object": { # The object of this comment.
+        "content": "A String", # The HTML-formatted content, suitable for display.
+        "originalContent": "A String", # The content (text) as provided by the author, stored without any HTML formatting. When creating or updating a comment, this value must be supplied as plain text in the request.
+        "objectType": "comment", # The object type of this comment. Possible values are:
+            # - "comment" - A comment in reply to an activity.
+      },
+      "updated": "A String", # The time at which this comment was last updated. Formatted as an RFC 3339 timestamp.
+      "actor": { # The person who posted this comment.
+        "url": "A String", # A link to the Person resource for this actor.
+        "image": { # The image representation of this actor.
+          "url": "A String", # The URL of the actor's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
+        },
+        "displayName": "A String", # The name of this actor, suitable for display.
+        "id": "A String", # The ID of the actor.
+      },
+      "verb": "post", # This comment's verb, indicating what action was performed. Possible values are:
+          # - "post" - Publish content to the stream.
+      "etag": "A String", # ETag of this response for caching purposes.
+      "published": "A String", # The time at which this comment was initially published. Formatted as an RFC 3339 timestamp.
+      "id": "A String", # The ID of this comment.
+      "selfLink": "A String", # Link to this comment resource.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(activityId, body)</code>
+  <pre>Create a new comment in reply to an activity.
+
+Args:
+  activityId: string, The ID of the activity to reply to. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "inReplyTo": [ # The activity this comment replied to.
+      {
+        "url": "A String", # The URL of the activity.
+        "id": "A String", # The ID of the activity.
+      },
+    ],
+    "kind": "plus#comment", # Identifies this resource as a comment. Value: "plus#comment".
+    "plusoners": { # People who +1'd this comment.
+      "totalItems": 42, # Total number of people who +1'd this comment.
+    },
+    "object": { # The object of this comment.
+      "content": "A String", # The HTML-formatted content, suitable for display.
+      "originalContent": "A String", # The content (text) as provided by the author, stored without any HTML formatting. When creating or updating a comment, this value must be supplied as plain text in the request.
+      "objectType": "comment", # The object type of this comment. Possible values are:
+          # - "comment" - A comment in reply to an activity.
+    },
+    "updated": "A String", # The time at which this comment was last updated. Formatted as an RFC 3339 timestamp.
+    "actor": { # The person who posted this comment.
+      "url": "A String", # A link to the Person resource for this actor.
+      "image": { # The image representation of this actor.
+        "url": "A String", # The URL of the actor's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
+      },
+      "displayName": "A String", # The name of this actor, suitable for display.
+      "id": "A String", # The ID of the actor.
+    },
+    "verb": "post", # This comment's verb, indicating what action was performed. Possible values are:
+        # - "post" - Publish content to the stream.
+    "etag": "A String", # ETag of this response for caching purposes.
+    "published": "A String", # The time at which this comment was initially published. Formatted as an RFC 3339 timestamp.
+    "id": "A String", # The ID of this comment.
+    "selfLink": "A String", # Link to this comment resource.
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "inReplyTo": [ # The activity this comment replied to.
+        {
+          "url": "A String", # The URL of the activity.
+          "id": "A String", # The ID of the activity.
+        },
+      ],
+      "kind": "plus#comment", # Identifies this resource as a comment. Value: "plus#comment".
+      "plusoners": { # People who +1'd this comment.
+        "totalItems": 42, # Total number of people who +1'd this comment.
+      },
+      "object": { # The object of this comment.
+        "content": "A String", # The HTML-formatted content, suitable for display.
+        "originalContent": "A String", # The content (text) as provided by the author, stored without any HTML formatting. When creating or updating a comment, this value must be supplied as plain text in the request.
+        "objectType": "comment", # The object type of this comment. Possible values are:
+            # - "comment" - A comment in reply to an activity.
+      },
+      "updated": "A String", # The time at which this comment was last updated. Formatted as an RFC 3339 timestamp.
+      "actor": { # The person who posted this comment.
+        "url": "A String", # A link to the Person resource for this actor.
+        "image": { # The image representation of this actor.
+          "url": "A String", # The URL of the actor's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
+        },
+        "displayName": "A String", # The name of this actor, suitable for display.
+        "id": "A String", # The ID of the actor.
+      },
+      "verb": "post", # This comment's verb, indicating what action was performed. Possible values are:
+          # - "post" - Publish content to the stream.
+      "etag": "A String", # ETag of this response for caching purposes.
+      "published": "A String", # The time at which this comment was initially published. Formatted as an RFC 3339 timestamp.
+      "id": "A String", # The ID of this comment.
+      "selfLink": "A String", # Link to this comment resource.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(activityId, pageToken=None, maxResults=None, sortOrder=None)</code>
+  <pre>List all of the comments for an activity.
+
+Args:
+  activityId: string, The ID of the activity to get comments for. (required)
+  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.
+  maxResults: integer, The maximum number of comments to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.
+  sortOrder: string, The order in which to sort the list of comments.
+    Allowed values
+      ascending - Sort oldest comments first.
+      descending - Sort newest comments first.
+
+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.
+    "kind": "plus#commentFeed", # Identifies this resource as a collection of comments. Value: "plus#commentFeed".
+    "title": "A String", # The title of this collection of comments.
+    "items": [ # The comments in this page of results.
+      {
+          "inReplyTo": [ # The activity this comment replied to.
+            {
+              "url": "A String", # The URL of the activity.
+              "id": "A String", # The ID of the activity.
+            },
+          ],
+          "kind": "plus#comment", # Identifies this resource as a comment. Value: "plus#comment".
+          "plusoners": { # People who +1'd this comment.
+            "totalItems": 42, # Total number of people who +1'd this comment.
+          },
+          "object": { # The object of this comment.
+            "content": "A String", # The HTML-formatted content, suitable for display.
+            "originalContent": "A String", # The content (text) as provided by the author, stored without any HTML formatting. When creating or updating a comment, this value must be supplied as plain text in the request.
+            "objectType": "comment", # The object type of this comment. Possible values are:
+                # - "comment" - A comment in reply to an activity.
+          },
+          "updated": "A String", # The time at which this comment was last updated. Formatted as an RFC 3339 timestamp.
+          "actor": { # The person who posted this comment.
+            "url": "A String", # A link to the Person resource for this actor.
+            "image": { # The image representation of this actor.
+              "url": "A String", # The URL of the actor's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
+            },
+            "displayName": "A String", # The name of this actor, suitable for display.
+            "id": "A String", # The ID of the actor.
+          },
+          "verb": "post", # This comment's verb, indicating what action was performed. Possible values are:
+              # - "post" - Publish content to the stream.
+          "etag": "A String", # ETag of this response for caching purposes.
+          "published": "A String", # The time at which this comment was initially published. Formatted as an RFC 3339 timestamp.
+          "id": "A String", # The ID of this comment.
+          "selfLink": "A String", # Link to this comment resource.
+        },
+    ],
+    "updated": "A String", # The time at which this collection of comments was last updated. Formatted as an RFC 3339 timestamp.
+    "nextLink": "A String", # Link to the next page of activities.
+    "etag": "A String", # ETag of this response for caching purposes.
+    "id": "A String", # The ID of this collection of comments.
+  }</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/plusDomains_v1.html b/docs/dyn/plusDomains_v1.html
new file mode 100644
index 0000000..c5285f3
--- /dev/null
+++ b/docs/dyn/plusDomains_v1.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="plusDomains_v1.html">Google+ Domains API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="plusDomains_v1.activities.html">activities()</a></code>
+</p>
+<p class="firstline">Returns the activities Resource.</p>
+
+<p class="toc_element">
+  <code><a href="plusDomains_v1.audiences.html">audiences()</a></code>
+</p>
+<p class="firstline">Returns the audiences Resource.</p>
+
+<p class="toc_element">
+  <code><a href="plusDomains_v1.circles.html">circles()</a></code>
+</p>
+<p class="firstline">Returns the circles Resource.</p>
+
+<p class="toc_element">
+  <code><a href="plusDomains_v1.comments.html">comments()</a></code>
+</p>
+<p class="firstline">Returns the comments Resource.</p>
+
+<p class="toc_element">
+  <code><a href="plusDomains_v1.media.html">media()</a></code>
+</p>
+<p class="firstline">Returns the media Resource.</p>
+
+<p class="toc_element">
+  <code><a href="plusDomains_v1.people.html">people()</a></code>
+</p>
+<p class="firstline">Returns the people Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/plusDomains_v1.media.html b/docs/dyn/plusDomains_v1.media.html
new file mode 100644
index 0000000..36fdbbb
--- /dev/null
+++ b/docs/dyn/plusDomains_v1.media.html
@@ -0,0 +1,183 @@
+<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="plusDomains_v1.html">Google+ Domains API</a> . <a href="plusDomains_v1.media.html">media</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#insert">insert(userId, collection, body=None, media_body=None)</a></code></p>
+<p class="firstline">Add a new media item to an album. The current upload size limitations are 36MB for a photo and 1GB for a video. Uploads do not count against quota if photos are less than 2048 pixels on their longest side or videos are less than 15 minutes in length.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="insert">insert(userId, collection, body=None, media_body=None)</code>
+  <pre>Add a new media item to an album. The current upload size limitations are 36MB for a photo and 1GB for a video. Uploads do not count against quota if photos are less than 2048 pixels on their longest side or videos are less than 15 minutes in length.
+
+Args:
+  userId: string, The ID of the user to create the activity on behalf of. (required)
+  collection: string, A parameter (required)
+    Allowed values
+      cloud - Upload the media to share on Google+.
+  body: object, The request body.
+    The object takes the form of:
+
+{
+    "kind": "plus#media", # The type of resource.
+    "displayName": "A String", # The display name for this media.
+    "exif": { # Exif information of the media item.
+      "time": "A String", # The time the media was captured. Formatted as an RFC 3339 timestamp.
+    },
+    "author": { # The person who uploaded this media.
+      "url": "A String", # A link to the author's Google profile.
+      "image": { # The author's Google profile image.
+        "url": "A String", # The URL of the author's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
+      },
+      "displayName": "A String", # The author's name.
+      "id": "A String", # ID of the author.
+    },
+    "url": "A String", # The URL for the page that hosts this media.
+    "mediaUrl": "A String", # The URL of this photo or video's still image.
+    "videoStatus": "A String", # The encoding status of this video. Possible values are:
+        # - "UPLOADING" - Not all the video bytes have been received.
+        # - "PENDING" - Video not yet processed.
+        # - "FAILED" - Video processing failed.
+        # - "READY" - A single video stream is playable.
+        # - "FINAL" - All video streams are playable.
+    "updated": "A String", # The time at which this media was last updated. This includes changes to media metadata. Formatted as an RFC 3339 timestamp.
+    "summary": "A String", # A description, or caption, for this media.
+    "height": 42, # The height in pixels of the original image.
+    "videoDuration": "A String", # The duration in milliseconds of this video.
+    "sizeBytes": "A String", # The size in bytes of this video.
+    "etag": "A String", # ETag of this response for caching purposes.
+    "streams": [ # The list of video streams for this video. There might be several different streams available for a single video, either Flash or MPEG, of various sizes
+      {
+        "url": "A String", # URL of the video stream.
+        "width": 42, # The width, in pixels, of the video resource.
+        "type": "A String", # MIME type of the video stream.
+        "height": 42, # The height, in pixels, of the video resource.
+      },
+    ],
+    "width": 42, # The width in pixels of the original image.
+    "published": "A String", # The time at which this media was uploaded. Formatted as an RFC 3339 timestamp.
+    "mediaCreatedTime": "A String", # The time at which this media was originally created in UTC. Formatted as an RFC 3339 timestamp that matches this example: 2010-11-25T14:30:27.655Z
+    "id": "A String", # ID of this media, which is generated by the API.
+  }
+
+  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "plus#media", # The type of resource.
+      "displayName": "A String", # The display name for this media.
+      "exif": { # Exif information of the media item.
+        "time": "A String", # The time the media was captured. Formatted as an RFC 3339 timestamp.
+      },
+      "author": { # The person who uploaded this media.
+        "url": "A String", # A link to the author's Google profile.
+        "image": { # The author's Google profile image.
+          "url": "A String", # The URL of the author's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
+        },
+        "displayName": "A String", # The author's name.
+        "id": "A String", # ID of the author.
+      },
+      "url": "A String", # The URL for the page that hosts this media.
+      "mediaUrl": "A String", # The URL of this photo or video's still image.
+      "videoStatus": "A String", # The encoding status of this video. Possible values are:
+          # - "UPLOADING" - Not all the video bytes have been received.
+          # - "PENDING" - Video not yet processed.
+          # - "FAILED" - Video processing failed.
+          # - "READY" - A single video stream is playable.
+          # - "FINAL" - All video streams are playable.
+      "updated": "A String", # The time at which this media was last updated. This includes changes to media metadata. Formatted as an RFC 3339 timestamp.
+      "summary": "A String", # A description, or caption, for this media.
+      "height": 42, # The height in pixels of the original image.
+      "videoDuration": "A String", # The duration in milliseconds of this video.
+      "sizeBytes": "A String", # The size in bytes of this video.
+      "etag": "A String", # ETag of this response for caching purposes.
+      "streams": [ # The list of video streams for this video. There might be several different streams available for a single video, either Flash or MPEG, of various sizes
+        {
+          "url": "A String", # URL of the video stream.
+          "width": 42, # The width, in pixels, of the video resource.
+          "type": "A String", # MIME type of the video stream.
+          "height": 42, # The height, in pixels, of the video resource.
+        },
+      ],
+      "width": 42, # The width in pixels of the original image.
+      "published": "A String", # The time at which this media was uploaded. Formatted as an RFC 3339 timestamp.
+      "mediaCreatedTime": "A String", # The time at which this media was originally created in UTC. Formatted as an RFC 3339 timestamp that matches this example: 2010-11-25T14:30:27.655Z
+      "id": "A String", # ID of this media, which is generated by the API.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/plusDomains_v1.people.html b/docs/dyn/plusDomains_v1.people.html
new file mode 100644
index 0000000..453887b
--- /dev/null
+++ b/docs/dyn/plusDomains_v1.people.html
@@ -0,0 +1,649 @@
+<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="plusDomains_v1.html">Google+ Domains API</a> . <a href="plusDomains_v1.people.html">people</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(userId)</a></code></p>
+<p class="firstline">Get a person's profile.</p>
+<p class="toc_element">
+  <code><a href="#list">list(userId, collection, orderBy=None, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">List all of the people in the specified collection.</p>
+<p class="toc_element">
+  <code><a href="#listByActivity">listByActivity(activityId, collection, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">List all of the people in the specified collection for a particular activity.</p>
+<p class="toc_element">
+  <code><a href="#listByActivity_next">listByActivity_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="#listByCircle">listByCircle(circleId, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">List all of the people who are members of a circle.</p>
+<p class="toc_element">
+  <code><a href="#listByCircle_next">listByCircle_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>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(userId)</code>
+  <pre>Get a person's profile.
+
+Args:
+  userId: string, The ID of the person to get the profile for. The special value "me" can be used to indicate the authenticated user. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "braggingRights": "A String", # The "bragging rights" line of this person.
+    "image": { # The representation of the person's profile photo.
+      "url": "A String", # The URL of the person's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
+    },
+    "domain": "A String", # The hosted domain name for the user's Google Apps account. For instance, example.com. The plus.profile.emails.read or email scope is needed to get this domain name.
+    "id": "A String", # The ID of this person.
+    "occupation": "A String", # The occupation of this person.
+    "verified": True or False, # Whether the person or Google+ Page has been verified.
+    "tagline": "A String", # The brief description (tagline) of this person.
+    "currentLocation": "A String", # The current location for this person.
+    "etag": "A String", # ETag of this response for caching purposes.
+    "circledByCount": 42, # For followers who are visible, the number of people who have added this person or page to a circle.
+    "objectType": "A String", # Type of person within Google+. Possible values include, but are not limited to, the following values:
+        # - "person" - represents an actual person.
+        # - "page" - represents a page.
+    "relationshipStatus": "A String", # The person's relationship status. Possible values include, but are not limited to, the following values:
+        # - "single" - Person is single.
+        # - "in_a_relationship" - Person is in a relationship.
+        # - "engaged" - Person is engaged.
+        # - "married" - Person is married.
+        # - "its_complicated" - The relationship is complicated.
+        # - "open_relationship" - Person is in an open relationship.
+        # - "widowed" - Person is widowed.
+        # - "in_domestic_partnership" - Person is in a domestic partnership.
+        # - "in_civil_union" - Person is in a civil union.
+    "aboutMe": "A String", # A short biography for this person.
+    "placesLived": [ # A list of places where this person has lived.
+      {
+        "primary": True or False, # If "true", this place of residence is this person's primary residence.
+        "value": "A String", # A place where this person has lived. For example: "Seattle, WA", "Near Toronto".
+      },
+    ],
+    "birthday": "A String", # The person's date of birth, represented as YYYY-MM-DD.
+    "nickname": "A String", # The nickname of this person.
+    "emails": [ # A list of email addresses that this person has, including their Google account email address, and the public verified email addresses on their Google+ profile. The plus.profile.emails.read scope is needed to retrieve these email addresses, or the email scope can be used to retrieve just the Google account email address.
+      {
+        "type": "A String", # The type of address. Possible values include, but are not limited to, the following values:
+            # - "account" - Google account email address.
+            # - "home" - Home email address.
+            # - "work" - Work email address.
+            # - "other" - Other.
+        "value": "A String", # The email address.
+      },
+    ],
+    "organizations": [ # A list of current or past organizations with which this person is associated.
+      {
+        "startDate": "A String", # The date that the person joined this organization.
+        "endDate": "A String", # The date that the person left this organization.
+        "description": "A String", # A short description of the person's role in this organization. Deprecated.
+        "title": "A String", # The person's job title or role within the organization.
+        "primary": True or False, # If "true", indicates this organization is the person's primary one, which is typically interpreted as the current one.
+        "location": "A String", # The location of this organization. Deprecated.
+        "department": "A String", # The department within the organization. Deprecated.
+        "type": "A String", # The type of organization. Possible values include, but are not limited to, the following values:
+            # - "work" - Work.
+            # - "school" - School.
+        "name": "A String", # The name of the organization.
+      },
+    ],
+    "kind": "plus#person", # Identifies this resource as a person. Value: "plus#person".
+    "displayName": "A String", # The name of this person, which is suitable for display.
+    "name": { # An object representation of the individual components of a person's name.
+      "honorificPrefix": "A String", # The honorific prefixes (such as "Dr." or "Mrs.") for this person.
+      "middleName": "A String", # The middle name of this person.
+      "familyName": "A String", # The family name (last name) of this person.
+      "formatted": "A String", # The full name of this person, including middle names, suffixes, etc.
+      "givenName": "A String", # The given name (first name) of this person.
+      "honorificSuffix": "A String", # The honorific suffixes (such as "Jr.") for this person.
+    },
+    "skills": "A String", # The person's skills.
+    "gender": "A String", # The person's gender. Possible values include, but are not limited to, the following values:
+        # - "male" - Male gender.
+        # - "female" - Female gender.
+        # - "other" - Other.
+    "cover": { # The cover photo content.
+      "layout": "A String", # The layout of the cover art. Possible values include, but are not limited to, the following values:
+          # - "banner" - One large image banner.
+      "coverInfo": { # Extra information about the cover photo.
+        "leftImageOffset": 42, # The difference between the left position of the cover image and the actual displayed cover image. Only valid for banner layout.
+        "topImageOffset": 42, # The difference between the top position of the cover image and the actual displayed cover image. Only valid for banner layout.
+      },
+      "coverPhoto": { # The person's primary cover image.
+        "url": "A String", # The URL of the image.
+        "width": 42, # The width of the image.
+        "height": 42, # The height of the image.
+      },
+    },
+    "url": "A String", # The URL of this person's profile.
+    "isPlusUser": True or False, # Whether this user has signed up for Google+.
+    "plusOneCount": 42, # If a Google+ Page, the number of people who have +1'd this page.
+    "urls": [ # A list of URLs for this person.
+      {
+        "type": "A String", # The type of URL. Possible values include, but are not limited to, the following values:
+            # - "otherProfile" - URL for another profile.
+            # - "contributor" - URL to a site for which this person is a contributor.
+            # - "website" - URL for this Google+ Page's primary website.
+            # - "other" - Other URL.
+        "value": "A String", # The URL value.
+        "label": "A String", # The label of the URL.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(userId, collection, orderBy=None, pageToken=None, maxResults=None)</code>
+  <pre>List all of the people in the specified collection.
+
+Args:
+  userId: string, Get the collection of people for the person identified. Use "me" to indicate the authenticated user. (required)
+  collection: string, The collection of people to list. (required)
+    Allowed values
+      circled - The list of people who this user has added to one or more circles.
+  orderBy: string, The order to return people in.
+    Allowed values
+      alphabetical - Order the people by their display name.
+      best - Order people based on the relevence to the viewer.
+  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.
+  maxResults: integer, The maximum number of people to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.
+
+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.
+    "kind": "plus#peopleFeed", # Identifies this resource as a collection of people. Value: "plus#peopleFeed".
+    "title": "A String", # The title of this collection of people.
+    "items": [ # The people in this page of results. Each item includes the id, displayName, image, and url for the person. To retrieve additional profile data, see the people.get method.
+      {
+        "braggingRights": "A String", # The "bragging rights" line of this person.
+        "image": { # The representation of the person's profile photo.
+          "url": "A String", # The URL of the person's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
+        },
+        "domain": "A String", # The hosted domain name for the user's Google Apps account. For instance, example.com. The plus.profile.emails.read or email scope is needed to get this domain name.
+        "id": "A String", # The ID of this person.
+        "occupation": "A String", # The occupation of this person.
+        "verified": True or False, # Whether the person or Google+ Page has been verified.
+        "tagline": "A String", # The brief description (tagline) of this person.
+        "currentLocation": "A String", # The current location for this person.
+        "etag": "A String", # ETag of this response for caching purposes.
+        "circledByCount": 42, # For followers who are visible, the number of people who have added this person or page to a circle.
+        "objectType": "A String", # Type of person within Google+. Possible values include, but are not limited to, the following values:
+            # - "person" - represents an actual person.
+            # - "page" - represents a page.
+        "relationshipStatus": "A String", # The person's relationship status. Possible values include, but are not limited to, the following values:
+            # - "single" - Person is single.
+            # - "in_a_relationship" - Person is in a relationship.
+            # - "engaged" - Person is engaged.
+            # - "married" - Person is married.
+            # - "its_complicated" - The relationship is complicated.
+            # - "open_relationship" - Person is in an open relationship.
+            # - "widowed" - Person is widowed.
+            # - "in_domestic_partnership" - Person is in a domestic partnership.
+            # - "in_civil_union" - Person is in a civil union.
+        "aboutMe": "A String", # A short biography for this person.
+        "placesLived": [ # A list of places where this person has lived.
+          {
+            "primary": True or False, # If "true", this place of residence is this person's primary residence.
+            "value": "A String", # A place where this person has lived. For example: "Seattle, WA", "Near Toronto".
+          },
+        ],
+        "birthday": "A String", # The person's date of birth, represented as YYYY-MM-DD.
+        "nickname": "A String", # The nickname of this person.
+        "emails": [ # A list of email addresses that this person has, including their Google account email address, and the public verified email addresses on their Google+ profile. The plus.profile.emails.read scope is needed to retrieve these email addresses, or the email scope can be used to retrieve just the Google account email address.
+          {
+            "type": "A String", # The type of address. Possible values include, but are not limited to, the following values:
+                # - "account" - Google account email address.
+                # - "home" - Home email address.
+                # - "work" - Work email address.
+                # - "other" - Other.
+            "value": "A String", # The email address.
+          },
+        ],
+        "organizations": [ # A list of current or past organizations with which this person is associated.
+          {
+            "startDate": "A String", # The date that the person joined this organization.
+            "endDate": "A String", # The date that the person left this organization.
+            "description": "A String", # A short description of the person's role in this organization. Deprecated.
+            "title": "A String", # The person's job title or role within the organization.
+            "primary": True or False, # If "true", indicates this organization is the person's primary one, which is typically interpreted as the current one.
+            "location": "A String", # The location of this organization. Deprecated.
+            "department": "A String", # The department within the organization. Deprecated.
+            "type": "A String", # The type of organization. Possible values include, but are not limited to, the following values:
+                # - "work" - Work.
+                # - "school" - School.
+            "name": "A String", # The name of the organization.
+          },
+        ],
+        "kind": "plus#person", # Identifies this resource as a person. Value: "plus#person".
+        "displayName": "A String", # The name of this person, which is suitable for display.
+        "name": { # An object representation of the individual components of a person's name.
+          "honorificPrefix": "A String", # The honorific prefixes (such as "Dr." or "Mrs.") for this person.
+          "middleName": "A String", # The middle name of this person.
+          "familyName": "A String", # The family name (last name) of this person.
+          "formatted": "A String", # The full name of this person, including middle names, suffixes, etc.
+          "givenName": "A String", # The given name (first name) of this person.
+          "honorificSuffix": "A String", # The honorific suffixes (such as "Jr.") for this person.
+        },
+        "skills": "A String", # The person's skills.
+        "gender": "A String", # The person's gender. Possible values include, but are not limited to, the following values:
+            # - "male" - Male gender.
+            # - "female" - Female gender.
+            # - "other" - Other.
+        "cover": { # The cover photo content.
+          "layout": "A String", # The layout of the cover art. Possible values include, but are not limited to, the following values:
+              # - "banner" - One large image banner.
+          "coverInfo": { # Extra information about the cover photo.
+            "leftImageOffset": 42, # The difference between the left position of the cover image and the actual displayed cover image. Only valid for banner layout.
+            "topImageOffset": 42, # The difference between the top position of the cover image and the actual displayed cover image. Only valid for banner layout.
+          },
+          "coverPhoto": { # The person's primary cover image.
+            "url": "A String", # The URL of the image.
+            "width": 42, # The width of the image.
+            "height": 42, # The height of the image.
+          },
+        },
+        "url": "A String", # The URL of this person's profile.
+        "isPlusUser": True or False, # Whether this user has signed up for Google+.
+        "plusOneCount": 42, # If a Google+ Page, the number of people who have +1'd this page.
+        "urls": [ # A list of URLs for this person.
+          {
+            "type": "A String", # The type of URL. Possible values include, but are not limited to, the following values:
+                # - "otherProfile" - URL for another profile.
+                # - "contributor" - URL to a site for which this person is a contributor.
+                # - "website" - URL for this Google+ Page's primary website.
+                # - "other" - Other URL.
+            "value": "A String", # The URL value.
+            "label": "A String", # The label of the URL.
+          },
+        ],
+      },
+    ],
+    "etag": "A String", # ETag of this response for caching purposes.
+    "totalItems": 42, # The total number of people available in this list. The number of people in a response might be smaller due to paging. This might not be set for all collections.
+    "selfLink": "A String", # Link to this resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="listByActivity">listByActivity(activityId, collection, pageToken=None, maxResults=None)</code>
+  <pre>List all of the people in the specified collection for a particular activity.
+
+Args:
+  activityId: string, The ID of the activity to get the list of people for. (required)
+  collection: string, The collection of people to list. (required)
+    Allowed values
+      plusoners - List all people who have +1'd this activity.
+      resharers - List all people who have reshared this activity.
+      sharedto - List all people who this activity was shared to.
+  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.
+  maxResults: integer, The maximum number of people to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.
+
+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.
+    "kind": "plus#peopleFeed", # Identifies this resource as a collection of people. Value: "plus#peopleFeed".
+    "title": "A String", # The title of this collection of people.
+    "items": [ # The people in this page of results. Each item includes the id, displayName, image, and url for the person. To retrieve additional profile data, see the people.get method.
+      {
+        "braggingRights": "A String", # The "bragging rights" line of this person.
+        "image": { # The representation of the person's profile photo.
+          "url": "A String", # The URL of the person's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
+        },
+        "domain": "A String", # The hosted domain name for the user's Google Apps account. For instance, example.com. The plus.profile.emails.read or email scope is needed to get this domain name.
+        "id": "A String", # The ID of this person.
+        "occupation": "A String", # The occupation of this person.
+        "verified": True or False, # Whether the person or Google+ Page has been verified.
+        "tagline": "A String", # The brief description (tagline) of this person.
+        "currentLocation": "A String", # The current location for this person.
+        "etag": "A String", # ETag of this response for caching purposes.
+        "circledByCount": 42, # For followers who are visible, the number of people who have added this person or page to a circle.
+        "objectType": "A String", # Type of person within Google+. Possible values include, but are not limited to, the following values:
+            # - "person" - represents an actual person.
+            # - "page" - represents a page.
+        "relationshipStatus": "A String", # The person's relationship status. Possible values include, but are not limited to, the following values:
+            # - "single" - Person is single.
+            # - "in_a_relationship" - Person is in a relationship.
+            # - "engaged" - Person is engaged.
+            # - "married" - Person is married.
+            # - "its_complicated" - The relationship is complicated.
+            # - "open_relationship" - Person is in an open relationship.
+            # - "widowed" - Person is widowed.
+            # - "in_domestic_partnership" - Person is in a domestic partnership.
+            # - "in_civil_union" - Person is in a civil union.
+        "aboutMe": "A String", # A short biography for this person.
+        "placesLived": [ # A list of places where this person has lived.
+          {
+            "primary": True or False, # If "true", this place of residence is this person's primary residence.
+            "value": "A String", # A place where this person has lived. For example: "Seattle, WA", "Near Toronto".
+          },
+        ],
+        "birthday": "A String", # The person's date of birth, represented as YYYY-MM-DD.
+        "nickname": "A String", # The nickname of this person.
+        "emails": [ # A list of email addresses that this person has, including their Google account email address, and the public verified email addresses on their Google+ profile. The plus.profile.emails.read scope is needed to retrieve these email addresses, or the email scope can be used to retrieve just the Google account email address.
+          {
+            "type": "A String", # The type of address. Possible values include, but are not limited to, the following values:
+                # - "account" - Google account email address.
+                # - "home" - Home email address.
+                # - "work" - Work email address.
+                # - "other" - Other.
+            "value": "A String", # The email address.
+          },
+        ],
+        "organizations": [ # A list of current or past organizations with which this person is associated.
+          {
+            "startDate": "A String", # The date that the person joined this organization.
+            "endDate": "A String", # The date that the person left this organization.
+            "description": "A String", # A short description of the person's role in this organization. Deprecated.
+            "title": "A String", # The person's job title or role within the organization.
+            "primary": True or False, # If "true", indicates this organization is the person's primary one, which is typically interpreted as the current one.
+            "location": "A String", # The location of this organization. Deprecated.
+            "department": "A String", # The department within the organization. Deprecated.
+            "type": "A String", # The type of organization. Possible values include, but are not limited to, the following values:
+                # - "work" - Work.
+                # - "school" - School.
+            "name": "A String", # The name of the organization.
+          },
+        ],
+        "kind": "plus#person", # Identifies this resource as a person. Value: "plus#person".
+        "displayName": "A String", # The name of this person, which is suitable for display.
+        "name": { # An object representation of the individual components of a person's name.
+          "honorificPrefix": "A String", # The honorific prefixes (such as "Dr." or "Mrs.") for this person.
+          "middleName": "A String", # The middle name of this person.
+          "familyName": "A String", # The family name (last name) of this person.
+          "formatted": "A String", # The full name of this person, including middle names, suffixes, etc.
+          "givenName": "A String", # The given name (first name) of this person.
+          "honorificSuffix": "A String", # The honorific suffixes (such as "Jr.") for this person.
+        },
+        "skills": "A String", # The person's skills.
+        "gender": "A String", # The person's gender. Possible values include, but are not limited to, the following values:
+            # - "male" - Male gender.
+            # - "female" - Female gender.
+            # - "other" - Other.
+        "cover": { # The cover photo content.
+          "layout": "A String", # The layout of the cover art. Possible values include, but are not limited to, the following values:
+              # - "banner" - One large image banner.
+          "coverInfo": { # Extra information about the cover photo.
+            "leftImageOffset": 42, # The difference between the left position of the cover image and the actual displayed cover image. Only valid for banner layout.
+            "topImageOffset": 42, # The difference between the top position of the cover image and the actual displayed cover image. Only valid for banner layout.
+          },
+          "coverPhoto": { # The person's primary cover image.
+            "url": "A String", # The URL of the image.
+            "width": 42, # The width of the image.
+            "height": 42, # The height of the image.
+          },
+        },
+        "url": "A String", # The URL of this person's profile.
+        "isPlusUser": True or False, # Whether this user has signed up for Google+.
+        "plusOneCount": 42, # If a Google+ Page, the number of people who have +1'd this page.
+        "urls": [ # A list of URLs for this person.
+          {
+            "type": "A String", # The type of URL. Possible values include, but are not limited to, the following values:
+                # - "otherProfile" - URL for another profile.
+                # - "contributor" - URL to a site for which this person is a contributor.
+                # - "website" - URL for this Google+ Page's primary website.
+                # - "other" - Other URL.
+            "value": "A String", # The URL value.
+            "label": "A String", # The label of the URL.
+          },
+        ],
+      },
+    ],
+    "etag": "A String", # ETag of this response for caching purposes.
+    "totalItems": 42, # The total number of people available in this list. The number of people in a response might be smaller due to paging. This might not be set for all collections.
+    "selfLink": "A String", # Link to this resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="listByActivity_next">listByActivity_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="listByCircle">listByCircle(circleId, pageToken=None, maxResults=None)</code>
+  <pre>List all of the people who are members of a circle.
+
+Args:
+  circleId: string, The ID of the circle to get the members of. (required)
+  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.
+  maxResults: integer, The maximum number of people to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.
+
+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.
+    "kind": "plus#peopleFeed", # Identifies this resource as a collection of people. Value: "plus#peopleFeed".
+    "title": "A String", # The title of this collection of people.
+    "items": [ # The people in this page of results. Each item includes the id, displayName, image, and url for the person. To retrieve additional profile data, see the people.get method.
+      {
+        "braggingRights": "A String", # The "bragging rights" line of this person.
+        "image": { # The representation of the person's profile photo.
+          "url": "A String", # The URL of the person's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
+        },
+        "domain": "A String", # The hosted domain name for the user's Google Apps account. For instance, example.com. The plus.profile.emails.read or email scope is needed to get this domain name.
+        "id": "A String", # The ID of this person.
+        "occupation": "A String", # The occupation of this person.
+        "verified": True or False, # Whether the person or Google+ Page has been verified.
+        "tagline": "A String", # The brief description (tagline) of this person.
+        "currentLocation": "A String", # The current location for this person.
+        "etag": "A String", # ETag of this response for caching purposes.
+        "circledByCount": 42, # For followers who are visible, the number of people who have added this person or page to a circle.
+        "objectType": "A String", # Type of person within Google+. Possible values include, but are not limited to, the following values:
+            # - "person" - represents an actual person.
+            # - "page" - represents a page.
+        "relationshipStatus": "A String", # The person's relationship status. Possible values include, but are not limited to, the following values:
+            # - "single" - Person is single.
+            # - "in_a_relationship" - Person is in a relationship.
+            # - "engaged" - Person is engaged.
+            # - "married" - Person is married.
+            # - "its_complicated" - The relationship is complicated.
+            # - "open_relationship" - Person is in an open relationship.
+            # - "widowed" - Person is widowed.
+            # - "in_domestic_partnership" - Person is in a domestic partnership.
+            # - "in_civil_union" - Person is in a civil union.
+        "aboutMe": "A String", # A short biography for this person.
+        "placesLived": [ # A list of places where this person has lived.
+          {
+            "primary": True or False, # If "true", this place of residence is this person's primary residence.
+            "value": "A String", # A place where this person has lived. For example: "Seattle, WA", "Near Toronto".
+          },
+        ],
+        "birthday": "A String", # The person's date of birth, represented as YYYY-MM-DD.
+        "nickname": "A String", # The nickname of this person.
+        "emails": [ # A list of email addresses that this person has, including their Google account email address, and the public verified email addresses on their Google+ profile. The plus.profile.emails.read scope is needed to retrieve these email addresses, or the email scope can be used to retrieve just the Google account email address.
+          {
+            "type": "A String", # The type of address. Possible values include, but are not limited to, the following values:
+                # - "account" - Google account email address.
+                # - "home" - Home email address.
+                # - "work" - Work email address.
+                # - "other" - Other.
+            "value": "A String", # The email address.
+          },
+        ],
+        "organizations": [ # A list of current or past organizations with which this person is associated.
+          {
+            "startDate": "A String", # The date that the person joined this organization.
+            "endDate": "A String", # The date that the person left this organization.
+            "description": "A String", # A short description of the person's role in this organization. Deprecated.
+            "title": "A String", # The person's job title or role within the organization.
+            "primary": True or False, # If "true", indicates this organization is the person's primary one, which is typically interpreted as the current one.
+            "location": "A String", # The location of this organization. Deprecated.
+            "department": "A String", # The department within the organization. Deprecated.
+            "type": "A String", # The type of organization. Possible values include, but are not limited to, the following values:
+                # - "work" - Work.
+                # - "school" - School.
+            "name": "A String", # The name of the organization.
+          },
+        ],
+        "kind": "plus#person", # Identifies this resource as a person. Value: "plus#person".
+        "displayName": "A String", # The name of this person, which is suitable for display.
+        "name": { # An object representation of the individual components of a person's name.
+          "honorificPrefix": "A String", # The honorific prefixes (such as "Dr." or "Mrs.") for this person.
+          "middleName": "A String", # The middle name of this person.
+          "familyName": "A String", # The family name (last name) of this person.
+          "formatted": "A String", # The full name of this person, including middle names, suffixes, etc.
+          "givenName": "A String", # The given name (first name) of this person.
+          "honorificSuffix": "A String", # The honorific suffixes (such as "Jr.") for this person.
+        },
+        "skills": "A String", # The person's skills.
+        "gender": "A String", # The person's gender. Possible values include, but are not limited to, the following values:
+            # - "male" - Male gender.
+            # - "female" - Female gender.
+            # - "other" - Other.
+        "cover": { # The cover photo content.
+          "layout": "A String", # The layout of the cover art. Possible values include, but are not limited to, the following values:
+              # - "banner" - One large image banner.
+          "coverInfo": { # Extra information about the cover photo.
+            "leftImageOffset": 42, # The difference between the left position of the cover image and the actual displayed cover image. Only valid for banner layout.
+            "topImageOffset": 42, # The difference between the top position of the cover image and the actual displayed cover image. Only valid for banner layout.
+          },
+          "coverPhoto": { # The person's primary cover image.
+            "url": "A String", # The URL of the image.
+            "width": 42, # The width of the image.
+            "height": 42, # The height of the image.
+          },
+        },
+        "url": "A String", # The URL of this person's profile.
+        "isPlusUser": True or False, # Whether this user has signed up for Google+.
+        "plusOneCount": 42, # If a Google+ Page, the number of people who have +1'd this page.
+        "urls": [ # A list of URLs for this person.
+          {
+            "type": "A String", # The type of URL. Possible values include, but are not limited to, the following values:
+                # - "otherProfile" - URL for another profile.
+                # - "contributor" - URL to a site for which this person is a contributor.
+                # - "website" - URL for this Google+ Page's primary website.
+                # - "other" - Other URL.
+            "value": "A String", # The URL value.
+            "label": "A String", # The label of the URL.
+          },
+        ],
+      },
+    ],
+    "etag": "A String", # ETag of this response for caching purposes.
+    "totalItems": 42, # The total number of people available in this list. The number of people in a response might be smaller due to paging. This might not be set for all collections.
+    "selfLink": "A String", # Link to this resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="listByCircle_next">listByCircle_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>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/plus_v1.activities.html b/docs/dyn/plus_v1.activities.html
new file mode 100644
index 0000000..a90f7cc
--- /dev/null
+++ b/docs/dyn/plus_v1.activities.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="plus_v1.html">Google+ API</a> . <a href="plus_v1.activities.html">activities</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(activityId)</a></code></p>
+<p class="firstline">Get an activity.</p>
+<p class="toc_element">
+  <code><a href="#list">list(userId, collection, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">List all of the activities in the specified collection for a particular user.</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="#search">search(query, orderBy=None, language=None, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Search public activities.</p>
+<p class="toc_element">
+  <code><a href="#search_next">search_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(activityId)</code>
+  <pre>Get an activity.
+
+Args:
+  activityId: string, The ID of the activity to get. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "placeName": "A String", # Name of the place where this activity occurred.
+    "kind": "plus#activity", # Identifies this resource as an activity. Value: "plus#activity".
+    "updated": "A String", # The time at which this activity was last updated. Formatted as an RFC 3339 timestamp.
+    "provider": { # The service provider that initially published this activity.
+      "title": "A String", # Name of the service provider.
+    },
+    "title": "A String", # Title of this activity.
+    "url": "A String", # The link to this activity.
+    "geocode": "A String", # Latitude and longitude where this activity occurred. Format is latitude followed by longitude, space separated.
+    "object": { # The object of this activity.
+      "resharers": { # People who reshared this activity.
+        "totalItems": 42, # Total number of people who reshared this activity.
+        "selfLink": "A String", # The URL for the collection of resharers.
+      },
+      "attachments": [ # The media objects attached to this activity.
+        {
+          "displayName": "A String", # The title of the attachment, such as a photo caption or an article title.
+          "thumbnails": [ # If the attachment is an album, this property is a list of potential additional thumbnails from the album.
+            {
+              "url": "A String", # URL of the webpage containing the image.
+              "image": { # Image resource.
+                "url": "A String", # Image url.
+                "width": 42, # The width, in pixels, of the linked resource.
+                "type": "A String", # Media type of the link.
+                "height": 42, # The height, in pixels, of the linked resource.
+              },
+              "description": "A String", # Potential name of the thumbnail.
+            },
+          ],
+          "fullImage": { # The full image URL for photo attachments.
+            "url": "A String", # URL of the image.
+            "width": 42, # The width, in pixels, of the linked resource.
+            "type": "A String", # Media type of the link.
+            "height": 42, # The height, in pixels, of the linked resource.
+          },
+          "url": "A String", # The link to the attachment, which should be of type text/html.
+          "image": { # The preview image for photos or videos.
+            "url": "A String", # Image URL.
+            "width": 42, # The width, in pixels, of the linked resource.
+            "type": "A String", # Media type of the link.
+            "height": 42, # The height, in pixels, of the linked resource.
+          },
+          "content": "A String", # If the attachment is an article, this property contains a snippet of text from the article. It can also include descriptions for other types.
+          "embed": { # If the attachment is a video, the embeddable link.
+            "url": "A String", # URL of the link.
+            "type": "A String", # Media type of the link.
+          },
+          "id": "A String", # The ID of the attachment.
+          "objectType": "A String", # The type of media object. Possible values include, but are not limited to, the following values:
+              # - "photo" - A photo.
+              # - "album" - A photo album.
+              # - "video" - A video.
+              # - "article" - An article, specified by a link.
+        },
+      ],
+      "originalContent": "A String", # The content (text) as provided by the author, which is stored without any HTML formatting. When creating or updating an activity, this value must be supplied as plain text in the request.
+      "plusoners": { # People who +1'd this activity.
+        "totalItems": 42, # Total number of people who +1'd this activity.
+        "selfLink": "A String", # The URL for the collection of people who +1'd this activity.
+      },
+      "actor": { # If this activity's object is itself another activity, such as when a person reshares an activity, this property specifies the original activity's actor.
+        "url": "A String", # A link to the original actor's Google profile.
+        "image": { # The image representation of the original actor.
+          "url": "A String", # A URL that points to a thumbnail photo of the original actor.
+        },
+        "displayName": "A String", # The original actor's name, which is suitable for display.
+        "id": "A String", # ID of the original actor.
+      },
+      "content": "A String", # The HTML-formatted content, which is suitable for display.
+      "url": "A String", # The URL that points to the linked resource.
+      "replies": { # Comments in reply to this activity.
+        "totalItems": 42, # Total number of comments on this activity.
+        "selfLink": "A String", # The URL for the collection of comments in reply to this activity.
+      },
+      "id": "A String", # The ID of the object. When resharing an activity, this is the ID of the activity that is being reshared.
+      "objectType": "A String", # The type of the object. Possible values include, but are not limited to, the following values:
+          # - "note" - Textual content.
+          # - "activity" - A Google+ activity.
+    },
+    "placeId": "A String", # ID of the place where this activity occurred.
+    "actor": { # The person who performed this activity.
+      "url": "A String", # The link to the actor's Google profile.
+      "image": { # The image representation of the actor.
+        "url": "A String", # The URL of the actor's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
+      },
+      "displayName": "A String", # The name of the actor, suitable for display.
+      "id": "A String", # The ID of the actor's Person resource.
+      "name": { # An object representation of the individual components of name.
+        "givenName": "A String", # The given name ("first name") of the actor.
+        "familyName": "A String", # The family name ("last name") of the actor.
+      },
+    },
+    "id": "A String", # The ID of this activity.
+    "access": { # Identifies who has access to see this activity.
+      "items": [ # The list of access entries.
+        {
+          "type": "A String", # The type of entry describing to whom access is granted. Possible values are:
+              # - "person" - Access to an individual.
+              # - "circle" - Access to members of a circle.
+              # - "myCircles" - Access to members of all the person's circles.
+              # - "extendedCircles" - Access to members of all the person's circles, plus all of the people in their circles.
+              # - "domain" - Access to members of the person's Google Apps domain.
+              # - "public" - Access to anyone on the web.
+          "displayName": "A String", # A descriptive name for this entry. Suitable for display.
+          "id": "A String", # The ID of the entry. For entries of type "person" or "circle", this is the ID of the resource. For other types, this property is not set.
+        },
+      ],
+      "kind": "plus#acl", # Identifies this resource as a collection of access controls. Value: "plus#acl".
+      "description": "A String", # Description of the access granted, suitable for display.
+    },
+    "verb": "A String", # This activity's verb, which indicates the action that was performed. Possible values include, but are not limited to, the following values:
+        # - "post" - Publish content to the stream.
+        # - "share" - Reshare an activity.
+    "etag": "A String", # ETag of this response for caching purposes.
+    "radius": "A String", # Radius, in meters, of the region where this activity occurred, centered at the latitude and longitude identified in geocode.
+    "location": { # The location where this activity occurred.
+      "position": { # The position of the place.
+        "latitude": 3.14, # The latitude of this position.
+        "longitude": 3.14, # The longitude of this position.
+      },
+      "kind": "plus#place", # Identifies this resource as a place. Value: "plus#place".
+      "displayName": "A String", # The display name of the place.
+      "address": { # The physical address of the place.
+        "formatted": "A String", # The formatted address for display.
+      },
+    },
+    "address": "A String", # Street address where this activity occurred.
+    "crosspostSource": "A String", # If this activity is a crosspost from another system, this property specifies the ID of the original activity.
+    "annotation": "A String", # Additional content added by the person who shared this activity, applicable only when resharing an activity.
+    "published": "A String", # The time at which this activity was initially published. Formatted as an RFC 3339 timestamp.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(userId, collection, pageToken=None, maxResults=None)</code>
+  <pre>List all of the activities in the specified collection for a particular user.
+
+Args:
+  userId: string, The ID of the user to get activities for. The special value "me" can be used to indicate the authenticated user. (required)
+  collection: string, The collection of activities to list. (required)
+    Allowed values
+      public - All public activities created by the specified user.
+  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.
+  maxResults: integer, The maximum number of activities to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.
+
+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.
+    "kind": "plus#activityFeed", # Identifies this resource as a collection of activities. Value: "plus#activityFeed".
+    "title": "A String", # The title of this collection of activities, which is a truncated portion of the content.
+    "items": [ # The activities in this page of results.
+      {
+        "placeName": "A String", # Name of the place where this activity occurred.
+        "kind": "plus#activity", # Identifies this resource as an activity. Value: "plus#activity".
+        "updated": "A String", # The time at which this activity was last updated. Formatted as an RFC 3339 timestamp.
+        "provider": { # The service provider that initially published this activity.
+          "title": "A String", # Name of the service provider.
+        },
+        "title": "A String", # Title of this activity.
+        "url": "A String", # The link to this activity.
+        "geocode": "A String", # Latitude and longitude where this activity occurred. Format is latitude followed by longitude, space separated.
+        "object": { # The object of this activity.
+          "resharers": { # People who reshared this activity.
+            "totalItems": 42, # Total number of people who reshared this activity.
+            "selfLink": "A String", # The URL for the collection of resharers.
+          },
+          "attachments": [ # The media objects attached to this activity.
+            {
+              "displayName": "A String", # The title of the attachment, such as a photo caption or an article title.
+              "thumbnails": [ # If the attachment is an album, this property is a list of potential additional thumbnails from the album.
+                {
+                  "url": "A String", # URL of the webpage containing the image.
+                  "image": { # Image resource.
+                    "url": "A String", # Image url.
+                    "width": 42, # The width, in pixels, of the linked resource.
+                    "type": "A String", # Media type of the link.
+                    "height": 42, # The height, in pixels, of the linked resource.
+                  },
+                  "description": "A String", # Potential name of the thumbnail.
+                },
+              ],
+              "fullImage": { # The full image URL for photo attachments.
+                "url": "A String", # URL of the image.
+                "width": 42, # The width, in pixels, of the linked resource.
+                "type": "A String", # Media type of the link.
+                "height": 42, # The height, in pixels, of the linked resource.
+              },
+              "url": "A String", # The link to the attachment, which should be of type text/html.
+              "image": { # The preview image for photos or videos.
+                "url": "A String", # Image URL.
+                "width": 42, # The width, in pixels, of the linked resource.
+                "type": "A String", # Media type of the link.
+                "height": 42, # The height, in pixels, of the linked resource.
+              },
+              "content": "A String", # If the attachment is an article, this property contains a snippet of text from the article. It can also include descriptions for other types.
+              "embed": { # If the attachment is a video, the embeddable link.
+                "url": "A String", # URL of the link.
+                "type": "A String", # Media type of the link.
+              },
+              "id": "A String", # The ID of the attachment.
+              "objectType": "A String", # The type of media object. Possible values include, but are not limited to, the following values:
+                  # - "photo" - A photo.
+                  # - "album" - A photo album.
+                  # - "video" - A video.
+                  # - "article" - An article, specified by a link.
+            },
+          ],
+          "originalContent": "A String", # The content (text) as provided by the author, which is stored without any HTML formatting. When creating or updating an activity, this value must be supplied as plain text in the request.
+          "plusoners": { # People who +1'd this activity.
+            "totalItems": 42, # Total number of people who +1'd this activity.
+            "selfLink": "A String", # The URL for the collection of people who +1'd this activity.
+          },
+          "actor": { # If this activity's object is itself another activity, such as when a person reshares an activity, this property specifies the original activity's actor.
+            "url": "A String", # A link to the original actor's Google profile.
+            "image": { # The image representation of the original actor.
+              "url": "A String", # A URL that points to a thumbnail photo of the original actor.
+            },
+            "displayName": "A String", # The original actor's name, which is suitable for display.
+            "id": "A String", # ID of the original actor.
+          },
+          "content": "A String", # The HTML-formatted content, which is suitable for display.
+          "url": "A String", # The URL that points to the linked resource.
+          "replies": { # Comments in reply to this activity.
+            "totalItems": 42, # Total number of comments on this activity.
+            "selfLink": "A String", # The URL for the collection of comments in reply to this activity.
+          },
+          "id": "A String", # The ID of the object. When resharing an activity, this is the ID of the activity that is being reshared.
+          "objectType": "A String", # The type of the object. Possible values include, but are not limited to, the following values:
+              # - "note" - Textual content.
+              # - "activity" - A Google+ activity.
+        },
+        "placeId": "A String", # ID of the place where this activity occurred.
+        "actor": { # The person who performed this activity.
+          "url": "A String", # The link to the actor's Google profile.
+          "image": { # The image representation of the actor.
+            "url": "A String", # The URL of the actor's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
+          },
+          "displayName": "A String", # The name of the actor, suitable for display.
+          "id": "A String", # The ID of the actor's Person resource.
+          "name": { # An object representation of the individual components of name.
+            "givenName": "A String", # The given name ("first name") of the actor.
+            "familyName": "A String", # The family name ("last name") of the actor.
+          },
+        },
+        "id": "A String", # The ID of this activity.
+        "access": { # Identifies who has access to see this activity.
+          "items": [ # The list of access entries.
+            {
+              "type": "A String", # The type of entry describing to whom access is granted. Possible values are:
+                  # - "person" - Access to an individual.
+                  # - "circle" - Access to members of a circle.
+                  # - "myCircles" - Access to members of all the person's circles.
+                  # - "extendedCircles" - Access to members of all the person's circles, plus all of the people in their circles.
+                  # - "domain" - Access to members of the person's Google Apps domain.
+                  # - "public" - Access to anyone on the web.
+              "displayName": "A String", # A descriptive name for this entry. Suitable for display.
+              "id": "A String", # The ID of the entry. For entries of type "person" or "circle", this is the ID of the resource. For other types, this property is not set.
+            },
+          ],
+          "kind": "plus#acl", # Identifies this resource as a collection of access controls. Value: "plus#acl".
+          "description": "A String", # Description of the access granted, suitable for display.
+        },
+        "verb": "A String", # This activity's verb, which indicates the action that was performed. Possible values include, but are not limited to, the following values:
+            # - "post" - Publish content to the stream.
+            # - "share" - Reshare an activity.
+        "etag": "A String", # ETag of this response for caching purposes.
+        "radius": "A String", # Radius, in meters, of the region where this activity occurred, centered at the latitude and longitude identified in geocode.
+        "location": { # The location where this activity occurred.
+          "position": { # The position of the place.
+            "latitude": 3.14, # The latitude of this position.
+            "longitude": 3.14, # The longitude of this position.
+          },
+          "kind": "plus#place", # Identifies this resource as a place. Value: "plus#place".
+          "displayName": "A String", # The display name of the place.
+          "address": { # The physical address of the place.
+            "formatted": "A String", # The formatted address for display.
+          },
+        },
+        "address": "A String", # Street address where this activity occurred.
+        "crosspostSource": "A String", # If this activity is a crosspost from another system, this property specifies the ID of the original activity.
+        "annotation": "A String", # Additional content added by the person who shared this activity, applicable only when resharing an activity.
+        "published": "A String", # The time at which this activity was initially published. Formatted as an RFC 3339 timestamp.
+      },
+    ],
+    "updated": "A String", # The time at which this collection of activities was last updated. Formatted as an RFC 3339 timestamp.
+    "nextLink": "A String", # Link to the next page of activities.
+    "etag": "A String", # ETag of this response for caching purposes.
+    "id": "A String", # The ID of this collection of activities. Deprecated.
+    "selfLink": "A String", # Link to this activity resource.
+  }</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="search">search(query, orderBy=None, language=None, pageToken=None, maxResults=None)</code>
+  <pre>Search public activities.
+
+Args:
+  query: string, Full-text search query string. (required)
+  orderBy: string, Specifies how to order search results.
+    Allowed values
+      best - Sort activities by relevance to the user, most relevant first.
+      recent - Sort activities by published date, most recent first.
+  language: string, Specify the preferred language to search with. See search language codes for available values.
+  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. This token can be of any length.
+  maxResults: integer, The maximum number of activities to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.
+
+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.
+    "kind": "plus#activityFeed", # Identifies this resource as a collection of activities. Value: "plus#activityFeed".
+    "title": "A String", # The title of this collection of activities, which is a truncated portion of the content.
+    "items": [ # The activities in this page of results.
+      {
+        "placeName": "A String", # Name of the place where this activity occurred.
+        "kind": "plus#activity", # Identifies this resource as an activity. Value: "plus#activity".
+        "updated": "A String", # The time at which this activity was last updated. Formatted as an RFC 3339 timestamp.
+        "provider": { # The service provider that initially published this activity.
+          "title": "A String", # Name of the service provider.
+        },
+        "title": "A String", # Title of this activity.
+        "url": "A String", # The link to this activity.
+        "geocode": "A String", # Latitude and longitude where this activity occurred. Format is latitude followed by longitude, space separated.
+        "object": { # The object of this activity.
+          "resharers": { # People who reshared this activity.
+            "totalItems": 42, # Total number of people who reshared this activity.
+            "selfLink": "A String", # The URL for the collection of resharers.
+          },
+          "attachments": [ # The media objects attached to this activity.
+            {
+              "displayName": "A String", # The title of the attachment, such as a photo caption or an article title.
+              "thumbnails": [ # If the attachment is an album, this property is a list of potential additional thumbnails from the album.
+                {
+                  "url": "A String", # URL of the webpage containing the image.
+                  "image": { # Image resource.
+                    "url": "A String", # Image url.
+                    "width": 42, # The width, in pixels, of the linked resource.
+                    "type": "A String", # Media type of the link.
+                    "height": 42, # The height, in pixels, of the linked resource.
+                  },
+                  "description": "A String", # Potential name of the thumbnail.
+                },
+              ],
+              "fullImage": { # The full image URL for photo attachments.
+                "url": "A String", # URL of the image.
+                "width": 42, # The width, in pixels, of the linked resource.
+                "type": "A String", # Media type of the link.
+                "height": 42, # The height, in pixels, of the linked resource.
+              },
+              "url": "A String", # The link to the attachment, which should be of type text/html.
+              "image": { # The preview image for photos or videos.
+                "url": "A String", # Image URL.
+                "width": 42, # The width, in pixels, of the linked resource.
+                "type": "A String", # Media type of the link.
+                "height": 42, # The height, in pixels, of the linked resource.
+              },
+              "content": "A String", # If the attachment is an article, this property contains a snippet of text from the article. It can also include descriptions for other types.
+              "embed": { # If the attachment is a video, the embeddable link.
+                "url": "A String", # URL of the link.
+                "type": "A String", # Media type of the link.
+              },
+              "id": "A String", # The ID of the attachment.
+              "objectType": "A String", # The type of media object. Possible values include, but are not limited to, the following values:
+                  # - "photo" - A photo.
+                  # - "album" - A photo album.
+                  # - "video" - A video.
+                  # - "article" - An article, specified by a link.
+            },
+          ],
+          "originalContent": "A String", # The content (text) as provided by the author, which is stored without any HTML formatting. When creating or updating an activity, this value must be supplied as plain text in the request.
+          "plusoners": { # People who +1'd this activity.
+            "totalItems": 42, # Total number of people who +1'd this activity.
+            "selfLink": "A String", # The URL for the collection of people who +1'd this activity.
+          },
+          "actor": { # If this activity's object is itself another activity, such as when a person reshares an activity, this property specifies the original activity's actor.
+            "url": "A String", # A link to the original actor's Google profile.
+            "image": { # The image representation of the original actor.
+              "url": "A String", # A URL that points to a thumbnail photo of the original actor.
+            },
+            "displayName": "A String", # The original actor's name, which is suitable for display.
+            "id": "A String", # ID of the original actor.
+          },
+          "content": "A String", # The HTML-formatted content, which is suitable for display.
+          "url": "A String", # The URL that points to the linked resource.
+          "replies": { # Comments in reply to this activity.
+            "totalItems": 42, # Total number of comments on this activity.
+            "selfLink": "A String", # The URL for the collection of comments in reply to this activity.
+          },
+          "id": "A String", # The ID of the object. When resharing an activity, this is the ID of the activity that is being reshared.
+          "objectType": "A String", # The type of the object. Possible values include, but are not limited to, the following values:
+              # - "note" - Textual content.
+              # - "activity" - A Google+ activity.
+        },
+        "placeId": "A String", # ID of the place where this activity occurred.
+        "actor": { # The person who performed this activity.
+          "url": "A String", # The link to the actor's Google profile.
+          "image": { # The image representation of the actor.
+            "url": "A String", # The URL of the actor's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
+          },
+          "displayName": "A String", # The name of the actor, suitable for display.
+          "id": "A String", # The ID of the actor's Person resource.
+          "name": { # An object representation of the individual components of name.
+            "givenName": "A String", # The given name ("first name") of the actor.
+            "familyName": "A String", # The family name ("last name") of the actor.
+          },
+        },
+        "id": "A String", # The ID of this activity.
+        "access": { # Identifies who has access to see this activity.
+          "items": [ # The list of access entries.
+            {
+              "type": "A String", # The type of entry describing to whom access is granted. Possible values are:
+                  # - "person" - Access to an individual.
+                  # - "circle" - Access to members of a circle.
+                  # - "myCircles" - Access to members of all the person's circles.
+                  # - "extendedCircles" - Access to members of all the person's circles, plus all of the people in their circles.
+                  # - "domain" - Access to members of the person's Google Apps domain.
+                  # - "public" - Access to anyone on the web.
+              "displayName": "A String", # A descriptive name for this entry. Suitable for display.
+              "id": "A String", # The ID of the entry. For entries of type "person" or "circle", this is the ID of the resource. For other types, this property is not set.
+            },
+          ],
+          "kind": "plus#acl", # Identifies this resource as a collection of access controls. Value: "plus#acl".
+          "description": "A String", # Description of the access granted, suitable for display.
+        },
+        "verb": "A String", # This activity's verb, which indicates the action that was performed. Possible values include, but are not limited to, the following values:
+            # - "post" - Publish content to the stream.
+            # - "share" - Reshare an activity.
+        "etag": "A String", # ETag of this response for caching purposes.
+        "radius": "A String", # Radius, in meters, of the region where this activity occurred, centered at the latitude and longitude identified in geocode.
+        "location": { # The location where this activity occurred.
+          "position": { # The position of the place.
+            "latitude": 3.14, # The latitude of this position.
+            "longitude": 3.14, # The longitude of this position.
+          },
+          "kind": "plus#place", # Identifies this resource as a place. Value: "plus#place".
+          "displayName": "A String", # The display name of the place.
+          "address": { # The physical address of the place.
+            "formatted": "A String", # The formatted address for display.
+          },
+        },
+        "address": "A String", # Street address where this activity occurred.
+        "crosspostSource": "A String", # If this activity is a crosspost from another system, this property specifies the ID of the original activity.
+        "annotation": "A String", # Additional content added by the person who shared this activity, applicable only when resharing an activity.
+        "published": "A String", # The time at which this activity was initially published. Formatted as an RFC 3339 timestamp.
+      },
+    ],
+    "updated": "A String", # The time at which this collection of activities was last updated. Formatted as an RFC 3339 timestamp.
+    "nextLink": "A String", # Link to the next page of activities.
+    "etag": "A String", # ETag of this response for caching purposes.
+    "id": "A String", # The ID of this collection of activities. Deprecated.
+    "selfLink": "A String", # Link to this activity resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="search_next">search_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/plus_v1.comments.html b/docs/dyn/plus_v1.comments.html
new file mode 100644
index 0000000..c078b4f
--- /dev/null
+++ b/docs/dyn/plus_v1.comments.html
@@ -0,0 +1,208 @@
+<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="plus_v1.html">Google+ API</a> . <a href="plus_v1.comments.html">comments</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(commentId)</a></code></p>
+<p class="firstline">Get a comment.</p>
+<p class="toc_element">
+  <code><a href="#list">list(activityId, pageToken=None, maxResults=None, sortOrder=None)</a></code></p>
+<p class="firstline">List all of the comments for an activity.</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(commentId)</code>
+  <pre>Get a comment.
+
+Args:
+  commentId: string, The ID of the comment to get. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "inReplyTo": [ # The activity this comment replied to.
+      {
+        "url": "A String", # The URL of the activity.
+        "id": "A String", # The ID of the activity.
+      },
+    ],
+    "kind": "plus#comment", # Identifies this resource as a comment. Value: "plus#comment".
+    "plusoners": { # People who +1'd this comment.
+      "totalItems": 42, # Total number of people who +1'd this comment.
+    },
+    "object": { # The object of this comment.
+      "content": "A String", # The HTML-formatted content, suitable for display.
+      "originalContent": "A String", # The content (text) as provided by the author, stored without any HTML formatting. When creating or updating a comment, this value must be supplied as plain text in the request.
+      "objectType": "comment", # The object type of this comment. Possible values are:
+          # - "comment" - A comment in reply to an activity.
+    },
+    "updated": "A String", # The time at which this comment was last updated. Formatted as an RFC 3339 timestamp.
+    "actor": { # The person who posted this comment.
+      "url": "A String", # A link to the Person resource for this actor.
+      "image": { # The image representation of this actor.
+        "url": "A String", # The URL of the actor's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
+      },
+      "displayName": "A String", # The name of this actor, suitable for display.
+      "id": "A String", # The ID of the actor.
+    },
+    "verb": "post", # This comment's verb, indicating what action was performed. Possible values are:
+        # - "post" - Publish content to the stream.
+    "etag": "A String", # ETag of this response for caching purposes.
+    "published": "A String", # The time at which this comment was initially published. Formatted as an RFC 3339 timestamp.
+    "id": "A String", # The ID of this comment.
+    "selfLink": "A String", # Link to this comment resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(activityId, pageToken=None, maxResults=None, sortOrder=None)</code>
+  <pre>List all of the comments for an activity.
+
+Args:
+  activityId: string, The ID of the activity to get comments for. (required)
+  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.
+  maxResults: integer, The maximum number of comments to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.
+  sortOrder: string, The order in which to sort the list of comments.
+    Allowed values
+      ascending - Sort oldest comments first.
+      descending - Sort newest comments first.
+
+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.
+    "kind": "plus#commentFeed", # Identifies this resource as a collection of comments. Value: "plus#commentFeed".
+    "title": "A String", # The title of this collection of comments.
+    "items": [ # The comments in this page of results.
+      {
+        "inReplyTo": [ # The activity this comment replied to.
+          {
+            "url": "A String", # The URL of the activity.
+            "id": "A String", # The ID of the activity.
+          },
+        ],
+        "kind": "plus#comment", # Identifies this resource as a comment. Value: "plus#comment".
+        "plusoners": { # People who +1'd this comment.
+          "totalItems": 42, # Total number of people who +1'd this comment.
+        },
+        "object": { # The object of this comment.
+          "content": "A String", # The HTML-formatted content, suitable for display.
+          "originalContent": "A String", # The content (text) as provided by the author, stored without any HTML formatting. When creating or updating a comment, this value must be supplied as plain text in the request.
+          "objectType": "comment", # The object type of this comment. Possible values are:
+              # - "comment" - A comment in reply to an activity.
+        },
+        "updated": "A String", # The time at which this comment was last updated. Formatted as an RFC 3339 timestamp.
+        "actor": { # The person who posted this comment.
+          "url": "A String", # A link to the Person resource for this actor.
+          "image": { # The image representation of this actor.
+            "url": "A String", # The URL of the actor's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
+          },
+          "displayName": "A String", # The name of this actor, suitable for display.
+          "id": "A String", # The ID of the actor.
+        },
+        "verb": "post", # This comment's verb, indicating what action was performed. Possible values are:
+            # - "post" - Publish content to the stream.
+        "etag": "A String", # ETag of this response for caching purposes.
+        "published": "A String", # The time at which this comment was initially published. Formatted as an RFC 3339 timestamp.
+        "id": "A String", # The ID of this comment.
+        "selfLink": "A String", # Link to this comment resource.
+      },
+    ],
+    "updated": "A String", # The time at which this collection of comments was last updated. Formatted as an RFC 3339 timestamp.
+    "nextLink": "A String", # Link to the next page of activities.
+    "etag": "A String", # ETag of this response for caching purposes.
+    "id": "A String", # The ID of this collection of comments.
+  }</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/plus_v1.html b/docs/dyn/plus_v1.html
new file mode 100644
index 0000000..6a3ff6d
--- /dev/null
+++ b/docs/dyn/plus_v1.html
@@ -0,0 +1,97 @@
+<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="plus_v1.html">Google+ API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="plus_v1.activities.html">activities()</a></code>
+</p>
+<p class="firstline">Returns the activities Resource.</p>
+
+<p class="toc_element">
+  <code><a href="plus_v1.comments.html">comments()</a></code>
+</p>
+<p class="firstline">Returns the comments Resource.</p>
+
+<p class="toc_element">
+  <code><a href="plus_v1.moments.html">moments()</a></code>
+</p>
+<p class="firstline">Returns the moments Resource.</p>
+
+<p class="toc_element">
+  <code><a href="plus_v1.people.html">people()</a></code>
+</p>
+<p class="firstline">Returns the people Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/plus_v1.moments.html b/docs/dyn/plus_v1.moments.html
new file mode 100644
index 0000000..bcffab3
--- /dev/null
+++ b/docs/dyn/plus_v1.moments.html
@@ -0,0 +1,595 @@
+<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="plus_v1.html">Google+ API</a> . <a href="plus_v1.moments.html">moments</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#insert">insert(userId, collection, body, debug=None)</a></code></p>
+<p class="firstline">Record a moment representing a user's activity such as making a purchase or commenting on a blog.</p>
+<p class="toc_element">
+  <code><a href="#list">list(userId, collection, pageToken=None, maxResults=None, targetUrl=None, type=None)</a></code></p>
+<p class="firstline">List all of the moments for a particular user.</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="#remove">remove(id)</a></code></p>
+<p class="firstline">Delete a moment.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="insert">insert(userId, collection, body, debug=None)</code>
+  <pre>Record a moment representing a user's activity such as making a purchase or commenting on a blog.
+
+Args:
+  userId: string, The ID of the user to record activities for. The only valid values are "me" and the ID of the authenticated user. (required)
+  collection: string, The collection to which to write moments. (required)
+    Allowed values
+      vault - The default collection for writing new moments.
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "startDate": "A String", # Time stamp of when the action occurred in RFC3339 format.
+    "kind": "plus#moment", # Identifies this resource as a moment.
+    "target": { # The object on which the action was performed.
+      "startDate": "A String", # The start date and time of the event (in ISO 8601 date format).
+      "endDate": "A String", # The end date and time of the event (in ISO 8601 date format).
+      "text": "A String", # The text that is the result of the app activity. For example, if a user leaves a review of a restaurant, this might be the text of the review.
+      "image": "A String", # A URL to the image that represents this result. For example, if a user writes a review of a restaurant and attaches a photo of their meal, you might use that photo as the result.image.
+      "address": # Object with schema name: ItemScope # Postal address.
+      "birthDate": "A String", # Date of birth.
+      "datePublished": "A String", # The initial date that the result was published. For example, a user writes a comment on a blog, which has a result.dateCreated of when they submit it. If the blog users comment moderation, the result.datePublished value would match the date when the owner approved the message.
+      "addressLocality": "A String", # Address locality.
+      "duration": "A String", # The duration of the item (movie, audio recording, event, etc.) in ISO 8601 date format.
+      "additionalName": [ # An additional name for a Person, can be used for a middle name.
+        "A String",
+      ],
+      "worstRating": "A String", # Worst possible rating value that a result might obtain. This property defines the lower bound for the ratingValue.
+      "contributor": [ # A list of contributors to this result.
+        # Object with schema name: ItemScope
+      ],
+      "thumbnailUrl": "A String", # A URL to a thumbnail image that represents this result.
+      "id": "A String", # An identifier for the target. Your app can choose how to identify targets. The target.id is required if you are writing an activity that does not have a corresponding web page or target.url property.
+      "postOfficeBoxNumber": "A String", # Post office box number.
+      "attendees": [ # A person attending the event.
+        # Object with schema name: ItemScope
+      ],
+      "author": [ # The person or persons who created this result. In the example of restaurant reviews, this might be the reviewer's name.
+        # Object with schema name: ItemScope
+      ],
+      "associated_media": [ # The encoding.
+        # Object with schema name: ItemScope
+      ],
+      "bestRating": "A String", # Best possible rating value that a result might obtain. This property defines the upper bound for the ratingValue. For example, you might have a 5 star rating scale, you would provide 5 as the value for this property.
+      "addressCountry": "A String", # Address country.
+      "width": "A String", # The width of the media object.
+      "streetAddress": "A String", # Street address.
+      "location": # Object with schema name: ItemScope # The location of the event or organization.
+      "latitude": 3.14, # Latitude.
+      "byArtist": # Object with schema name: ItemScope # From http://schema.org/MusicRecording, the artist that performed this recording.
+      "type": "A String", # The schema.org URL that best describes the referenced target and matches the type of moment.
+      "dateModified": "A String", # The date the result was last modified such as the date that a review was last edited.
+      "contentSize": "A String", # File size in (mega/kilo) bytes.
+      "contentUrl": "A String", # Actual bytes of the media object, for example the image file or video file.
+      "partOfTVSeries": # Object with schema name: ItemScope # Property of http://schema.org/TVEpisode indicating which series the episode belongs to.
+      "description": "A String", # The string that describes the content of the result.
+      "familyName": "A String", # Family name. This property can be used with givenName instead of the name property.
+      "kind": "plus#itemScope", # Identifies this resource as an itemScope.
+      "dateCreated": "A String", # The date the result was created such as the date that a review was first created.
+      "postalCode": "A String", # Postal code.
+      "attendeeCount": 42, # Number of attendees.
+      "inAlbum": # Object with schema name: ItemScope # From http://schema.org/MusicRecording, which album a song is in.
+      "addressRegion": "A String", # Address region.
+      "height": "A String", # The height of the media object.
+      "geo": # Object with schema name: ItemScope # Geo coordinates.
+      "embedUrl": "A String", # A URL pointing to a player for a specific video. In general, this is the information in the src element of an embed tag and should not be the same as the content of the loc tag.
+      "tickerSymbol": "A String", # The exchange traded instrument associated with a Corporation object. The tickerSymbol is expressed as an exchange and an instrument name separated by a space character. For the exchange component of the tickerSymbol attribute, we recommend using the controlled vocabulary of Market Identifier Codes (MIC) specified in ISO15022.
+      "playerType": "A String", # Player type that is required. For example: Flash or Silverlight.
+      "about": # Object with schema name: ItemScope # The subject matter of the content.
+      "givenName": "A String", # Given name. This property can be used with familyName instead of the name property.
+      "name": "A String", # The name of the result. In the example of a restaurant review, this might be the summary the user gave their review such as "Great ambiance, but overpriced."
+      "performers": [ # The main performer or performers of the event-for example, a presenter, musician, or actor.
+        # Object with schema name: ItemScope
+      ],
+      "url": "A String", # The URL that points to the result object. For example, a permalink directly to a restaurant reviewer's comment.
+      "gender": "A String", # Gender of the person.
+      "longitude": 3.14, # Longitude.
+      "thumbnail": # Object with schema name: ItemScope # Thumbnail image for an image or video.
+      "caption": "A String", # The caption for this object.
+      "ratingValue": "A String", # Rating value.
+      "reviewRating": # Object with schema name: ItemScope # Review rating.
+      "audio": # Object with schema name: ItemScope # From http://schema.org/MusicRecording, the audio file.
+    },
+    "result": { # The object generated by performing the action on the target. For example, a user writes a review of a restaurant, the target is the restaurant and the result is the review.
+      "startDate": "A String", # The start date and time of the event (in ISO 8601 date format).
+      "endDate": "A String", # The end date and time of the event (in ISO 8601 date format).
+      "text": "A String", # The text that is the result of the app activity. For example, if a user leaves a review of a restaurant, this might be the text of the review.
+      "image": "A String", # A URL to the image that represents this result. For example, if a user writes a review of a restaurant and attaches a photo of their meal, you might use that photo as the result.image.
+      "address": # Object with schema name: ItemScope # Postal address.
+      "birthDate": "A String", # Date of birth.
+      "datePublished": "A String", # The initial date that the result was published. For example, a user writes a comment on a blog, which has a result.dateCreated of when they submit it. If the blog users comment moderation, the result.datePublished value would match the date when the owner approved the message.
+      "addressLocality": "A String", # Address locality.
+      "duration": "A String", # The duration of the item (movie, audio recording, event, etc.) in ISO 8601 date format.
+      "additionalName": [ # An additional name for a Person, can be used for a middle name.
+        "A String",
+      ],
+      "worstRating": "A String", # Worst possible rating value that a result might obtain. This property defines the lower bound for the ratingValue.
+      "contributor": [ # A list of contributors to this result.
+        # Object with schema name: ItemScope
+      ],
+      "thumbnailUrl": "A String", # A URL to a thumbnail image that represents this result.
+      "id": "A String", # An identifier for the target. Your app can choose how to identify targets. The target.id is required if you are writing an activity that does not have a corresponding web page or target.url property.
+      "postOfficeBoxNumber": "A String", # Post office box number.
+      "attendees": [ # A person attending the event.
+        # Object with schema name: ItemScope
+      ],
+      "author": [ # The person or persons who created this result. In the example of restaurant reviews, this might be the reviewer's name.
+        # Object with schema name: ItemScope
+      ],
+      "associated_media": [ # The encoding.
+        # Object with schema name: ItemScope
+      ],
+      "bestRating": "A String", # Best possible rating value that a result might obtain. This property defines the upper bound for the ratingValue. For example, you might have a 5 star rating scale, you would provide 5 as the value for this property.
+      "addressCountry": "A String", # Address country.
+      "width": "A String", # The width of the media object.
+      "streetAddress": "A String", # Street address.
+      "location": # Object with schema name: ItemScope # The location of the event or organization.
+      "latitude": 3.14, # Latitude.
+      "byArtist": # Object with schema name: ItemScope # From http://schema.org/MusicRecording, the artist that performed this recording.
+      "type": "A String", # The schema.org URL that best describes the referenced target and matches the type of moment.
+      "dateModified": "A String", # The date the result was last modified such as the date that a review was last edited.
+      "contentSize": "A String", # File size in (mega/kilo) bytes.
+      "contentUrl": "A String", # Actual bytes of the media object, for example the image file or video file.
+      "partOfTVSeries": # Object with schema name: ItemScope # Property of http://schema.org/TVEpisode indicating which series the episode belongs to.
+      "description": "A String", # The string that describes the content of the result.
+      "familyName": "A String", # Family name. This property can be used with givenName instead of the name property.
+      "kind": "plus#itemScope", # Identifies this resource as an itemScope.
+      "dateCreated": "A String", # The date the result was created such as the date that a review was first created.
+      "postalCode": "A String", # Postal code.
+      "attendeeCount": 42, # Number of attendees.
+      "inAlbum": # Object with schema name: ItemScope # From http://schema.org/MusicRecording, which album a song is in.
+      "addressRegion": "A String", # Address region.
+      "height": "A String", # The height of the media object.
+      "geo": # Object with schema name: ItemScope # Geo coordinates.
+      "embedUrl": "A String", # A URL pointing to a player for a specific video. In general, this is the information in the src element of an embed tag and should not be the same as the content of the loc tag.
+      "tickerSymbol": "A String", # The exchange traded instrument associated with a Corporation object. The tickerSymbol is expressed as an exchange and an instrument name separated by a space character. For the exchange component of the tickerSymbol attribute, we recommend using the controlled vocabulary of Market Identifier Codes (MIC) specified in ISO15022.
+      "playerType": "A String", # Player type that is required. For example: Flash or Silverlight.
+      "about": # Object with schema name: ItemScope # The subject matter of the content.
+      "givenName": "A String", # Given name. This property can be used with familyName instead of the name property.
+      "name": "A String", # The name of the result. In the example of a restaurant review, this might be the summary the user gave their review such as "Great ambiance, but overpriced."
+      "performers": [ # The main performer or performers of the event-for example, a presenter, musician, or actor.
+        # Object with schema name: ItemScope
+      ],
+      "url": "A String", # The URL that points to the result object. For example, a permalink directly to a restaurant reviewer's comment.
+      "gender": "A String", # Gender of the person.
+      "longitude": 3.14, # Longitude.
+      "thumbnail": # Object with schema name: ItemScope # Thumbnail image for an image or video.
+      "caption": "A String", # The caption for this object.
+      "ratingValue": "A String", # Rating value.
+      "reviewRating": # Object with schema name: ItemScope # Review rating.
+      "audio": # Object with schema name: ItemScope # From http://schema.org/MusicRecording, the audio file.
+    },
+    "type": "A String", # The Google schema for the type of moment to write. For example, http://schemas.google.com/AddActivity.
+    "id": "A String", # The moment ID.
+  }
+
+  debug: boolean, Return the moment as written. Should be used only for debugging.
+
+Returns:
+  An object of the form:
+
+    {
+      "startDate": "A String", # Time stamp of when the action occurred in RFC3339 format.
+      "kind": "plus#moment", # Identifies this resource as a moment.
+      "target": { # The object on which the action was performed.
+        "startDate": "A String", # The start date and time of the event (in ISO 8601 date format).
+        "endDate": "A String", # The end date and time of the event (in ISO 8601 date format).
+        "text": "A String", # The text that is the result of the app activity. For example, if a user leaves a review of a restaurant, this might be the text of the review.
+        "image": "A String", # A URL to the image that represents this result. For example, if a user writes a review of a restaurant and attaches a photo of their meal, you might use that photo as the result.image.
+        "address": # Object with schema name: ItemScope # Postal address.
+        "birthDate": "A String", # Date of birth.
+        "datePublished": "A String", # The initial date that the result was published. For example, a user writes a comment on a blog, which has a result.dateCreated of when they submit it. If the blog users comment moderation, the result.datePublished value would match the date when the owner approved the message.
+        "addressLocality": "A String", # Address locality.
+        "duration": "A String", # The duration of the item (movie, audio recording, event, etc.) in ISO 8601 date format.
+        "additionalName": [ # An additional name for a Person, can be used for a middle name.
+          "A String",
+        ],
+        "worstRating": "A String", # Worst possible rating value that a result might obtain. This property defines the lower bound for the ratingValue.
+        "contributor": [ # A list of contributors to this result.
+          # Object with schema name: ItemScope
+        ],
+        "thumbnailUrl": "A String", # A URL to a thumbnail image that represents this result.
+        "id": "A String", # An identifier for the target. Your app can choose how to identify targets. The target.id is required if you are writing an activity that does not have a corresponding web page or target.url property.
+        "postOfficeBoxNumber": "A String", # Post office box number.
+        "attendees": [ # A person attending the event.
+          # Object with schema name: ItemScope
+        ],
+        "author": [ # The person or persons who created this result. In the example of restaurant reviews, this might be the reviewer's name.
+          # Object with schema name: ItemScope
+        ],
+        "associated_media": [ # The encoding.
+          # Object with schema name: ItemScope
+        ],
+        "bestRating": "A String", # Best possible rating value that a result might obtain. This property defines the upper bound for the ratingValue. For example, you might have a 5 star rating scale, you would provide 5 as the value for this property.
+        "addressCountry": "A String", # Address country.
+        "width": "A String", # The width of the media object.
+        "streetAddress": "A String", # Street address.
+        "location": # Object with schema name: ItemScope # The location of the event or organization.
+        "latitude": 3.14, # Latitude.
+        "byArtist": # Object with schema name: ItemScope # From http://schema.org/MusicRecording, the artist that performed this recording.
+        "type": "A String", # The schema.org URL that best describes the referenced target and matches the type of moment.
+        "dateModified": "A String", # The date the result was last modified such as the date that a review was last edited.
+        "contentSize": "A String", # File size in (mega/kilo) bytes.
+        "contentUrl": "A String", # Actual bytes of the media object, for example the image file or video file.
+        "partOfTVSeries": # Object with schema name: ItemScope # Property of http://schema.org/TVEpisode indicating which series the episode belongs to.
+        "description": "A String", # The string that describes the content of the result.
+        "familyName": "A String", # Family name. This property can be used with givenName instead of the name property.
+        "kind": "plus#itemScope", # Identifies this resource as an itemScope.
+        "dateCreated": "A String", # The date the result was created such as the date that a review was first created.
+        "postalCode": "A String", # Postal code.
+        "attendeeCount": 42, # Number of attendees.
+        "inAlbum": # Object with schema name: ItemScope # From http://schema.org/MusicRecording, which album a song is in.
+        "addressRegion": "A String", # Address region.
+        "height": "A String", # The height of the media object.
+        "geo": # Object with schema name: ItemScope # Geo coordinates.
+        "embedUrl": "A String", # A URL pointing to a player for a specific video. In general, this is the information in the src element of an embed tag and should not be the same as the content of the loc tag.
+        "tickerSymbol": "A String", # The exchange traded instrument associated with a Corporation object. The tickerSymbol is expressed as an exchange and an instrument name separated by a space character. For the exchange component of the tickerSymbol attribute, we recommend using the controlled vocabulary of Market Identifier Codes (MIC) specified in ISO15022.
+        "playerType": "A String", # Player type that is required. For example: Flash or Silverlight.
+        "about": # Object with schema name: ItemScope # The subject matter of the content.
+        "givenName": "A String", # Given name. This property can be used with familyName instead of the name property.
+        "name": "A String", # The name of the result. In the example of a restaurant review, this might be the summary the user gave their review such as "Great ambiance, but overpriced."
+        "performers": [ # The main performer or performers of the event-for example, a presenter, musician, or actor.
+          # Object with schema name: ItemScope
+        ],
+        "url": "A String", # The URL that points to the result object. For example, a permalink directly to a restaurant reviewer's comment.
+        "gender": "A String", # Gender of the person.
+        "longitude": 3.14, # Longitude.
+        "thumbnail": # Object with schema name: ItemScope # Thumbnail image for an image or video.
+        "caption": "A String", # The caption for this object.
+        "ratingValue": "A String", # Rating value.
+        "reviewRating": # Object with schema name: ItemScope # Review rating.
+        "audio": # Object with schema name: ItemScope # From http://schema.org/MusicRecording, the audio file.
+      },
+      "result": { # The object generated by performing the action on the target. For example, a user writes a review of a restaurant, the target is the restaurant and the result is the review.
+        "startDate": "A String", # The start date and time of the event (in ISO 8601 date format).
+        "endDate": "A String", # The end date and time of the event (in ISO 8601 date format).
+        "text": "A String", # The text that is the result of the app activity. For example, if a user leaves a review of a restaurant, this might be the text of the review.
+        "image": "A String", # A URL to the image that represents this result. For example, if a user writes a review of a restaurant and attaches a photo of their meal, you might use that photo as the result.image.
+        "address": # Object with schema name: ItemScope # Postal address.
+        "birthDate": "A String", # Date of birth.
+        "datePublished": "A String", # The initial date that the result was published. For example, a user writes a comment on a blog, which has a result.dateCreated of when they submit it. If the blog users comment moderation, the result.datePublished value would match the date when the owner approved the message.
+        "addressLocality": "A String", # Address locality.
+        "duration": "A String", # The duration of the item (movie, audio recording, event, etc.) in ISO 8601 date format.
+        "additionalName": [ # An additional name for a Person, can be used for a middle name.
+          "A String",
+        ],
+        "worstRating": "A String", # Worst possible rating value that a result might obtain. This property defines the lower bound for the ratingValue.
+        "contributor": [ # A list of contributors to this result.
+          # Object with schema name: ItemScope
+        ],
+        "thumbnailUrl": "A String", # A URL to a thumbnail image that represents this result.
+        "id": "A String", # An identifier for the target. Your app can choose how to identify targets. The target.id is required if you are writing an activity that does not have a corresponding web page or target.url property.
+        "postOfficeBoxNumber": "A String", # Post office box number.
+        "attendees": [ # A person attending the event.
+          # Object with schema name: ItemScope
+        ],
+        "author": [ # The person or persons who created this result. In the example of restaurant reviews, this might be the reviewer's name.
+          # Object with schema name: ItemScope
+        ],
+        "associated_media": [ # The encoding.
+          # Object with schema name: ItemScope
+        ],
+        "bestRating": "A String", # Best possible rating value that a result might obtain. This property defines the upper bound for the ratingValue. For example, you might have a 5 star rating scale, you would provide 5 as the value for this property.
+        "addressCountry": "A String", # Address country.
+        "width": "A String", # The width of the media object.
+        "streetAddress": "A String", # Street address.
+        "location": # Object with schema name: ItemScope # The location of the event or organization.
+        "latitude": 3.14, # Latitude.
+        "byArtist": # Object with schema name: ItemScope # From http://schema.org/MusicRecording, the artist that performed this recording.
+        "type": "A String", # The schema.org URL that best describes the referenced target and matches the type of moment.
+        "dateModified": "A String", # The date the result was last modified such as the date that a review was last edited.
+        "contentSize": "A String", # File size in (mega/kilo) bytes.
+        "contentUrl": "A String", # Actual bytes of the media object, for example the image file or video file.
+        "partOfTVSeries": # Object with schema name: ItemScope # Property of http://schema.org/TVEpisode indicating which series the episode belongs to.
+        "description": "A String", # The string that describes the content of the result.
+        "familyName": "A String", # Family name. This property can be used with givenName instead of the name property.
+        "kind": "plus#itemScope", # Identifies this resource as an itemScope.
+        "dateCreated": "A String", # The date the result was created such as the date that a review was first created.
+        "postalCode": "A String", # Postal code.
+        "attendeeCount": 42, # Number of attendees.
+        "inAlbum": # Object with schema name: ItemScope # From http://schema.org/MusicRecording, which album a song is in.
+        "addressRegion": "A String", # Address region.
+        "height": "A String", # The height of the media object.
+        "geo": # Object with schema name: ItemScope # Geo coordinates.
+        "embedUrl": "A String", # A URL pointing to a player for a specific video. In general, this is the information in the src element of an embed tag and should not be the same as the content of the loc tag.
+        "tickerSymbol": "A String", # The exchange traded instrument associated with a Corporation object. The tickerSymbol is expressed as an exchange and an instrument name separated by a space character. For the exchange component of the tickerSymbol attribute, we recommend using the controlled vocabulary of Market Identifier Codes (MIC) specified in ISO15022.
+        "playerType": "A String", # Player type that is required. For example: Flash or Silverlight.
+        "about": # Object with schema name: ItemScope # The subject matter of the content.
+        "givenName": "A String", # Given name. This property can be used with familyName instead of the name property.
+        "name": "A String", # The name of the result. In the example of a restaurant review, this might be the summary the user gave their review such as "Great ambiance, but overpriced."
+        "performers": [ # The main performer or performers of the event-for example, a presenter, musician, or actor.
+          # Object with schema name: ItemScope
+        ],
+        "url": "A String", # The URL that points to the result object. For example, a permalink directly to a restaurant reviewer's comment.
+        "gender": "A String", # Gender of the person.
+        "longitude": 3.14, # Longitude.
+        "thumbnail": # Object with schema name: ItemScope # Thumbnail image for an image or video.
+        "caption": "A String", # The caption for this object.
+        "ratingValue": "A String", # Rating value.
+        "reviewRating": # Object with schema name: ItemScope # Review rating.
+        "audio": # Object with schema name: ItemScope # From http://schema.org/MusicRecording, the audio file.
+      },
+      "type": "A String", # The Google schema for the type of moment to write. For example, http://schemas.google.com/AddActivity.
+      "id": "A String", # The moment ID.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(userId, collection, pageToken=None, maxResults=None, targetUrl=None, type=None)</code>
+  <pre>List all of the moments for a particular user.
+
+Args:
+  userId: string, The ID of the user to get moments for. The special value "me" can be used to indicate the authenticated user. (required)
+  collection: string, The collection of moments to list. (required)
+    Allowed values
+      vault - All moments created by the requesting application for the authenticated user.
+  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.
+  maxResults: integer, The maximum number of moments to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.
+  targetUrl: string, Only moments containing this targetUrl will be returned.
+  type: string, Only moments of this type will be returned.
+
+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.
+    "kind": "plus#momentsFeed", # Identifies this resource as a collection of moments. Value: "plus#momentsFeed".
+    "title": "A String", # The title of this collection of moments.
+    "items": [ # The moments in this page of results.
+      {
+          "startDate": "A String", # Time stamp of when the action occurred in RFC3339 format.
+          "kind": "plus#moment", # Identifies this resource as a moment.
+          "target": { # The object on which the action was performed.
+            "startDate": "A String", # The start date and time of the event (in ISO 8601 date format).
+            "endDate": "A String", # The end date and time of the event (in ISO 8601 date format).
+            "text": "A String", # The text that is the result of the app activity. For example, if a user leaves a review of a restaurant, this might be the text of the review.
+            "image": "A String", # A URL to the image that represents this result. For example, if a user writes a review of a restaurant and attaches a photo of their meal, you might use that photo as the result.image.
+            "address": # Object with schema name: ItemScope # Postal address.
+            "birthDate": "A String", # Date of birth.
+            "datePublished": "A String", # The initial date that the result was published. For example, a user writes a comment on a blog, which has a result.dateCreated of when they submit it. If the blog users comment moderation, the result.datePublished value would match the date when the owner approved the message.
+            "addressLocality": "A String", # Address locality.
+            "duration": "A String", # The duration of the item (movie, audio recording, event, etc.) in ISO 8601 date format.
+            "additionalName": [ # An additional name for a Person, can be used for a middle name.
+              "A String",
+            ],
+            "worstRating": "A String", # Worst possible rating value that a result might obtain. This property defines the lower bound for the ratingValue.
+            "contributor": [ # A list of contributors to this result.
+              # Object with schema name: ItemScope
+            ],
+            "thumbnailUrl": "A String", # A URL to a thumbnail image that represents this result.
+            "id": "A String", # An identifier for the target. Your app can choose how to identify targets. The target.id is required if you are writing an activity that does not have a corresponding web page or target.url property.
+            "postOfficeBoxNumber": "A String", # Post office box number.
+            "attendees": [ # A person attending the event.
+              # Object with schema name: ItemScope
+            ],
+            "author": [ # The person or persons who created this result. In the example of restaurant reviews, this might be the reviewer's name.
+              # Object with schema name: ItemScope
+            ],
+            "associated_media": [ # The encoding.
+              # Object with schema name: ItemScope
+            ],
+            "bestRating": "A String", # Best possible rating value that a result might obtain. This property defines the upper bound for the ratingValue. For example, you might have a 5 star rating scale, you would provide 5 as the value for this property.
+            "addressCountry": "A String", # Address country.
+            "width": "A String", # The width of the media object.
+            "streetAddress": "A String", # Street address.
+            "location": # Object with schema name: ItemScope # The location of the event or organization.
+            "latitude": 3.14, # Latitude.
+            "byArtist": # Object with schema name: ItemScope # From http://schema.org/MusicRecording, the artist that performed this recording.
+            "type": "A String", # The schema.org URL that best describes the referenced target and matches the type of moment.
+            "dateModified": "A String", # The date the result was last modified such as the date that a review was last edited.
+            "contentSize": "A String", # File size in (mega/kilo) bytes.
+            "contentUrl": "A String", # Actual bytes of the media object, for example the image file or video file.
+            "partOfTVSeries": # Object with schema name: ItemScope # Property of http://schema.org/TVEpisode indicating which series the episode belongs to.
+            "description": "A String", # The string that describes the content of the result.
+            "familyName": "A String", # Family name. This property can be used with givenName instead of the name property.
+            "kind": "plus#itemScope", # Identifies this resource as an itemScope.
+            "dateCreated": "A String", # The date the result was created such as the date that a review was first created.
+            "postalCode": "A String", # Postal code.
+            "attendeeCount": 42, # Number of attendees.
+            "inAlbum": # Object with schema name: ItemScope # From http://schema.org/MusicRecording, which album a song is in.
+            "addressRegion": "A String", # Address region.
+            "height": "A String", # The height of the media object.
+            "geo": # Object with schema name: ItemScope # Geo coordinates.
+            "embedUrl": "A String", # A URL pointing to a player for a specific video. In general, this is the information in the src element of an embed tag and should not be the same as the content of the loc tag.
+            "tickerSymbol": "A String", # The exchange traded instrument associated with a Corporation object. The tickerSymbol is expressed as an exchange and an instrument name separated by a space character. For the exchange component of the tickerSymbol attribute, we recommend using the controlled vocabulary of Market Identifier Codes (MIC) specified in ISO15022.
+            "playerType": "A String", # Player type that is required. For example: Flash or Silverlight.
+            "about": # Object with schema name: ItemScope # The subject matter of the content.
+            "givenName": "A String", # Given name. This property can be used with familyName instead of the name property.
+            "name": "A String", # The name of the result. In the example of a restaurant review, this might be the summary the user gave their review such as "Great ambiance, but overpriced."
+            "performers": [ # The main performer or performers of the event-for example, a presenter, musician, or actor.
+              # Object with schema name: ItemScope
+            ],
+            "url": "A String", # The URL that points to the result object. For example, a permalink directly to a restaurant reviewer's comment.
+            "gender": "A String", # Gender of the person.
+            "longitude": 3.14, # Longitude.
+            "thumbnail": # Object with schema name: ItemScope # Thumbnail image for an image or video.
+            "caption": "A String", # The caption for this object.
+            "ratingValue": "A String", # Rating value.
+            "reviewRating": # Object with schema name: ItemScope # Review rating.
+            "audio": # Object with schema name: ItemScope # From http://schema.org/MusicRecording, the audio file.
+          },
+          "result": { # The object generated by performing the action on the target. For example, a user writes a review of a restaurant, the target is the restaurant and the result is the review.
+            "startDate": "A String", # The start date and time of the event (in ISO 8601 date format).
+            "endDate": "A String", # The end date and time of the event (in ISO 8601 date format).
+            "text": "A String", # The text that is the result of the app activity. For example, if a user leaves a review of a restaurant, this might be the text of the review.
+            "image": "A String", # A URL to the image that represents this result. For example, if a user writes a review of a restaurant and attaches a photo of their meal, you might use that photo as the result.image.
+            "address": # Object with schema name: ItemScope # Postal address.
+            "birthDate": "A String", # Date of birth.
+            "datePublished": "A String", # The initial date that the result was published. For example, a user writes a comment on a blog, which has a result.dateCreated of when they submit it. If the blog users comment moderation, the result.datePublished value would match the date when the owner approved the message.
+            "addressLocality": "A String", # Address locality.
+            "duration": "A String", # The duration of the item (movie, audio recording, event, etc.) in ISO 8601 date format.
+            "additionalName": [ # An additional name for a Person, can be used for a middle name.
+              "A String",
+            ],
+            "worstRating": "A String", # Worst possible rating value that a result might obtain. This property defines the lower bound for the ratingValue.
+            "contributor": [ # A list of contributors to this result.
+              # Object with schema name: ItemScope
+            ],
+            "thumbnailUrl": "A String", # A URL to a thumbnail image that represents this result.
+            "id": "A String", # An identifier for the target. Your app can choose how to identify targets. The target.id is required if you are writing an activity that does not have a corresponding web page or target.url property.
+            "postOfficeBoxNumber": "A String", # Post office box number.
+            "attendees": [ # A person attending the event.
+              # Object with schema name: ItemScope
+            ],
+            "author": [ # The person or persons who created this result. In the example of restaurant reviews, this might be the reviewer's name.
+              # Object with schema name: ItemScope
+            ],
+            "associated_media": [ # The encoding.
+              # Object with schema name: ItemScope
+            ],
+            "bestRating": "A String", # Best possible rating value that a result might obtain. This property defines the upper bound for the ratingValue. For example, you might have a 5 star rating scale, you would provide 5 as the value for this property.
+            "addressCountry": "A String", # Address country.
+            "width": "A String", # The width of the media object.
+            "streetAddress": "A String", # Street address.
+            "location": # Object with schema name: ItemScope # The location of the event or organization.
+            "latitude": 3.14, # Latitude.
+            "byArtist": # Object with schema name: ItemScope # From http://schema.org/MusicRecording, the artist that performed this recording.
+            "type": "A String", # The schema.org URL that best describes the referenced target and matches the type of moment.
+            "dateModified": "A String", # The date the result was last modified such as the date that a review was last edited.
+            "contentSize": "A String", # File size in (mega/kilo) bytes.
+            "contentUrl": "A String", # Actual bytes of the media object, for example the image file or video file.
+            "partOfTVSeries": # Object with schema name: ItemScope # Property of http://schema.org/TVEpisode indicating which series the episode belongs to.
+            "description": "A String", # The string that describes the content of the result.
+            "familyName": "A String", # Family name. This property can be used with givenName instead of the name property.
+            "kind": "plus#itemScope", # Identifies this resource as an itemScope.
+            "dateCreated": "A String", # The date the result was created such as the date that a review was first created.
+            "postalCode": "A String", # Postal code.
+            "attendeeCount": 42, # Number of attendees.
+            "inAlbum": # Object with schema name: ItemScope # From http://schema.org/MusicRecording, which album a song is in.
+            "addressRegion": "A String", # Address region.
+            "height": "A String", # The height of the media object.
+            "geo": # Object with schema name: ItemScope # Geo coordinates.
+            "embedUrl": "A String", # A URL pointing to a player for a specific video. In general, this is the information in the src element of an embed tag and should not be the same as the content of the loc tag.
+            "tickerSymbol": "A String", # The exchange traded instrument associated with a Corporation object. The tickerSymbol is expressed as an exchange and an instrument name separated by a space character. For the exchange component of the tickerSymbol attribute, we recommend using the controlled vocabulary of Market Identifier Codes (MIC) specified in ISO15022.
+            "playerType": "A String", # Player type that is required. For example: Flash or Silverlight.
+            "about": # Object with schema name: ItemScope # The subject matter of the content.
+            "givenName": "A String", # Given name. This property can be used with familyName instead of the name property.
+            "name": "A String", # The name of the result. In the example of a restaurant review, this might be the summary the user gave their review such as "Great ambiance, but overpriced."
+            "performers": [ # The main performer or performers of the event-for example, a presenter, musician, or actor.
+              # Object with schema name: ItemScope
+            ],
+            "url": "A String", # The URL that points to the result object. For example, a permalink directly to a restaurant reviewer's comment.
+            "gender": "A String", # Gender of the person.
+            "longitude": 3.14, # Longitude.
+            "thumbnail": # Object with schema name: ItemScope # Thumbnail image for an image or video.
+            "caption": "A String", # The caption for this object.
+            "ratingValue": "A String", # Rating value.
+            "reviewRating": # Object with schema name: ItemScope # Review rating.
+            "audio": # Object with schema name: ItemScope # From http://schema.org/MusicRecording, the audio file.
+          },
+          "type": "A String", # The Google schema for the type of moment to write. For example, http://schemas.google.com/AddActivity.
+          "id": "A String", # The moment ID.
+        },
+    ],
+    "updated": "A String", # The RFC 339 timestamp for when this collection of moments was last updated.
+    "nextLink": "A String", # Link to the next page of moments.
+    "etag": "A String", # ETag of this response for caching purposes.
+    "selfLink": "A String", # Link to this page of moments.
+  }</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="remove">remove(id)</code>
+  <pre>Delete a moment.
+
+Args:
+  id: string, The ID of the moment to delete. (required)
+</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/plus_v1.people.html b/docs/dyn/plus_v1.people.html
new file mode 100644
index 0000000..9f3adda
--- /dev/null
+++ b/docs/dyn/plus_v1.people.html
@@ -0,0 +1,686 @@
+<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="plus_v1.html">Google+ API</a> . <a href="plus_v1.people.html">people</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(userId)</a></code></p>
+<p class="firstline">Get a person's profile. If your app uses scope https://www.googleapis.com/auth/plus.login, this method is guaranteed to return ageRange and language.</p>
+<p class="toc_element">
+  <code><a href="#list">list(userId, collection, orderBy=None, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">List all of the people in the specified collection.</p>
+<p class="toc_element">
+  <code><a href="#listByActivity">listByActivity(activityId, collection, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">List all of the people in the specified collection for a particular activity.</p>
+<p class="toc_element">
+  <code><a href="#listByActivity_next">listByActivity_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="#search">search(query, pageToken=None, language=None, maxResults=None)</a></code></p>
+<p class="firstline">Search all public profiles.</p>
+<p class="toc_element">
+  <code><a href="#search_next">search_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(userId)</code>
+  <pre>Get a person's profile. If your app uses scope https://www.googleapis.com/auth/plus.login, this method is guaranteed to return ageRange and language.
+
+Args:
+  userId: string, The ID of the person to get the profile for. The special value "me" can be used to indicate the authenticated user. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "braggingRights": "A String", # The "bragging rights" line of this person.
+    "image": { # The representation of the person's profile photo.
+      "url": "A String", # The URL of the person's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
+    },
+    "domain": "A String", # The hosted domain name for the user's Google Apps account. For instance, example.com. The plus.profile.emails.read or email scope is needed to get this domain name.
+    "id": "A String", # The ID of this person.
+    "occupation": "A String", # The occupation of this person.
+    "verified": True or False, # Whether the person or Google+ Page has been verified.
+    "tagline": "A String", # The brief description (tagline) of this person.
+    "currentLocation": "A String", # The current location for this person.
+    "etag": "A String", # ETag of this response for caching purposes.
+    "circledByCount": 42, # For followers who are visible, the number of people who have added this person or page to a circle.
+    "objectType": "A String", # Type of person within Google+. Possible values include, but are not limited to, the following values:
+        # - "person" - represents an actual person.
+        # - "page" - represents a page.
+    "relationshipStatus": "A String", # The person's relationship status. Possible values include, but are not limited to, the following values:
+        # - "single" - Person is single.
+        # - "in_a_relationship" - Person is in a relationship.
+        # - "engaged" - Person is engaged.
+        # - "married" - Person is married.
+        # - "its_complicated" - The relationship is complicated.
+        # - "open_relationship" - Person is in an open relationship.
+        # - "widowed" - Person is widowed.
+        # - "in_domestic_partnership" - Person is in a domestic partnership.
+        # - "in_civil_union" - Person is in a civil union.
+    "aboutMe": "A String", # A short biography for this person.
+    "placesLived": [ # A list of places where this person has lived.
+      {
+        "primary": True or False, # If "true", this place of residence is this person's primary residence.
+        "value": "A String", # A place where this person has lived. For example: "Seattle, WA", "Near Toronto".
+      },
+    ],
+    "birthday": "A String", # The person's date of birth, represented as YYYY-MM-DD.
+    "nickname": "A String", # The nickname of this person.
+    "emails": [ # A list of email addresses that this person has, including their Google account email address, and the public verified email addresses on their Google+ profile. The plus.profile.emails.read scope is needed to retrieve these email addresses, or the email scope can be used to retrieve just the Google account email address.
+      {
+        "type": "A String", # The type of address. Possible values include, but are not limited to, the following values:
+            # - "account" - Google account email address.
+            # - "home" - Home email address.
+            # - "work" - Work email address.
+            # - "other" - Other.
+        "value": "A String", # The email address.
+      },
+    ],
+    "organizations": [ # A list of current or past organizations with which this person is associated.
+      {
+        "startDate": "A String", # The date that the person joined this organization.
+        "endDate": "A String", # The date that the person left this organization.
+        "description": "A String", # A short description of the person's role in this organization. Deprecated.
+        "title": "A String", # The person's job title or role within the organization.
+        "primary": True or False, # If "true", indicates this organization is the person's primary one, which is typically interpreted as the current one.
+        "location": "A String", # The location of this organization. Deprecated.
+        "department": "A String", # The department within the organization. Deprecated.
+        "type": "A String", # The type of organization. Possible values include, but are not limited to, the following values:
+            # - "work" - Work.
+            # - "school" - School.
+        "name": "A String", # The name of the organization.
+      },
+    ],
+    "kind": "plus#person", # Identifies this resource as a person. Value: "plus#person".
+    "displayName": "A String", # The name of this person, which is suitable for display.
+    "name": { # An object representation of the individual components of a person's name.
+      "honorificPrefix": "A String", # The honorific prefixes (such as "Dr." or "Mrs.") for this person.
+      "middleName": "A String", # The middle name of this person.
+      "familyName": "A String", # The family name (last name) of this person.
+      "formatted": "A String", # The full name of this person, including middle names, suffixes, etc.
+      "givenName": "A String", # The given name (first name) of this person.
+      "honorificSuffix": "A String", # The honorific suffixes (such as "Jr.") for this person.
+    },
+    "language": "A String", # The user's preferred language for rendering.
+    "skills": "A String", # The person's skills.
+    "gender": "A String", # The person's gender. Possible values include, but are not limited to, the following values:
+        # - "male" - Male gender.
+        # - "female" - Female gender.
+        # - "other" - Other.
+    "cover": { # The cover photo content.
+      "layout": "A String", # The layout of the cover art. Possible values include, but are not limited to, the following values:
+          # - "banner" - One large image banner.
+      "coverInfo": { # Extra information about the cover photo.
+        "leftImageOffset": 42, # The difference between the left position of the cover image and the actual displayed cover image. Only valid for banner layout.
+        "topImageOffset": 42, # The difference between the top position of the cover image and the actual displayed cover image. Only valid for banner layout.
+      },
+      "coverPhoto": { # The person's primary cover image.
+        "url": "A String", # The URL of the image.
+        "width": 42, # The width of the image.
+        "height": 42, # The height of the image.
+      },
+    },
+    "url": "A String", # The URL of this person's profile.
+    "isPlusUser": True or False, # Whether this user has signed up for Google+.
+    "plusOneCount": 42, # If a Google+ Page, the number of people who have +1'd this page.
+    "urls": [ # A list of URLs for this person.
+      {
+        "type": "A String", # The type of URL. Possible values include, but are not limited to, the following values:
+            # - "otherProfile" - URL for another profile.
+            # - "contributor" - URL to a site for which this person is a contributor.
+            # - "website" - URL for this Google+ Page's primary website.
+            # - "other" - Other URL.
+        "value": "A String", # The URL value.
+        "label": "A String", # The label of the URL.
+      },
+    ],
+    "ageRange": { # The age range of the person. Valid ranges are 17 or younger, 18 to 20, and 21 or older. Age is determined from the user's birthday using Western age reckoning.
+      "max": 42, # The age range's upper bound, if any. Possible values include, but are not limited to, the following:
+          # - "17" - for age 17
+          # - "20" - for age 20
+      "min": 42, # The age range's lower bound, if any. Possible values include, but are not limited to, the following:
+          # - "21" - for age 21
+          # - "18" - for age 18
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(userId, collection, orderBy=None, pageToken=None, maxResults=None)</code>
+  <pre>List all of the people in the specified collection.
+
+Args:
+  userId: string, Get the collection of people for the person identified. Use "me" to indicate the authenticated user. (required)
+  collection: string, The collection of people to list. (required)
+    Allowed values
+      connected - The list of visible people in the authenticated user's circles who also use the requesting app. This list is limited to users who made their app activities visible to the authenticated user.
+      visible - The list of people who this user has added to one or more circles, limited to the circles visible to the requesting application.
+  orderBy: string, The order to return people in.
+    Allowed values
+      alphabetical - Order the people by their display name.
+      best - Order people based on the relevence to the viewer.
+  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.
+  maxResults: integer, The maximum number of people to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.
+
+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.
+    "kind": "plus#peopleFeed", # Identifies this resource as a collection of people. Value: "plus#peopleFeed".
+    "title": "A String", # The title of this collection of people.
+    "items": [ # The people in this page of results. Each item includes the id, displayName, image, and url for the person. To retrieve additional profile data, see the people.get method.
+      {
+        "braggingRights": "A String", # The "bragging rights" line of this person.
+        "image": { # The representation of the person's profile photo.
+          "url": "A String", # The URL of the person's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
+        },
+        "domain": "A String", # The hosted domain name for the user's Google Apps account. For instance, example.com. The plus.profile.emails.read or email scope is needed to get this domain name.
+        "id": "A String", # The ID of this person.
+        "occupation": "A String", # The occupation of this person.
+        "verified": True or False, # Whether the person or Google+ Page has been verified.
+        "tagline": "A String", # The brief description (tagline) of this person.
+        "currentLocation": "A String", # The current location for this person.
+        "etag": "A String", # ETag of this response for caching purposes.
+        "circledByCount": 42, # For followers who are visible, the number of people who have added this person or page to a circle.
+        "objectType": "A String", # Type of person within Google+. Possible values include, but are not limited to, the following values:
+            # - "person" - represents an actual person.
+            # - "page" - represents a page.
+        "relationshipStatus": "A String", # The person's relationship status. Possible values include, but are not limited to, the following values:
+            # - "single" - Person is single.
+            # - "in_a_relationship" - Person is in a relationship.
+            # - "engaged" - Person is engaged.
+            # - "married" - Person is married.
+            # - "its_complicated" - The relationship is complicated.
+            # - "open_relationship" - Person is in an open relationship.
+            # - "widowed" - Person is widowed.
+            # - "in_domestic_partnership" - Person is in a domestic partnership.
+            # - "in_civil_union" - Person is in a civil union.
+        "aboutMe": "A String", # A short biography for this person.
+        "placesLived": [ # A list of places where this person has lived.
+          {
+            "primary": True or False, # If "true", this place of residence is this person's primary residence.
+            "value": "A String", # A place where this person has lived. For example: "Seattle, WA", "Near Toronto".
+          },
+        ],
+        "birthday": "A String", # The person's date of birth, represented as YYYY-MM-DD.
+        "nickname": "A String", # The nickname of this person.
+        "emails": [ # A list of email addresses that this person has, including their Google account email address, and the public verified email addresses on their Google+ profile. The plus.profile.emails.read scope is needed to retrieve these email addresses, or the email scope can be used to retrieve just the Google account email address.
+          {
+            "type": "A String", # The type of address. Possible values include, but are not limited to, the following values:
+                # - "account" - Google account email address.
+                # - "home" - Home email address.
+                # - "work" - Work email address.
+                # - "other" - Other.
+            "value": "A String", # The email address.
+          },
+        ],
+        "organizations": [ # A list of current or past organizations with which this person is associated.
+          {
+            "startDate": "A String", # The date that the person joined this organization.
+            "endDate": "A String", # The date that the person left this organization.
+            "description": "A String", # A short description of the person's role in this organization. Deprecated.
+            "title": "A String", # The person's job title or role within the organization.
+            "primary": True or False, # If "true", indicates this organization is the person's primary one, which is typically interpreted as the current one.
+            "location": "A String", # The location of this organization. Deprecated.
+            "department": "A String", # The department within the organization. Deprecated.
+            "type": "A String", # The type of organization. Possible values include, but are not limited to, the following values:
+                # - "work" - Work.
+                # - "school" - School.
+            "name": "A String", # The name of the organization.
+          },
+        ],
+        "kind": "plus#person", # Identifies this resource as a person. Value: "plus#person".
+        "displayName": "A String", # The name of this person, which is suitable for display.
+        "name": { # An object representation of the individual components of a person's name.
+          "honorificPrefix": "A String", # The honorific prefixes (such as "Dr." or "Mrs.") for this person.
+          "middleName": "A String", # The middle name of this person.
+          "familyName": "A String", # The family name (last name) of this person.
+          "formatted": "A String", # The full name of this person, including middle names, suffixes, etc.
+          "givenName": "A String", # The given name (first name) of this person.
+          "honorificSuffix": "A String", # The honorific suffixes (such as "Jr.") for this person.
+        },
+        "language": "A String", # The user's preferred language for rendering.
+        "skills": "A String", # The person's skills.
+        "gender": "A String", # The person's gender. Possible values include, but are not limited to, the following values:
+            # - "male" - Male gender.
+            # - "female" - Female gender.
+            # - "other" - Other.
+        "cover": { # The cover photo content.
+          "layout": "A String", # The layout of the cover art. Possible values include, but are not limited to, the following values:
+              # - "banner" - One large image banner.
+          "coverInfo": { # Extra information about the cover photo.
+            "leftImageOffset": 42, # The difference between the left position of the cover image and the actual displayed cover image. Only valid for banner layout.
+            "topImageOffset": 42, # The difference between the top position of the cover image and the actual displayed cover image. Only valid for banner layout.
+          },
+          "coverPhoto": { # The person's primary cover image.
+            "url": "A String", # The URL of the image.
+            "width": 42, # The width of the image.
+            "height": 42, # The height of the image.
+          },
+        },
+        "url": "A String", # The URL of this person's profile.
+        "isPlusUser": True or False, # Whether this user has signed up for Google+.
+        "plusOneCount": 42, # If a Google+ Page, the number of people who have +1'd this page.
+        "urls": [ # A list of URLs for this person.
+          {
+            "type": "A String", # The type of URL. Possible values include, but are not limited to, the following values:
+                # - "otherProfile" - URL for another profile.
+                # - "contributor" - URL to a site for which this person is a contributor.
+                # - "website" - URL for this Google+ Page's primary website.
+                # - "other" - Other URL.
+            "value": "A String", # The URL value.
+            "label": "A String", # The label of the URL.
+          },
+        ],
+        "ageRange": { # The age range of the person. Valid ranges are 17 or younger, 18 to 20, and 21 or older. Age is determined from the user's birthday using Western age reckoning.
+          "max": 42, # The age range's upper bound, if any. Possible values include, but are not limited to, the following:
+              # - "17" - for age 17
+              # - "20" - for age 20
+          "min": 42, # The age range's lower bound, if any. Possible values include, but are not limited to, the following:
+              # - "21" - for age 21
+              # - "18" - for age 18
+        },
+      },
+    ],
+    "etag": "A String", # ETag of this response for caching purposes.
+    "totalItems": 42, # The total number of people available in this list. The number of people in a response might be smaller due to paging. This might not be set for all collections.
+    "selfLink": "A String", # Link to this resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="listByActivity">listByActivity(activityId, collection, pageToken=None, maxResults=None)</code>
+  <pre>List all of the people in the specified collection for a particular activity.
+
+Args:
+  activityId: string, The ID of the activity to get the list of people for. (required)
+  collection: string, The collection of people to list. (required)
+    Allowed values
+      plusoners - List all people who have +1'd this activity.
+      resharers - List all people who have reshared this activity.
+  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.
+  maxResults: integer, The maximum number of people to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.
+
+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.
+    "kind": "plus#peopleFeed", # Identifies this resource as a collection of people. Value: "plus#peopleFeed".
+    "title": "A String", # The title of this collection of people.
+    "items": [ # The people in this page of results. Each item includes the id, displayName, image, and url for the person. To retrieve additional profile data, see the people.get method.
+      {
+        "braggingRights": "A String", # The "bragging rights" line of this person.
+        "image": { # The representation of the person's profile photo.
+          "url": "A String", # The URL of the person's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
+        },
+        "domain": "A String", # The hosted domain name for the user's Google Apps account. For instance, example.com. The plus.profile.emails.read or email scope is needed to get this domain name.
+        "id": "A String", # The ID of this person.
+        "occupation": "A String", # The occupation of this person.
+        "verified": True or False, # Whether the person or Google+ Page has been verified.
+        "tagline": "A String", # The brief description (tagline) of this person.
+        "currentLocation": "A String", # The current location for this person.
+        "etag": "A String", # ETag of this response for caching purposes.
+        "circledByCount": 42, # For followers who are visible, the number of people who have added this person or page to a circle.
+        "objectType": "A String", # Type of person within Google+. Possible values include, but are not limited to, the following values:
+            # - "person" - represents an actual person.
+            # - "page" - represents a page.
+        "relationshipStatus": "A String", # The person's relationship status. Possible values include, but are not limited to, the following values:
+            # - "single" - Person is single.
+            # - "in_a_relationship" - Person is in a relationship.
+            # - "engaged" - Person is engaged.
+            # - "married" - Person is married.
+            # - "its_complicated" - The relationship is complicated.
+            # - "open_relationship" - Person is in an open relationship.
+            # - "widowed" - Person is widowed.
+            # - "in_domestic_partnership" - Person is in a domestic partnership.
+            # - "in_civil_union" - Person is in a civil union.
+        "aboutMe": "A String", # A short biography for this person.
+        "placesLived": [ # A list of places where this person has lived.
+          {
+            "primary": True or False, # If "true", this place of residence is this person's primary residence.
+            "value": "A String", # A place where this person has lived. For example: "Seattle, WA", "Near Toronto".
+          },
+        ],
+        "birthday": "A String", # The person's date of birth, represented as YYYY-MM-DD.
+        "nickname": "A String", # The nickname of this person.
+        "emails": [ # A list of email addresses that this person has, including their Google account email address, and the public verified email addresses on their Google+ profile. The plus.profile.emails.read scope is needed to retrieve these email addresses, or the email scope can be used to retrieve just the Google account email address.
+          {
+            "type": "A String", # The type of address. Possible values include, but are not limited to, the following values:
+                # - "account" - Google account email address.
+                # - "home" - Home email address.
+                # - "work" - Work email address.
+                # - "other" - Other.
+            "value": "A String", # The email address.
+          },
+        ],
+        "organizations": [ # A list of current or past organizations with which this person is associated.
+          {
+            "startDate": "A String", # The date that the person joined this organization.
+            "endDate": "A String", # The date that the person left this organization.
+            "description": "A String", # A short description of the person's role in this organization. Deprecated.
+            "title": "A String", # The person's job title or role within the organization.
+            "primary": True or False, # If "true", indicates this organization is the person's primary one, which is typically interpreted as the current one.
+            "location": "A String", # The location of this organization. Deprecated.
+            "department": "A String", # The department within the organization. Deprecated.
+            "type": "A String", # The type of organization. Possible values include, but are not limited to, the following values:
+                # - "work" - Work.
+                # - "school" - School.
+            "name": "A String", # The name of the organization.
+          },
+        ],
+        "kind": "plus#person", # Identifies this resource as a person. Value: "plus#person".
+        "displayName": "A String", # The name of this person, which is suitable for display.
+        "name": { # An object representation of the individual components of a person's name.
+          "honorificPrefix": "A String", # The honorific prefixes (such as "Dr." or "Mrs.") for this person.
+          "middleName": "A String", # The middle name of this person.
+          "familyName": "A String", # The family name (last name) of this person.
+          "formatted": "A String", # The full name of this person, including middle names, suffixes, etc.
+          "givenName": "A String", # The given name (first name) of this person.
+          "honorificSuffix": "A String", # The honorific suffixes (such as "Jr.") for this person.
+        },
+        "language": "A String", # The user's preferred language for rendering.
+        "skills": "A String", # The person's skills.
+        "gender": "A String", # The person's gender. Possible values include, but are not limited to, the following values:
+            # - "male" - Male gender.
+            # - "female" - Female gender.
+            # - "other" - Other.
+        "cover": { # The cover photo content.
+          "layout": "A String", # The layout of the cover art. Possible values include, but are not limited to, the following values:
+              # - "banner" - One large image banner.
+          "coverInfo": { # Extra information about the cover photo.
+            "leftImageOffset": 42, # The difference between the left position of the cover image and the actual displayed cover image. Only valid for banner layout.
+            "topImageOffset": 42, # The difference between the top position of the cover image and the actual displayed cover image. Only valid for banner layout.
+          },
+          "coverPhoto": { # The person's primary cover image.
+            "url": "A String", # The URL of the image.
+            "width": 42, # The width of the image.
+            "height": 42, # The height of the image.
+          },
+        },
+        "url": "A String", # The URL of this person's profile.
+        "isPlusUser": True or False, # Whether this user has signed up for Google+.
+        "plusOneCount": 42, # If a Google+ Page, the number of people who have +1'd this page.
+        "urls": [ # A list of URLs for this person.
+          {
+            "type": "A String", # The type of URL. Possible values include, but are not limited to, the following values:
+                # - "otherProfile" - URL for another profile.
+                # - "contributor" - URL to a site for which this person is a contributor.
+                # - "website" - URL for this Google+ Page's primary website.
+                # - "other" - Other URL.
+            "value": "A String", # The URL value.
+            "label": "A String", # The label of the URL.
+          },
+        ],
+        "ageRange": { # The age range of the person. Valid ranges are 17 or younger, 18 to 20, and 21 or older. Age is determined from the user's birthday using Western age reckoning.
+          "max": 42, # The age range's upper bound, if any. Possible values include, but are not limited to, the following:
+              # - "17" - for age 17
+              # - "20" - for age 20
+          "min": 42, # The age range's lower bound, if any. Possible values include, but are not limited to, the following:
+              # - "21" - for age 21
+              # - "18" - for age 18
+        },
+      },
+    ],
+    "etag": "A String", # ETag of this response for caching purposes.
+    "totalItems": 42, # The total number of people available in this list. The number of people in a response might be smaller due to paging. This might not be set for all collections.
+    "selfLink": "A String", # Link to this resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="listByActivity_next">listByActivity_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="search">search(query, pageToken=None, language=None, maxResults=None)</code>
+  <pre>Search all public profiles.
+
+Args:
+  query: string, Specify a query string for full text search of public text in all profiles. (required)
+  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. This token can be of any length.
+  language: string, Specify the preferred language to search with. See search language codes for available values.
+  maxResults: integer, The maximum number of people to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.
+
+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.
+    "kind": "plus#peopleFeed", # Identifies this resource as a collection of people. Value: "plus#peopleFeed".
+    "title": "A String", # The title of this collection of people.
+    "items": [ # The people in this page of results. Each item includes the id, displayName, image, and url for the person. To retrieve additional profile data, see the people.get method.
+      {
+        "braggingRights": "A String", # The "bragging rights" line of this person.
+        "image": { # The representation of the person's profile photo.
+          "url": "A String", # The URL of the person's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
+        },
+        "domain": "A String", # The hosted domain name for the user's Google Apps account. For instance, example.com. The plus.profile.emails.read or email scope is needed to get this domain name.
+        "id": "A String", # The ID of this person.
+        "occupation": "A String", # The occupation of this person.
+        "verified": True or False, # Whether the person or Google+ Page has been verified.
+        "tagline": "A String", # The brief description (tagline) of this person.
+        "currentLocation": "A String", # The current location for this person.
+        "etag": "A String", # ETag of this response for caching purposes.
+        "circledByCount": 42, # For followers who are visible, the number of people who have added this person or page to a circle.
+        "objectType": "A String", # Type of person within Google+. Possible values include, but are not limited to, the following values:
+            # - "person" - represents an actual person.
+            # - "page" - represents a page.
+        "relationshipStatus": "A String", # The person's relationship status. Possible values include, but are not limited to, the following values:
+            # - "single" - Person is single.
+            # - "in_a_relationship" - Person is in a relationship.
+            # - "engaged" - Person is engaged.
+            # - "married" - Person is married.
+            # - "its_complicated" - The relationship is complicated.
+            # - "open_relationship" - Person is in an open relationship.
+            # - "widowed" - Person is widowed.
+            # - "in_domestic_partnership" - Person is in a domestic partnership.
+            # - "in_civil_union" - Person is in a civil union.
+        "aboutMe": "A String", # A short biography for this person.
+        "placesLived": [ # A list of places where this person has lived.
+          {
+            "primary": True or False, # If "true", this place of residence is this person's primary residence.
+            "value": "A String", # A place where this person has lived. For example: "Seattle, WA", "Near Toronto".
+          },
+        ],
+        "birthday": "A String", # The person's date of birth, represented as YYYY-MM-DD.
+        "nickname": "A String", # The nickname of this person.
+        "emails": [ # A list of email addresses that this person has, including their Google account email address, and the public verified email addresses on their Google+ profile. The plus.profile.emails.read scope is needed to retrieve these email addresses, or the email scope can be used to retrieve just the Google account email address.
+          {
+            "type": "A String", # The type of address. Possible values include, but are not limited to, the following values:
+                # - "account" - Google account email address.
+                # - "home" - Home email address.
+                # - "work" - Work email address.
+                # - "other" - Other.
+            "value": "A String", # The email address.
+          },
+        ],
+        "organizations": [ # A list of current or past organizations with which this person is associated.
+          {
+            "startDate": "A String", # The date that the person joined this organization.
+            "endDate": "A String", # The date that the person left this organization.
+            "description": "A String", # A short description of the person's role in this organization. Deprecated.
+            "title": "A String", # The person's job title or role within the organization.
+            "primary": True or False, # If "true", indicates this organization is the person's primary one, which is typically interpreted as the current one.
+            "location": "A String", # The location of this organization. Deprecated.
+            "department": "A String", # The department within the organization. Deprecated.
+            "type": "A String", # The type of organization. Possible values include, but are not limited to, the following values:
+                # - "work" - Work.
+                # - "school" - School.
+            "name": "A String", # The name of the organization.
+          },
+        ],
+        "kind": "plus#person", # Identifies this resource as a person. Value: "plus#person".
+        "displayName": "A String", # The name of this person, which is suitable for display.
+        "name": { # An object representation of the individual components of a person's name.
+          "honorificPrefix": "A String", # The honorific prefixes (such as "Dr." or "Mrs.") for this person.
+          "middleName": "A String", # The middle name of this person.
+          "familyName": "A String", # The family name (last name) of this person.
+          "formatted": "A String", # The full name of this person, including middle names, suffixes, etc.
+          "givenName": "A String", # The given name (first name) of this person.
+          "honorificSuffix": "A String", # The honorific suffixes (such as "Jr.") for this person.
+        },
+        "language": "A String", # The user's preferred language for rendering.
+        "skills": "A String", # The person's skills.
+        "gender": "A String", # The person's gender. Possible values include, but are not limited to, the following values:
+            # - "male" - Male gender.
+            # - "female" - Female gender.
+            # - "other" - Other.
+        "cover": { # The cover photo content.
+          "layout": "A String", # The layout of the cover art. Possible values include, but are not limited to, the following values:
+              # - "banner" - One large image banner.
+          "coverInfo": { # Extra information about the cover photo.
+            "leftImageOffset": 42, # The difference between the left position of the cover image and the actual displayed cover image. Only valid for banner layout.
+            "topImageOffset": 42, # The difference between the top position of the cover image and the actual displayed cover image. Only valid for banner layout.
+          },
+          "coverPhoto": { # The person's primary cover image.
+            "url": "A String", # The URL of the image.
+            "width": 42, # The width of the image.
+            "height": 42, # The height of the image.
+          },
+        },
+        "url": "A String", # The URL of this person's profile.
+        "isPlusUser": True or False, # Whether this user has signed up for Google+.
+        "plusOneCount": 42, # If a Google+ Page, the number of people who have +1'd this page.
+        "urls": [ # A list of URLs for this person.
+          {
+            "type": "A String", # The type of URL. Possible values include, but are not limited to, the following values:
+                # - "otherProfile" - URL for another profile.
+                # - "contributor" - URL to a site for which this person is a contributor.
+                # - "website" - URL for this Google+ Page's primary website.
+                # - "other" - Other URL.
+            "value": "A String", # The URL value.
+            "label": "A String", # The label of the URL.
+          },
+        ],
+        "ageRange": { # The age range of the person. Valid ranges are 17 or younger, 18 to 20, and 21 or older. Age is determined from the user's birthday using Western age reckoning.
+          "max": 42, # The age range's upper bound, if any. Possible values include, but are not limited to, the following:
+              # - "17" - for age 17
+              # - "20" - for age 20
+          "min": 42, # The age range's lower bound, if any. Possible values include, but are not limited to, the following:
+              # - "21" - for age 21
+              # - "18" - for age 18
+        },
+      },
+    ],
+    "etag": "A String", # ETag of this response for caching purposes.
+    "totalItems": 42, # The total number of people available in this list. The number of people in a response might be smaller due to paging. This might not be set for all collections.
+    "selfLink": "A String", # Link to this resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="search_next">search_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/prediction_v1_6.hostedmodels.html b/docs/dyn/prediction_v1_6.hostedmodels.html
new file mode 100644
index 0000000..b4d79fb
--- /dev/null
+++ b/docs/dyn/prediction_v1_6.hostedmodels.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="prediction_v1_6.html">Prediction API</a> . <a href="prediction_v1_6.hostedmodels.html">hostedmodels</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#predict">predict(project, hostedModelName, body)</a></code></p>
+<p class="firstline">Submit input and request an output against a hosted model.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="predict">predict(project, hostedModelName, body)</code>
+  <pre>Submit input and request an output against a hosted model.
+
+Args:
+  project: string, The project associated with the model. (required)
+  hostedModelName: string, The name of a hosted model. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "input": { # Input to the model for a prediction.
+      "csvInstance": [ # A list of input features, these can be strings or doubles.
+        "",
+      ],
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "prediction#output", # What kind of resource this is.
+    "outputLabel": "A String", # The most likely class label (Categorical models only).
+    "id": "A String", # The unique name for the predictive model.
+    "outputMulti": [ # A list of class labels with their estimated probabilities (Categorical models only).
+      {
+        "score": "A String", # The probability of the class label.
+        "label": "A String", # The class label.
+      },
+    ],
+    "outputValue": "A String", # The estimated regression value (Regression models only).
+    "selfLink": "A String", # A URL to re-request this resource.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/prediction_v1_6.html b/docs/dyn/prediction_v1_6.html
new file mode 100644
index 0000000..a6a9760
--- /dev/null
+++ b/docs/dyn/prediction_v1_6.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="prediction_v1_6.html">Prediction API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="prediction_v1_6.hostedmodels.html">hostedmodels()</a></code>
+</p>
+<p class="firstline">Returns the hostedmodels Resource.</p>
+
+<p class="toc_element">
+  <code><a href="prediction_v1_6.trainedmodels.html">trainedmodels()</a></code>
+</p>
+<p class="firstline">Returns the trainedmodels Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/prediction_v1_6.trainedmodels.html b/docs/dyn/prediction_v1_6.trainedmodels.html
new file mode 100644
index 0000000..a0de137
--- /dev/null
+++ b/docs/dyn/prediction_v1_6.trainedmodels.html
@@ -0,0 +1,427 @@
+<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="prediction_v1_6.html">Prediction API</a> . <a href="prediction_v1_6.trainedmodels.html">trainedmodels</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#analyze">analyze(project, id)</a></code></p>
+<p class="firstline">Get analysis of the model and the data the model was trained on.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(project, id)</a></code></p>
+<p class="firstline">Delete a trained model.</p>
+<p class="toc_element">
+  <code><a href="#get">get(project, id)</a></code></p>
+<p class="firstline">Check training status of your model.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(project, body)</a></code></p>
+<p class="firstline">Train a Prediction API model.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">List available models.</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="#predict">predict(project, id, body)</a></code></p>
+<p class="firstline">Submit model id and request a prediction.</p>
+<p class="toc_element">
+  <code><a href="#update">update(project, id, body)</a></code></p>
+<p class="firstline">Add new data to a trained model.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="analyze">analyze(project, id)</code>
+  <pre>Get analysis of the model and the data the model was trained on.
+
+Args:
+  project: string, The project associated with the model. (required)
+  id: string, The unique name for the predictive model. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "prediction#analyze", # What kind of resource this is.
+    "errors": [ # List of errors with the data.
+      {
+        "a_key": "A String", # Error level followed by a detailed error message.
+      },
+    ],
+    "dataDescription": { # Description of the data the model was trained on.
+      "outputFeature": { # Description of the output value or label.
+        "text": [ # Description of the output labels in the data set.
+          {
+            "count": "A String", # Number of times the output label occurred in the data set.
+            "value": "A String", # The output label.
+          },
+        ],
+        "numeric": { # Description of the output values in the data set.
+          "count": "A String", # Number of numeric output values in the data set.
+          "variance": "A String", # Variance of the output values in the data set.
+          "mean": "A String", # Mean of the output values in the data set.
+        },
+      },
+      "features": [ # Description of the input features in the data set.
+        {
+          "index": "A String", # The feature index.
+          "text": { # Description of multiple-word text values of this feature.
+            "count": "A String", # Number of multiple-word text values for this feature.
+          },
+          "numeric": { # Description of the numeric values of this feature.
+            "count": "A String", # Number of numeric values for this feature in the data set.
+            "variance": "A String", # Variance of the numeric values of this feature in the data set.
+            "mean": "A String", # Mean of the numeric values of this feature in the data set.
+          },
+          "categorical": { # Description of the categorical values of this feature.
+            "count": "A String", # Number of categorical values for this feature in the data.
+            "values": [ # List of all the categories for this feature in the data set.
+              {
+                "count": "A String", # Number of times this feature had this value.
+                "value": "A String", # The category name.
+              },
+            ],
+          },
+        },
+      ],
+    },
+    "modelDescription": { # Description of the model.
+      "confusionMatrixRowTotals": { # A list of the confusion matrix row totals.
+        "a_key": "A String",
+      },
+      "confusionMatrix": { # An output confusion matrix. This shows an estimate for how this model will do in predictions. This is first indexed by the true class label. For each true class label, this provides a pair {predicted_label, count}, where count is the estimated number of times the model will predict the predicted label given the true label. Will not output if more then 100 classes (Categorical models only).
+        "a_key": { # Confusion matrix information for the true class label.
+          "a_key": "A String", # Average number of times an instance with correct class label modelDescription.confusionMatrix.(key) was wrongfully classified as this label.
+        },
+      },
+      "modelinfo": { # Basic information about the model.
+        "kind": "prediction#training", # What kind of resource this is.
+        "created": "A String", # Insert time of the model (as a RFC 3339 timestamp).
+        "trainingComplete": "A String", # Training completion time (as a RFC 3339 timestamp).
+        "storageDataLocation": "A String", # Google storage location of the training data file.
+        "modelType": "A String", # Type of predictive model (CLASSIFICATION or REGRESSION).
+        "storagePMMLModelLocation": "A String", # Google storage location of the pmml model file.
+        "trainingStatus": "A String", # The current status of the training job. This can be one of following: RUNNING; DONE; ERROR; ERROR: TRAINING JOB NOT FOUND
+        "modelInfo": { # Model metadata.
+          "numberLabels": "A String", # Number of class labels in the trained model (Categorical models only).
+          "meanSquaredError": "A String", # An estimated mean squared error. The can be used to measure the quality of the predicted model (Regression models only).
+          "modelType": "A String", # Type of predictive model (CLASSIFICATION or REGRESSION).
+          "numberInstances": "A String", # Number of valid data instances used in the trained model.
+          "classWeightedAccuracy": "A String", # Estimated accuracy of model taking utility weights into account (Categorical models only).
+          "classificationAccuracy": "A String", # A number between 0.0 and 1.0, where 1.0 is 100% accurate. This is an estimate, based on the amount and quality of the training data, of the estimated prediction accuracy. You can use this is a guide to decide whether the results are accurate enough for your needs. This estimate will be more reliable if your real input data is similar to your training data (Categorical models only).
+        },
+        "storagePMMLLocation": "A String", # Google storage location of the preprocessing pmml file.
+        "id": "A String", # The unique name for the predictive model.
+        "selfLink": "A String", # A URL to re-request this resource.
+      },
+    },
+    "id": "A String", # The unique name for the predictive model.
+    "selfLink": "A String", # A URL to re-request this resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(project, id)</code>
+  <pre>Delete a trained model.
+
+Args:
+  project: string, The project associated with the model. (required)
+  id: string, The unique name for the predictive model. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, id)</code>
+  <pre>Check training status of your model.
+
+Args:
+  project: string, The project associated with the model. (required)
+  id: string, The unique name for the predictive model. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "prediction#training", # What kind of resource this is.
+    "created": "A String", # Insert time of the model (as a RFC 3339 timestamp).
+    "trainingComplete": "A String", # Training completion time (as a RFC 3339 timestamp).
+    "storageDataLocation": "A String", # Google storage location of the training data file.
+    "modelType": "A String", # Type of predictive model (CLASSIFICATION or REGRESSION).
+    "storagePMMLModelLocation": "A String", # Google storage location of the pmml model file.
+    "trainingStatus": "A String", # The current status of the training job. This can be one of following: RUNNING; DONE; ERROR; ERROR: TRAINING JOB NOT FOUND
+    "modelInfo": { # Model metadata.
+      "numberLabels": "A String", # Number of class labels in the trained model (Categorical models only).
+      "meanSquaredError": "A String", # An estimated mean squared error. The can be used to measure the quality of the predicted model (Regression models only).
+      "modelType": "A String", # Type of predictive model (CLASSIFICATION or REGRESSION).
+      "numberInstances": "A String", # Number of valid data instances used in the trained model.
+      "classWeightedAccuracy": "A String", # Estimated accuracy of model taking utility weights into account (Categorical models only).
+      "classificationAccuracy": "A String", # A number between 0.0 and 1.0, where 1.0 is 100% accurate. This is an estimate, based on the amount and quality of the training data, of the estimated prediction accuracy. You can use this is a guide to decide whether the results are accurate enough for your needs. This estimate will be more reliable if your real input data is similar to your training data (Categorical models only).
+    },
+    "storagePMMLLocation": "A String", # Google storage location of the preprocessing pmml file.
+    "id": "A String", # The unique name for the predictive model.
+    "selfLink": "A String", # A URL to re-request this resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(project, body)</code>
+  <pre>Train a Prediction API model.
+
+Args:
+  project: string, The project associated with the model. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "storageDataLocation": "A String", # Google storage location of the training data file.
+    "modelType": "A String", # Type of predictive model (classification or regression).
+    "storagePMMLModelLocation": "A String", # Google storage location of the pmml model file.
+    "sourceModel": "A String", # The Id of the model to be copied over.
+    "storagePMMLLocation": "A String", # Google storage location of the preprocessing pmml file.
+    "trainingInstances": [ # Instances to train model on.
+      {
+        "output": "A String", # The generic output value - could be regression or class label.
+        "csvInstance": [ # The input features for this instance.
+          "",
+        ],
+      },
+    ],
+    "id": "A String", # The unique name for the predictive model.
+    "utility": [ # A class weighting function, which allows the importance weights for class labels to be specified (Categorical models only).
+      { # Class label (string).
+        "a_key": 3.14,
+      },
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "prediction#training", # What kind of resource this is.
+    "created": "A String", # Insert time of the model (as a RFC 3339 timestamp).
+    "trainingComplete": "A String", # Training completion time (as a RFC 3339 timestamp).
+    "storageDataLocation": "A String", # Google storage location of the training data file.
+    "modelType": "A String", # Type of predictive model (CLASSIFICATION or REGRESSION).
+    "storagePMMLModelLocation": "A String", # Google storage location of the pmml model file.
+    "trainingStatus": "A String", # The current status of the training job. This can be one of following: RUNNING; DONE; ERROR; ERROR: TRAINING JOB NOT FOUND
+    "modelInfo": { # Model metadata.
+      "numberLabels": "A String", # Number of class labels in the trained model (Categorical models only).
+      "meanSquaredError": "A String", # An estimated mean squared error. The can be used to measure the quality of the predicted model (Regression models only).
+      "modelType": "A String", # Type of predictive model (CLASSIFICATION or REGRESSION).
+      "numberInstances": "A String", # Number of valid data instances used in the trained model.
+      "classWeightedAccuracy": "A String", # Estimated accuracy of model taking utility weights into account (Categorical models only).
+      "classificationAccuracy": "A String", # A number between 0.0 and 1.0, where 1.0 is 100% accurate. This is an estimate, based on the amount and quality of the training data, of the estimated prediction accuracy. You can use this is a guide to decide whether the results are accurate enough for your needs. This estimate will be more reliable if your real input data is similar to your training data (Categorical models only).
+    },
+    "storagePMMLLocation": "A String", # Google storage location of the preprocessing pmml file.
+    "id": "A String", # The unique name for the predictive model.
+    "selfLink": "A String", # A URL to re-request this resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, pageToken=None, maxResults=None)</code>
+  <pre>List available models.
+
+Args:
+  project: string, The project associated with the model. (required)
+  pageToken: string, Pagination token.
+  maxResults: integer, Maximum number of results to return.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Pagination token to fetch the next page, if one exists.
+    "items": [ # List of models.
+      {
+        "kind": "prediction#training", # What kind of resource this is.
+        "created": "A String", # Insert time of the model (as a RFC 3339 timestamp).
+        "trainingComplete": "A String", # Training completion time (as a RFC 3339 timestamp).
+        "storageDataLocation": "A String", # Google storage location of the training data file.
+        "modelType": "A String", # Type of predictive model (CLASSIFICATION or REGRESSION).
+        "storagePMMLModelLocation": "A String", # Google storage location of the pmml model file.
+        "trainingStatus": "A String", # The current status of the training job. This can be one of following: RUNNING; DONE; ERROR; ERROR: TRAINING JOB NOT FOUND
+        "modelInfo": { # Model metadata.
+          "numberLabels": "A String", # Number of class labels in the trained model (Categorical models only).
+          "meanSquaredError": "A String", # An estimated mean squared error. The can be used to measure the quality of the predicted model (Regression models only).
+          "modelType": "A String", # Type of predictive model (CLASSIFICATION or REGRESSION).
+          "numberInstances": "A String", # Number of valid data instances used in the trained model.
+          "classWeightedAccuracy": "A String", # Estimated accuracy of model taking utility weights into account (Categorical models only).
+          "classificationAccuracy": "A String", # A number between 0.0 and 1.0, where 1.0 is 100% accurate. This is an estimate, based on the amount and quality of the training data, of the estimated prediction accuracy. You can use this is a guide to decide whether the results are accurate enough for your needs. This estimate will be more reliable if your real input data is similar to your training data (Categorical models only).
+        },
+        "storagePMMLLocation": "A String", # Google storage location of the preprocessing pmml file.
+        "id": "A String", # The unique name for the predictive model.
+        "selfLink": "A String", # A URL to re-request this resource.
+      },
+    ],
+    "kind": "prediction#list", # What kind of resource this is.
+    "selfLink": "A String", # A URL to re-request this resource.
+  }</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="predict">predict(project, id, body)</code>
+  <pre>Submit model id and request a prediction.
+
+Args:
+  project: string, The project associated with the model. (required)
+  id: string, The unique name for the predictive model. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "input": { # Input to the model for a prediction.
+      "csvInstance": [ # A list of input features, these can be strings or doubles.
+        "",
+      ],
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "prediction#output", # What kind of resource this is.
+    "outputLabel": "A String", # The most likely class label (Categorical models only).
+    "id": "A String", # The unique name for the predictive model.
+    "outputMulti": [ # A list of class labels with their estimated probabilities (Categorical models only).
+      {
+        "score": "A String", # The probability of the class label.
+        "label": "A String", # The class label.
+      },
+    ],
+    "outputValue": "A String", # The estimated regression value (Regression models only).
+    "selfLink": "A String", # A URL to re-request this resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(project, id, body)</code>
+  <pre>Add new data to a trained model.
+
+Args:
+  project: string, The project associated with the model. (required)
+  id: string, The unique name for the predictive model. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "output": "A String", # The generic output value - could be regression or class label.
+    "csvInstance": [ # The input features for this instance.
+      "",
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "prediction#training", # What kind of resource this is.
+    "created": "A String", # Insert time of the model (as a RFC 3339 timestamp).
+    "trainingComplete": "A String", # Training completion time (as a RFC 3339 timestamp).
+    "storageDataLocation": "A String", # Google storage location of the training data file.
+    "modelType": "A String", # Type of predictive model (CLASSIFICATION or REGRESSION).
+    "storagePMMLModelLocation": "A String", # Google storage location of the pmml model file.
+    "trainingStatus": "A String", # The current status of the training job. This can be one of following: RUNNING; DONE; ERROR; ERROR: TRAINING JOB NOT FOUND
+    "modelInfo": { # Model metadata.
+      "numberLabels": "A String", # Number of class labels in the trained model (Categorical models only).
+      "meanSquaredError": "A String", # An estimated mean squared error. The can be used to measure the quality of the predicted model (Regression models only).
+      "modelType": "A String", # Type of predictive model (CLASSIFICATION or REGRESSION).
+      "numberInstances": "A String", # Number of valid data instances used in the trained model.
+      "classWeightedAccuracy": "A String", # Estimated accuracy of model taking utility weights into account (Categorical models only).
+      "classificationAccuracy": "A String", # A number between 0.0 and 1.0, where 1.0 is 100% accurate. This is an estimate, based on the amount and quality of the training data, of the estimated prediction accuracy. You can use this is a guide to decide whether the results are accurate enough for your needs. This estimate will be more reliable if your real input data is similar to your training data (Categorical models only).
+    },
+    "storagePMMLLocation": "A String", # Google storage location of the preprocessing pmml file.
+    "id": "A String", # The unique name for the predictive model.
+    "selfLink": "A String", # A URL to re-request this resource.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/qpxExpress_v1.html b/docs/dyn/qpxExpress_v1.html
new file mode 100644
index 0000000..1379be3
--- /dev/null
+++ b/docs/dyn/qpxExpress_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="qpxExpress_v1.html">QPX Express API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="qpxExpress_v1.trips.html">trips()</a></code>
+</p>
+<p class="firstline">Returns the trips Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/qpxExpress_v1.trips.html b/docs/dyn/qpxExpress_v1.trips.html
new file mode 100644
index 0000000..61348a4
--- /dev/null
+++ b/docs/dyn/qpxExpress_v1.trips.html
@@ -0,0 +1,304 @@
+<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="qpxExpress_v1.html">QPX Express API</a> . <a href="qpxExpress_v1.trips.html">trips</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#search">search(body)</a></code></p>
+<p class="firstline">Returns a list of flights.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="search">search(body)</code>
+  <pre>Returns a list of flights.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A QPX Express search request.
+    "request": { # A QPX Express search request, which will yield one or more solutions. # A QPX Express search request. Required values are at least one adult or senior passenger, an origin, a destination, and a date.
+      "passengers": { # The number and type of passengers. Unfortunately the definition of an infant, child, adult, and senior citizen varies across carriers and reservation systems. # Counts for each passenger type in the request.
+        "kind": "qpxexpress#passengerCounts", # Identifies this as a passenger count object, representing the number of passengers. Value: the fixed string qpxexpress#passengerCounts.
+        "infantInLapCount": 42, # The number of passengers that are infants travelling in the lap of an adult.
+        "seniorCount": 42, # The number of passengers that are senior citizens.
+        "infantInSeatCount": 42, # The number of passengers that are infants each assigned a seat.
+        "childCount": 42, # The number of passengers that are children.
+        "adultCount": 42, # The number of passengers that are adults.
+      },
+      "slice": [ # The slices that make up the itinerary of this trip. A slice represents a traveler's intent, the portion of a low-fare search corresponding to a traveler's request to get between two points. One-way journeys are generally expressed using one slice, round-trips using two. An example of a one slice trip with three segments might be BOS-SYD, SYD-LAX, LAX-BOS if the traveler only stopped in SYD and LAX just long enough to change planes.
+        { # Criteria a desired slice must satisfy.
+          "origin": "A String", # Airport or city IATA designator of the origin.
+          "preferredCabin": "A String", # Prefer solutions that book in this cabin for this slice. Allowed values are COACH, PREMIUM_COACH, BUSINESS, and FIRST.
+          "kind": "qpxexpress#sliceInput", # Identifies this as a slice input object, representing the criteria a desired slice must satisfy. Value: the fixed string qpxexpress#sliceInput.
+          "alliance": "A String", # Slices with only the carriers in this alliance should be returned; do not use this field with permittedCarrier. Allowed values are ONEWORLD, SKYTEAM, and STAR.
+          "destination": "A String", # Airport or city IATA designator of the destination.
+          "maxStops": 42, # The maximum number of stops you are willing to accept in this slice.
+          "permittedDepartureTime": { # Two times in a single day defining a time range. # Slices must depart in this time of day range, local to the point of departure.
+            "latestTime": "A String", # The latest time of day in HH:MM format.
+            "kind": "qpxexpress#timeOfDayRange", # Identifies this as a time of day range object, representing two times in a single day defining a time range. Value: the fixed string qpxexpress#timeOfDayRange.
+            "earliestTime": "A String", # The earliest time of day in HH:MM format.
+          },
+          "permittedCarrier": [ # A list of 2-letter IATA airline designators. Slices with only these carriers should be returned.
+            "A String",
+          ],
+          "maxConnectionDuration": 42, # The longest connection between two legs, in minutes, you are willing to accept.
+          "date": "A String", # Departure date in YYYY-MM-DD format.
+          "prohibitedCarrier": [ # A list of 2-letter IATA airline designators. Exclude slices that use these carriers.
+            "A String",
+          ],
+        },
+      ],
+      "saleCountry": "A String", # IATA country code representing the point of sale. This determines the "equivalent amount paid" currency for the ticket.
+      "maxPrice": "A String", # Do not return solutions that cost more than this price. The alphabetical part of the price is in ISO 4217. The format, in regex, is [A-Z]{3}\d+(\.\d+)? Example: $102.07
+      "solutions": 42, # The number of solutions to return, maximum 500.
+      "refundable": True or False, # Return only solutions with refundable fares.
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A QPX Express search response.
+    "kind": "qpxExpress#tripsSearch", # Identifies this as a QPX Express API search response resource. Value: the fixed string qpxExpress#tripsSearch.
+    "trips": { # A QPX Express search response. # All possible solutions to the QPX Express search request.
+      "tripOption": [ # A list of priced itinerary solutions to the QPX Express query.
+        { # Trip information.
+          "saleTotal": "A String", # The total price for all passengers on the trip, in the form of a currency followed by an amount, e.g. USD253.35.
+          "kind": "qpxexpress#tripOption", # Identifies this as a trip information object. Value: the fixed string qpxexpress#tripOption.
+          "slice": [ # The slices that make up this trip's itinerary.
+            { # Information about a slice. A slice represents a traveller's intent, the portion of a low-fare search corresponding to a traveler's request to get between two points. One-way journeys are generally expressed using 1 slice, round-trips using 2. For example, if a traveler specifies the following trip in a user interface:
+                # | Origin | Destination | Departure Date | | BOS | LAX | March 10, 2007 | | LAX | SYD | March 17, 2007 | | SYD | BOS | March 22, 2007 |
+                # then this is a three slice trip.
+              "duration": 42, # The duration of the slice in minutes.
+              "kind": "qpxexpress#sliceInfo", # Identifies this as a slice object. A slice represents a traveller's intent, the portion of a low-fare search corresponding to a traveler's request to get between two points. One-way journeys are generally expressed using 1 slice, round-trips using 2. Value: the fixed string qpxexpress#sliceInfo.
+              "segment": [ # The segment(s) constituting the slice.
+                { # Details of a segment of a flight; a segment is one or more consecutive legs on the same flight. For example a hypothetical flight ZZ001, from DFW to OGG, would have one segment with two legs: DFW to HNL (leg 1), HNL to OGG (leg 2), and DFW to OGG (legs 1 and 2).
+                  "kind": "qpxexpress#segmentInfo", # Identifies this as a segment object. A segment is one or more consecutive legs on the same flight. For example a hypothetical flight ZZ001, from DFW to OGG, could have one segment with two legs: DFW to HNL (leg 1), HNL to OGG (leg 2). Value: the fixed string qpxexpress#segmentInfo.
+                  "bookingCodeCount": 42, # The number of seats available in this booking code on this segment.
+                  "flight": { # A flight is a sequence of legs with the same airline carrier and flight number. (A leg is the smallest unit of travel, in the case of a flight a takeoff immediately followed by a landing at two set points on a particular carrier with a particular flight number.) The naive view is that a flight is scheduled travel of an aircraft between two points, with possibly intermediate stops, but carriers will frequently list flights that require a change of aircraft between legs. # The flight this is a segment of.
+                    "carrier": "A String",
+                    "number": "A String", # The flight number.
+                  },
+                  "leg": [ # The legs composing this segment.
+                    { # Information about a leg. (A leg is the smallest unit of travel, in the case of a flight a takeoff immediately followed by a landing at two set points on a particular carrier with a particular flight number.)
+                      "origin": "A String", # The leg origin as a city and airport.
+                      "originTerminal": "A String", # The terminal the flight is scheduled to depart from.
+                      "departureTime": "A String", # The scheduled departure time of the leg, local to the point of departure.
+                      "destinationTerminal": "A String", # The terminal the flight is scheduled to arrive at.
+                      "secure": True or False, # Whether passenger information must be furnished to the United States Transportation Security Administration (TSA) prior to departure.
+                      "connectionDuration": 42, # Duration of a connection following this leg, in minutes.
+                      "destination": "A String", # The leg destination as a city and airport.
+                      "kind": "qpxexpress#legInfo", # Identifies this as a leg object. A leg is the smallest unit of travel, in the case of a flight a takeoff immediately followed by a landing at two set points on a particular carrier with a particular flight number. Value: the fixed string qpxexpress#legInfo.
+                      "meal": "A String", # A simple, general description of the meal(s) served on the flight, for example: "Hot meal".
+                      "aircraft": "A String", # The aircraft (or bus, ferry, railcar, etc) travelling between the two points of this leg.
+                      "mileage": 42, # The number of miles in this leg.
+                      "changePlane": True or False, # Whether you have to change planes following this leg. Only applies to the next leg.
+                      "arrivalTime": "A String", # The scheduled time of arrival at the destination of the leg, local to the point of arrival.
+                      "duration": 42, # The scheduled travelling time from the origin to the destination.
+                      "operatingDisclosure": "A String", # Department of Transportation disclosure information on the actual operator of a flight in a code share. (A code share refers to a marketing agreement between two carriers, where one carrier will list in its schedules (and take bookings for) flights that are actually operated by another carrier.)
+                      "onTimePerformance": 42, # In percent, the published on time performance on this leg.
+                      "id": "A String", # An identifier that uniquely identifies this leg in the solution.
+                    },
+                  ],
+                  "subjectToGovernmentApproval": True or False, # Whether the operation of this segment remains subject to government approval.
+                  "connectionDuration": 42, # In minutes, the duration of the connection following this segment.
+                  "bookingCode": "A String", # The booking code or class for this segment.
+                  "duration": 42, # The duration of the flight segment in minutes.
+                  "id": "A String", # An id uniquely identifying the segment in the solution.
+                  "cabin": "A String", # The cabin booked for this segment.
+                  "marriedSegmentGroup": "A String", # The solution-based index of a segment in a married segment group. Married segments can only be booked together. For example, an airline might report a certain booking code as sold out from Boston to Pittsburgh, but as available as part of two married segments Boston to Chicago connecting through Pittsburgh. For example content of this field, consider the round-trip flight ZZ1 PHX-PHL ZZ2 PHL-CLT ZZ3 CLT-PHX. This has three segments, with the two outbound ones (ZZ1 ZZ2) married. In this case, the two outbound segments belong to married segment group 0, and the return segment belongs to married segment group 1.
+                },
+              ],
+            },
+          ],
+          "id": "A String", # Identifier uniquely identifying this trip in a response.
+          "pricing": [ # Per passenger pricing information.
+            { # The price of one or more travel segments. The currency used to purchase tickets is usually determined by the sale/ticketing city or the sale/ticketing country, unless none are specified, in which case it defaults to that of the journey origin country.
+              "fare": [ # The fare used to price one or more segments.
+                { # Complete information about a fare used in the solution to a low-fare search query. In the airline industry a fare is a price an airline charges for one-way travel between two points. A fare typically contains a carrier code, two city codes, a price, and a fare basis. (A fare basis is a one-to-eight character alphanumeric code used to identify a fare.)
+                  "basisCode": "A String",
+                  "origin": "A String", # The city code of the city the trip begins at.
+                  "kind": "qpxexpress#fareInfo", # Identifies this as a fare object. Value: the fixed string qpxexpress#fareInfo.
+                  "destination": "A String", # The city code of the city the trip ends at.
+                  "private": True or False, # Whether this is a private fare, for example one offered only to select customers rather than the general public.
+                  "carrier": "A String", # The carrier of the aircraft or other vehicle commuting between two points.
+                  "id": "A String", # A unique identifier of the fare.
+                },
+              ],
+              "fareCalculation": "A String", # The horizontal fare calculation. This is a field on a ticket that displays all of the relevant items that go into the calculation of the fare.
+              "kind": "qpxexpress#pricingInfo", # Identifies this as a pricing object, representing the price of one or more travel segments. Value: the fixed string qpxexpress#pricingInfo.
+              "segmentPricing": [ # The per-segment price and baggage information.
+                { # The price of this segment.
+                  "kind": "qpxexpress#segmentPricing", # Identifies this as a segment pricing object, representing the price of this segment. Value: the fixed string qpxexpress#segmentPricing.
+                  "fareId": "A String", # A segment identifier unique within a single solution. It is used to refer to different parts of the same solution.
+                  "freeBaggageOption": [ # Details of the free baggage allowance on this segment.
+                    { # Information about free baggage allowed on one segment of a trip.
+                      "kilosPerPiece": 42, # The maximum number of kilos any one piece of baggage may weigh.
+                      "pounds": 42, # The number of pounds of free baggage allowed.
+                      "kind": "qpxexpress#freeBaggageAllowance", # Identifies this as free baggage object, allowed on one segment of a trip. Value: the fixed string qpxexpress#freeBaggageAllowance.
+                      "pieces": 42, # The number of free pieces of baggage allowed.
+                      "bagDescriptor": [ # A representation of a type of bag, such as an ATPCo subcode, Commercial Name, or other description.
+                        { # Information about an item of baggage.
+                          "count": 42, # How many of this type of bag will be checked on this flight.
+                          "subcode": "A String", # The standard IATA subcode used to identify this optional service.
+                          "kind": "qpxexpress#bagDescriptor", # Identifies this as a baggage object. Value: the fixed string qpxexpress#bagDescriptor.
+                          "commercialName": "A String", # Provides the commercial name for an optional service.
+                          "description": [ # A description of the baggage.
+                            "A String",
+                          ],
+                        },
+                      ],
+                      "kilos": 42, # The maximum number of kilos all the free baggage together may weigh.
+                    },
+                  ],
+                  "segmentId": "A String", # Unique identifier in the response of this segment.
+                },
+              ],
+              "saleTotal": "A String", # Total per-passenger price (fare and tax) in the sale or equivalent currency.
+              "passengers": { # The number and type of passengers. Unfortunately the definition of an infant, child, adult, and senior citizen varies across carriers and reservation systems. # The number of passengers to which this price applies.
+                "kind": "qpxexpress#passengerCounts", # Identifies this as a passenger count object, representing the number of passengers. Value: the fixed string qpxexpress#passengerCounts.
+                "infantInLapCount": 42, # The number of passengers that are infants travelling in the lap of an adult.
+                "seniorCount": 42, # The number of passengers that are senior citizens.
+                "infantInSeatCount": 42, # The number of passengers that are infants each assigned a seat.
+                "childCount": 42, # The number of passengers that are children.
+                "adultCount": 42, # The number of passengers that are adults.
+              },
+              "tax": [ # The taxes used to calculate the tax total per ticket.
+                { # Tax information.
+                  "kind": "qpxexpress#taxInfo", # Identifies this as a tax information object. Value: the fixed string qpxexpress#taxInfo.
+                  "code": "A String", # The code to enter in the ticket's tax box.
+                  "country": "A String", # For government charges, the country levying the charge.
+                  "salePrice": "A String", # The price of the tax in the sales or equivalent currency.
+                  "chargeType": "A String", # Whether this is a government charge or a carrier surcharge.
+                  "id": "A String", # Identifier uniquely identifying this tax in a response. Not present for unnamed carrier surcharges.
+                },
+              ],
+              "ptc": "A String", # The passenger type code for this pricing. An alphanumeric code used by a carrier to restrict fares to certain categories of passenger. For instance, a fare might be valid only for senior citizens.
+              "saleFareTotal": "A String", # The total fare in the sale or equivalent currency.
+              "baseFareTotal": "A String", # The total fare in the base fare currency (the currency of the country of origin). This element is only present when the sales currency and the currency of the country of commencement are different.
+              "refundable": True or False, # Whether the fares on this pricing are refundable.
+              "saleTaxTotal": "A String", # The taxes in the sale or equivalent currency.
+              "latestTicketingTime": "A String", # The latest ticketing time for this pricing assuming the reservation occurs at ticketing time and there is no change in fares/rules. The time is local to the point of sale (POS).
+            },
+          ],
+        },
+      ],
+      "kind": "qpxexpress#tripOptions", # Identifies this as a QPX Express trip response object, which consists of zero or more solutions. Value: the fixed string qpxexpress#tripOptions.
+      "data": { # Detailed information about components found in the solutions of this response, including a trip's airport, city, taxes, airline, and aircraft. # Informational data global to list of solutions.
+        "city": [ # The city that is either the origin or destination of part of a trip.
+          { # Information about a city that might be useful to an end-user; typically the city of an airport.
+            "country": "A String", # The two-character country code of the country the city is located in. For example, US for the United States of America.
+            "kind": "qpxexpress#cityData", # Identifies this as a city, typically with one or more airports. Value: the fixed string qpxexpress#cityData.
+            "code": "A String", # The IATA character ID of a city. For example, for Boston this is BOS.
+            "name": "A String", # The full name of a city. An example would be: New York.
+          },
+        ],
+        "kind": "qpxexpress#data", # Identifies this as QPX Express response resource, including a trip's airport, city, taxes, airline, and aircraft. Value: the fixed string qpxexpress#data.
+        "tax": [ # The taxes due for flying between an origin and a destination.
+          { # Tax data.
+            "kind": "qpxexpress#taxData", # Identifies this as a tax data object, representing some tax. Value: the fixed string qpxexpress#taxData.
+            "id": "A String", # An identifier uniquely identifying a tax in a response.
+            "name": "A String", # The name of a tax.
+          },
+        ],
+        "airport": [ # The airport of an origin or destination.
+          { # An airport.
+            "city": "A String", # The city code an airport is located in. For example, for JFK airport, this is NYC.
+            "kind": "qpxexpress#airportData", # Identifies this as an airport object. Value: the fixed string qpxexpress#airportData.
+            "code": "A String", # An airport's code. For example, for Boston Logan airport, this is BOS.
+            "name": "A String", # The name of an airport. For example, for airport BOS the name is "Boston Logan International".
+          },
+        ],
+        "aircraft": [ # The aircraft that is flying between an origin and destination.
+          { # The make, model, and type of an aircraft.
+            "kind": "qpxexpress#aircraftData", # Identifies this as an aircraftData object. Value: the fixed string qpxexpress#aircraftData
+            "code": "A String", # The aircraft code. For example, for a Boeing 777 the code would be 777.
+            "name": "A String", # The name of an aircraft, for example Boeing 777.
+          },
+        ],
+        "carrier": [ # The airline carrier of the aircraft flying between an origin and destination. Allowed values are IATA carrier codes.
+          { # Information about a carrier (ie. an airline, bus line, railroad, etc) that might be useful to display to an end-user.
+            "kind": "qpxexpress#carrierData", # Identifies this as a kind of carrier (ie. an airline, bus line, railroad, etc). Value: the fixed string qpxexpress#carrierData.
+            "code": "A String", # The IATA designator of a carrier (airline, etc). For example, for American Airlines, the code is AA.
+            "name": "A String", # The long, full name of a carrier. For example: American Airlines.
+          },
+        ],
+      },
+      "requestId": "A String", # An identifier uniquely identifying this response.
+    },
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/reseller_v1.customers.html b/docs/dyn/reseller_v1.customers.html
new file mode 100644
index 0000000..8f9e31e
--- /dev/null
+++ b/docs/dyn/reseller_v1.customers.html
@@ -0,0 +1,290 @@
+<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="reseller_v1.html">Enterprise Apps Reseller API</a> . <a href="reseller_v1.customers.html">customers</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(customerId)</a></code></p>
+<p class="firstline">Gets a customer resource if one exists and is owned by the reseller.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(body, customerAuthToken=None)</a></code></p>
+<p class="firstline">Creates a customer resource if one does not already exist.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(customerId, body)</a></code></p>
+<p class="firstline">Update a customer resource if one it exists and is owned by the reseller. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(customerId, body)</a></code></p>
+<p class="firstline">Update a customer resource if one it exists and is owned by the reseller.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(customerId)</code>
+  <pre>Gets a customer resource if one exists and is owned by the reseller.
+
+Args:
+  customerId: string, Id of the Customer (required)
+
+Returns:
+  An object of the form:
+
+    { # JSON template for a customer.
+      "customerDomain": "A String", # The domain name of the customer.
+      "alternateEmail": "A String", # The alternate email of the customer.
+      "kind": "reseller#customer", # Identifies the resource as a customer.
+      "resourceUiUrl": "A String", # Ui url for customer resource.
+      "phoneNumber": "A String", # The phone number of the customer.
+      "postalAddress": { # JSON template for address of a customer. # The postal address of the customer.
+        "kind": "customers#address", # Identifies the resource as a customer address.
+        "organizationName": "A String", # Name of the organization.
+        "countryCode": "A String", # ISO 3166 country code.
+        "locality": "A String", # Name of the locality. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element.
+        "region": "A String", # Name of the region. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element.
+        "addressLine2": "A String", # Address line 2 of the address.
+        "addressLine3": "A String", # Address line 3 of the address.
+        "contactName": "A String", # Name of the contact person.
+        "addressLine1": "A String", # Address line 1 of the address.
+        "postalCode": "A String", # The postal code. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element.
+      },
+      "customerId": "A String", # The id of the customer.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(body, customerAuthToken=None)</code>
+  <pre>Creates a customer resource if one does not already exist.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # JSON template for a customer.
+    "customerDomain": "A String", # The domain name of the customer.
+    "alternateEmail": "A String", # The alternate email of the customer.
+    "kind": "reseller#customer", # Identifies the resource as a customer.
+    "resourceUiUrl": "A String", # Ui url for customer resource.
+    "phoneNumber": "A String", # The phone number of the customer.
+    "postalAddress": { # JSON template for address of a customer. # The postal address of the customer.
+      "kind": "customers#address", # Identifies the resource as a customer address.
+      "organizationName": "A String", # Name of the organization.
+      "countryCode": "A String", # ISO 3166 country code.
+      "locality": "A String", # Name of the locality. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element.
+      "region": "A String", # Name of the region. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element.
+      "addressLine2": "A String", # Address line 2 of the address.
+      "addressLine3": "A String", # Address line 3 of the address.
+      "contactName": "A String", # Name of the contact person.
+      "addressLine1": "A String", # Address line 1 of the address.
+      "postalCode": "A String", # The postal code. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element.
+    },
+    "customerId": "A String", # The id of the customer.
+  }
+
+  customerAuthToken: string, An auth token needed for inserting a customer for which domain already exists. Can be generated at https://www.google.com/a/cpanel//TransferToken. Optional.
+
+Returns:
+  An object of the form:
+
+    { # JSON template for a customer.
+      "customerDomain": "A String", # The domain name of the customer.
+      "alternateEmail": "A String", # The alternate email of the customer.
+      "kind": "reseller#customer", # Identifies the resource as a customer.
+      "resourceUiUrl": "A String", # Ui url for customer resource.
+      "phoneNumber": "A String", # The phone number of the customer.
+      "postalAddress": { # JSON template for address of a customer. # The postal address of the customer.
+        "kind": "customers#address", # Identifies the resource as a customer address.
+        "organizationName": "A String", # Name of the organization.
+        "countryCode": "A String", # ISO 3166 country code.
+        "locality": "A String", # Name of the locality. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element.
+        "region": "A String", # Name of the region. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element.
+        "addressLine2": "A String", # Address line 2 of the address.
+        "addressLine3": "A String", # Address line 3 of the address.
+        "contactName": "A String", # Name of the contact person.
+        "addressLine1": "A String", # Address line 1 of the address.
+        "postalCode": "A String", # The postal code. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element.
+      },
+      "customerId": "A String", # The id of the customer.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(customerId, body)</code>
+  <pre>Update a customer resource if one it exists and is owned by the reseller. This method supports patch semantics.
+
+Args:
+  customerId: string, Id of the Customer (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # JSON template for a customer.
+    "customerDomain": "A String", # The domain name of the customer.
+    "alternateEmail": "A String", # The alternate email of the customer.
+    "kind": "reseller#customer", # Identifies the resource as a customer.
+    "resourceUiUrl": "A String", # Ui url for customer resource.
+    "phoneNumber": "A String", # The phone number of the customer.
+    "postalAddress": { # JSON template for address of a customer. # The postal address of the customer.
+      "kind": "customers#address", # Identifies the resource as a customer address.
+      "organizationName": "A String", # Name of the organization.
+      "countryCode": "A String", # ISO 3166 country code.
+      "locality": "A String", # Name of the locality. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element.
+      "region": "A String", # Name of the region. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element.
+      "addressLine2": "A String", # Address line 2 of the address.
+      "addressLine3": "A String", # Address line 3 of the address.
+      "contactName": "A String", # Name of the contact person.
+      "addressLine1": "A String", # Address line 1 of the address.
+      "postalCode": "A String", # The postal code. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element.
+    },
+    "customerId": "A String", # The id of the customer.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # JSON template for a customer.
+      "customerDomain": "A String", # The domain name of the customer.
+      "alternateEmail": "A String", # The alternate email of the customer.
+      "kind": "reseller#customer", # Identifies the resource as a customer.
+      "resourceUiUrl": "A String", # Ui url for customer resource.
+      "phoneNumber": "A String", # The phone number of the customer.
+      "postalAddress": { # JSON template for address of a customer. # The postal address of the customer.
+        "kind": "customers#address", # Identifies the resource as a customer address.
+        "organizationName": "A String", # Name of the organization.
+        "countryCode": "A String", # ISO 3166 country code.
+        "locality": "A String", # Name of the locality. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element.
+        "region": "A String", # Name of the region. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element.
+        "addressLine2": "A String", # Address line 2 of the address.
+        "addressLine3": "A String", # Address line 3 of the address.
+        "contactName": "A String", # Name of the contact person.
+        "addressLine1": "A String", # Address line 1 of the address.
+        "postalCode": "A String", # The postal code. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element.
+      },
+      "customerId": "A String", # The id of the customer.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(customerId, body)</code>
+  <pre>Update a customer resource if one it exists and is owned by the reseller.
+
+Args:
+  customerId: string, Id of the Customer (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # JSON template for a customer.
+    "customerDomain": "A String", # The domain name of the customer.
+    "alternateEmail": "A String", # The alternate email of the customer.
+    "kind": "reseller#customer", # Identifies the resource as a customer.
+    "resourceUiUrl": "A String", # Ui url for customer resource.
+    "phoneNumber": "A String", # The phone number of the customer.
+    "postalAddress": { # JSON template for address of a customer. # The postal address of the customer.
+      "kind": "customers#address", # Identifies the resource as a customer address.
+      "organizationName": "A String", # Name of the organization.
+      "countryCode": "A String", # ISO 3166 country code.
+      "locality": "A String", # Name of the locality. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element.
+      "region": "A String", # Name of the region. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element.
+      "addressLine2": "A String", # Address line 2 of the address.
+      "addressLine3": "A String", # Address line 3 of the address.
+      "contactName": "A String", # Name of the contact person.
+      "addressLine1": "A String", # Address line 1 of the address.
+      "postalCode": "A String", # The postal code. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element.
+    },
+    "customerId": "A String", # The id of the customer.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # JSON template for a customer.
+      "customerDomain": "A String", # The domain name of the customer.
+      "alternateEmail": "A String", # The alternate email of the customer.
+      "kind": "reseller#customer", # Identifies the resource as a customer.
+      "resourceUiUrl": "A String", # Ui url for customer resource.
+      "phoneNumber": "A String", # The phone number of the customer.
+      "postalAddress": { # JSON template for address of a customer. # The postal address of the customer.
+        "kind": "customers#address", # Identifies the resource as a customer address.
+        "organizationName": "A String", # Name of the organization.
+        "countryCode": "A String", # ISO 3166 country code.
+        "locality": "A String", # Name of the locality. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element.
+        "region": "A String", # Name of the region. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element.
+        "addressLine2": "A String", # Address line 2 of the address.
+        "addressLine3": "A String", # Address line 3 of the address.
+        "contactName": "A String", # Name of the contact person.
+        "addressLine1": "A String", # Address line 1 of the address.
+        "postalCode": "A String", # The postal code. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element.
+      },
+      "customerId": "A String", # The id of the customer.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/reseller_v1.html b/docs/dyn/reseller_v1.html
new file mode 100644
index 0000000..d8e9e0a
--- /dev/null
+++ b/docs/dyn/reseller_v1.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="reseller_v1.html">Enterprise Apps Reseller API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="reseller_v1.customers.html">customers()</a></code>
+</p>
+<p class="firstline">Returns the customers Resource.</p>
+
+<p class="toc_element">
+  <code><a href="reseller_v1.subscriptions.html">subscriptions()</a></code>
+</p>
+<p class="firstline">Returns the subscriptions Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/reseller_v1.subscriptions.html b/docs/dyn/reseller_v1.subscriptions.html
new file mode 100644
index 0000000..d9b420d
--- /dev/null
+++ b/docs/dyn/reseller_v1.subscriptions.html
@@ -0,0 +1,549 @@
+<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="reseller_v1.html">Enterprise Apps Reseller API</a> . <a href="reseller_v1.subscriptions.html">subscriptions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#changePlan">changePlan(customerId, subscriptionId, body)</a></code></p>
+<p class="firstline">Changes the plan of a subscription</p>
+<p class="toc_element">
+  <code><a href="#changeRenewalSettings">changeRenewalSettings(customerId, subscriptionId, body)</a></code></p>
+<p class="firstline">Changes the renewal settings of a subscription</p>
+<p class="toc_element">
+  <code><a href="#changeSeats">changeSeats(customerId, subscriptionId, body)</a></code></p>
+<p class="firstline">Changes the seats configuration of a subscription</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(customerId, subscriptionId, deletionType)</a></code></p>
+<p class="firstline">Cancels/Downgrades a subscription.</p>
+<p class="toc_element">
+  <code><a href="#get">get(customerId, subscriptionId)</a></code></p>
+<p class="firstline">Gets a subscription of the customer.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(customerId, body, customerAuthToken=None)</a></code></p>
+<p class="firstline">Creates/Transfers a subscription for the customer.</p>
+<p class="toc_element">
+  <code><a href="#list">list(customerAuthToken=None, pageToken=None, maxResults=None, customerNamePrefix=None, customerId=None)</a></code></p>
+<p class="firstline">Lists subscriptions of a reseller, optionally filtered by a customer name prefix.</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="#startPaidService">startPaidService(customerId, subscriptionId)</a></code></p>
+<p class="firstline">Starts paid service of a trial subscription</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="changePlan">changePlan(customerId, subscriptionId, body)</code>
+  <pre>Changes the plan of a subscription
+
+Args:
+  customerId: string, Id of the Customer (required)
+  subscriptionId: string, Id of the subscription, which is unique for a customer (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # JSON template for the ChangePlan rpc request.
+    "planName": "A String", # Name of the plan to change to.
+    "kind": "subscriptions#changePlanRequest", # Identifies the resource as a subscription change plan request.
+    "seats": { # JSON template for subscription seats. # Number/Limit of seats in the new plan.
+      "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.
+    },
+    "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # JSON template for a subscription.
+      "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings of the subscription.
+        "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting.
+        "renewalType": "A String", # Subscription renewal type.
+      },
+      "skuId": "A String", # Name of the sku for which this subscription is purchased.
+      "kind": "reseller#subscription", # Identifies the resource as a Subscription.
+      "trialSettings": { # Trial Settings of the subscription.
+        "trialEndTime": "A String", # End time of the trial in milliseconds since Unix epoch.
+        "isInTrial": True or False, # Whether the subscription is in trial.
+      },
+      "transferInfo": { # Transfer related information for the subscription.
+        "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
+        "minimumTransferableSeats": 42,
+      },
+      "resourceUiUrl": "A String", # Ui url for subscription resource.
+      "seats": { # JSON template for subscription seats. # Number/Limit of seats in the new plan.
+        "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.
+      },
+      "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
+      "status": "A String", # Status of the subscription.
+      "plan": { # Plan details of the subscription
+        "planName": "A String", # The plan name of this subscription's plan.
+        "commitmentInterval": { # Interval of the commitment if it is a commitment plan.
+          "endTime": "A String", # End time of the commitment interval in milliseconds since Unix epoch.
+          "startTime": "A String", # Start time of the commitment interval in milliseconds since Unix epoch.
+        },
+        "isCommitmentPlan": True or False, # Whether the plan is a commitment plan or not.
+      },
+      "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
+      "subscriptionId": "A String", # The id of the subscription.
+      "customerId": "A String", # The id of the customer to whom the subscription belongs.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="changeRenewalSettings">changeRenewalSettings(customerId, subscriptionId, body)</code>
+  <pre>Changes the renewal settings of a subscription
+
+Args:
+  customerId: string, Id of the Customer (required)
+  subscriptionId: string, Id of the subscription, which is unique for a customer (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # JSON template for a subscription renewal settings.
+  "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting.
+  "renewalType": "A String", # Subscription renewal type.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # JSON template for a subscription.
+      "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings of the subscription.
+        "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting.
+        "renewalType": "A String", # Subscription renewal type.
+      },
+      "skuId": "A String", # Name of the sku for which this subscription is purchased.
+      "kind": "reseller#subscription", # Identifies the resource as a Subscription.
+      "trialSettings": { # Trial Settings of the subscription.
+        "trialEndTime": "A String", # End time of the trial in milliseconds since Unix epoch.
+        "isInTrial": True or False, # Whether the subscription is in trial.
+      },
+      "transferInfo": { # Transfer related information for the subscription.
+        "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
+        "minimumTransferableSeats": 42,
+      },
+      "resourceUiUrl": "A String", # Ui url for subscription resource.
+      "seats": { # JSON template for subscription seats. # Number/Limit of seats in the new plan.
+        "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.
+      },
+      "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
+      "status": "A String", # Status of the subscription.
+      "plan": { # Plan details of the subscription
+        "planName": "A String", # The plan name of this subscription's plan.
+        "commitmentInterval": { # Interval of the commitment if it is a commitment plan.
+          "endTime": "A String", # End time of the commitment interval in milliseconds since Unix epoch.
+          "startTime": "A String", # Start time of the commitment interval in milliseconds since Unix epoch.
+        },
+        "isCommitmentPlan": True or False, # Whether the plan is a commitment plan or not.
+      },
+      "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
+      "subscriptionId": "A String", # The id of the subscription.
+      "customerId": "A String", # The id of the customer to whom the subscription belongs.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="changeSeats">changeSeats(customerId, subscriptionId, body)</code>
+  <pre>Changes the seats configuration of a subscription
+
+Args:
+  customerId: string, Id of the Customer (required)
+  subscriptionId: string, Id of the subscription, which is unique for a customer (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # JSON template for subscription seats.
+  "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.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # JSON template for a subscription.
+      "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings of the subscription.
+        "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting.
+        "renewalType": "A String", # Subscription renewal type.
+      },
+      "skuId": "A String", # Name of the sku for which this subscription is purchased.
+      "kind": "reseller#subscription", # Identifies the resource as a Subscription.
+      "trialSettings": { # Trial Settings of the subscription.
+        "trialEndTime": "A String", # End time of the trial in milliseconds since Unix epoch.
+        "isInTrial": True or False, # Whether the subscription is in trial.
+      },
+      "transferInfo": { # Transfer related information for the subscription.
+        "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
+        "minimumTransferableSeats": 42,
+      },
+      "resourceUiUrl": "A String", # Ui url for subscription resource.
+      "seats": { # JSON template for subscription seats. # Number/Limit of seats in the new plan.
+        "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.
+      },
+      "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
+      "status": "A String", # Status of the subscription.
+      "plan": { # Plan details of the subscription
+        "planName": "A String", # The plan name of this subscription's plan.
+        "commitmentInterval": { # Interval of the commitment if it is a commitment plan.
+          "endTime": "A String", # End time of the commitment interval in milliseconds since Unix epoch.
+          "startTime": "A String", # Start time of the commitment interval in milliseconds since Unix epoch.
+        },
+        "isCommitmentPlan": True or False, # Whether the plan is a commitment plan or not.
+      },
+      "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
+      "subscriptionId": "A String", # The id of the subscription.
+      "customerId": "A String", # The id of the customer to whom the subscription belongs.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(customerId, subscriptionId, deletionType)</code>
+  <pre>Cancels/Downgrades a subscription.
+
+Args:
+  customerId: string, Id of the Customer (required)
+  subscriptionId: string, Id of the subscription, which is unique for a customer (required)
+  deletionType: string, Whether the subscription is to be fully cancelled or downgraded (required)
+    Allowed values
+      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
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(customerId, subscriptionId)</code>
+  <pre>Gets a subscription of the customer.
+
+Args:
+  customerId: string, Id of the Customer (required)
+  subscriptionId: string, Id of the subscription, which is unique for a customer (required)
+
+Returns:
+  An object of the form:
+
+    { # JSON template for a subscription.
+      "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings of the subscription.
+        "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting.
+        "renewalType": "A String", # Subscription renewal type.
+      },
+      "skuId": "A String", # Name of the sku for which this subscription is purchased.
+      "kind": "reseller#subscription", # Identifies the resource as a Subscription.
+      "trialSettings": { # Trial Settings of the subscription.
+        "trialEndTime": "A String", # End time of the trial in milliseconds since Unix epoch.
+        "isInTrial": True or False, # Whether the subscription is in trial.
+      },
+      "transferInfo": { # Transfer related information for the subscription.
+        "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
+        "minimumTransferableSeats": 42,
+      },
+      "resourceUiUrl": "A String", # Ui url for subscription resource.
+      "seats": { # JSON template for subscription seats. # Number/Limit of seats in the new plan.
+        "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.
+      },
+      "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
+      "status": "A String", # Status of the subscription.
+      "plan": { # Plan details of the subscription
+        "planName": "A String", # The plan name of this subscription's plan.
+        "commitmentInterval": { # Interval of the commitment if it is a commitment plan.
+          "endTime": "A String", # End time of the commitment interval in milliseconds since Unix epoch.
+          "startTime": "A String", # Start time of the commitment interval in milliseconds since Unix epoch.
+        },
+        "isCommitmentPlan": True or False, # Whether the plan is a commitment plan or not.
+      },
+      "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
+      "subscriptionId": "A String", # The id of the subscription.
+      "customerId": "A String", # The id of the customer to whom the subscription belongs.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(customerId, body, customerAuthToken=None)</code>
+  <pre>Creates/Transfers a subscription for the customer.
+
+Args:
+  customerId: string, Id of the Customer (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # JSON template for a subscription.
+    "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings of the subscription.
+      "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting.
+      "renewalType": "A String", # Subscription renewal type.
+    },
+    "skuId": "A String", # Name of the sku for which this subscription is purchased.
+    "kind": "reseller#subscription", # Identifies the resource as a Subscription.
+    "trialSettings": { # Trial Settings of the subscription.
+      "trialEndTime": "A String", # End time of the trial in milliseconds since Unix epoch.
+      "isInTrial": True or False, # Whether the subscription is in trial.
+    },
+    "transferInfo": { # Transfer related information for the subscription.
+      "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
+      "minimumTransferableSeats": 42,
+    },
+    "resourceUiUrl": "A String", # Ui url for subscription resource.
+    "seats": { # JSON template for subscription seats. # Number/Limit of seats in the new plan.
+      "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.
+    },
+    "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
+    "status": "A String", # Status of the subscription.
+    "plan": { # Plan details of the subscription
+      "planName": "A String", # The plan name of this subscription's plan.
+      "commitmentInterval": { # Interval of the commitment if it is a commitment plan.
+        "endTime": "A String", # End time of the commitment interval in milliseconds since Unix epoch.
+        "startTime": "A String", # Start time of the commitment interval in milliseconds since Unix epoch.
+      },
+      "isCommitmentPlan": True or False, # Whether the plan is a commitment plan or not.
+    },
+    "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
+    "subscriptionId": "A String", # The id of the subscription.
+    "customerId": "A String", # The id of the customer to whom the subscription belongs.
+  }
+
+  customerAuthToken: string, An auth token needed for transferring a subscription. Can be generated at https://www.google.com/a/cpanel/customer-domain/TransferToken. Optional.
+
+Returns:
+  An object of the form:
+
+    { # JSON template for a subscription.
+      "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings of the subscription.
+        "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting.
+        "renewalType": "A String", # Subscription renewal type.
+      },
+      "skuId": "A String", # Name of the sku for which this subscription is purchased.
+      "kind": "reseller#subscription", # Identifies the resource as a Subscription.
+      "trialSettings": { # Trial Settings of the subscription.
+        "trialEndTime": "A String", # End time of the trial in milliseconds since Unix epoch.
+        "isInTrial": True or False, # Whether the subscription is in trial.
+      },
+      "transferInfo": { # Transfer related information for the subscription.
+        "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
+        "minimumTransferableSeats": 42,
+      },
+      "resourceUiUrl": "A String", # Ui url for subscription resource.
+      "seats": { # JSON template for subscription seats. # Number/Limit of seats in the new plan.
+        "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.
+      },
+      "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
+      "status": "A String", # Status of the subscription.
+      "plan": { # Plan details of the subscription
+        "planName": "A String", # The plan name of this subscription's plan.
+        "commitmentInterval": { # Interval of the commitment if it is a commitment plan.
+          "endTime": "A String", # End time of the commitment interval in milliseconds since Unix epoch.
+          "startTime": "A String", # Start time of the commitment interval in milliseconds since Unix epoch.
+        },
+        "isCommitmentPlan": True or False, # Whether the plan is a commitment plan or not.
+      },
+      "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
+      "subscriptionId": "A String", # The id of the subscription.
+      "customerId": "A String", # The id of the customer to whom the subscription belongs.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(customerAuthToken=None, pageToken=None, maxResults=None, customerNamePrefix=None, customerId=None)</code>
+  <pre>Lists subscriptions of a reseller, optionally filtered by a customer name prefix.
+
+Args:
+  customerAuthToken: string, An auth token needed if the customer is not a resold customer of this reseller. Can be generated at https://www.google.com/a/cpanel/customer-domain/TransferToken.Optional.
+  pageToken: string, Token to specify next page in the list
+  maxResults: integer, Maximum number of results to return
+  customerNamePrefix: string, Prefix of the customer's domain name by which the subscriptions should be filtered. Optional
+  customerId: string, Id of the Customer
+
+Returns:
+  An object of the form:
+
+    { # JSON template for a subscription list.
+    "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.
+    "kind": "reseller#subscriptions", # Identifies the resource as a collection of subscriptions.
+    "subscriptions": [ # The subscriptions in this page of results.
+      { # JSON template for a subscription.
+          "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings of the subscription.
+            "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting.
+            "renewalType": "A String", # Subscription renewal type.
+          },
+          "skuId": "A String", # Name of the sku for which this subscription is purchased.
+          "kind": "reseller#subscription", # Identifies the resource as a Subscription.
+          "trialSettings": { # Trial Settings of the subscription.
+            "trialEndTime": "A String", # End time of the trial in milliseconds since Unix epoch.
+            "isInTrial": True or False, # Whether the subscription is in trial.
+          },
+          "transferInfo": { # Transfer related information for the subscription.
+            "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
+            "minimumTransferableSeats": 42,
+          },
+          "resourceUiUrl": "A String", # Ui url for subscription resource.
+          "seats": { # JSON template for subscription seats. # Number/Limit of seats in the new plan.
+            "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.
+          },
+          "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
+          "status": "A String", # Status of the subscription.
+          "plan": { # Plan details of the subscription
+            "planName": "A String", # The plan name of this subscription's plan.
+            "commitmentInterval": { # Interval of the commitment if it is a commitment plan.
+              "endTime": "A String", # End time of the commitment interval in milliseconds since Unix epoch.
+              "startTime": "A String", # Start time of the commitment interval in milliseconds since Unix epoch.
+            },
+            "isCommitmentPlan": True or False, # Whether the plan is a commitment plan or not.
+          },
+          "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
+          "subscriptionId": "A String", # The id of the subscription.
+          "customerId": "A String", # The id of the customer to whom the subscription belongs.
+        },
+    ],
+  }</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="startPaidService">startPaidService(customerId, subscriptionId)</code>
+  <pre>Starts paid service of a trial subscription
+
+Args:
+  customerId: string, Id of the Customer (required)
+  subscriptionId: string, Id of the subscription, which is unique for a customer (required)
+
+Returns:
+  An object of the form:
+
+    { # JSON template for a subscription.
+      "renewalSettings": { # JSON template for a subscription renewal settings. # Renewal settings of the subscription.
+        "kind": "subscriptions#renewalSettings", # Identifies the resource as a subscription renewal setting.
+        "renewalType": "A String", # Subscription renewal type.
+      },
+      "skuId": "A String", # Name of the sku for which this subscription is purchased.
+      "kind": "reseller#subscription", # Identifies the resource as a Subscription.
+      "trialSettings": { # Trial Settings of the subscription.
+        "trialEndTime": "A String", # End time of the trial in milliseconds since Unix epoch.
+        "isInTrial": True or False, # Whether the subscription is in trial.
+      },
+      "transferInfo": { # Transfer related information for the subscription.
+        "transferabilityExpirationTime": "A String", # Time when transfer token or intent to transfer will expire.
+        "minimumTransferableSeats": 42,
+      },
+      "resourceUiUrl": "A String", # Ui url for subscription resource.
+      "seats": { # JSON template for subscription seats. # Number/Limit of seats in the new plan.
+        "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.
+      },
+      "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
+      "status": "A String", # Status of the subscription.
+      "plan": { # Plan details of the subscription
+        "planName": "A String", # The plan name of this subscription's plan.
+        "commitmentInterval": { # Interval of the commitment if it is a commitment plan.
+          "endTime": "A String", # End time of the commitment interval in milliseconds since Unix epoch.
+          "startTime": "A String", # Start time of the commitment interval in milliseconds since Unix epoch.
+        },
+        "isCommitmentPlan": True or False, # Whether the plan is a commitment plan or not.
+      },
+      "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
+      "subscriptionId": "A String", # The id of the subscription.
+      "customerId": "A String", # The id of the customer to whom the subscription belongs.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/siteVerification_v1.html b/docs/dyn/siteVerification_v1.html
new file mode 100644
index 0000000..a9eb596
--- /dev/null
+++ b/docs/dyn/siteVerification_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="siteVerification_v1.html">Google Site Verification API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="siteVerification_v1.webResource.html">webResource()</a></code>
+</p>
+<p class="firstline">Returns the webResource Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/siteVerification_v1.webResource.html b/docs/dyn/siteVerification_v1.webResource.html
new file mode 100644
index 0000000..7149825
--- /dev/null
+++ b/docs/dyn/siteVerification_v1.webResource.html
@@ -0,0 +1,289 @@
+<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="siteVerification_v1.html">Google Site Verification API</a> . <a href="siteVerification_v1.webResource.html">webResource</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(id)</a></code></p>
+<p class="firstline">Relinquish ownership of a website or domain.</p>
+<p class="toc_element">
+  <code><a href="#get">get(id)</a></code></p>
+<p class="firstline">Get the most current data for a website or domain.</p>
+<p class="toc_element">
+  <code><a href="#getToken">getToken(body)</a></code></p>
+<p class="firstline">Get a verification token for placing on a website or domain.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(verificationMethod, body)</a></code></p>
+<p class="firstline">Attempt verification of a website or domain.</p>
+<p class="toc_element">
+  <code><a href="#list">list()</a></code></p>
+<p class="firstline">Get the list of your verified websites and domains.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(id, body)</a></code></p>
+<p class="firstline">Modify the list of owners for your website or domain. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(id, body)</a></code></p>
+<p class="firstline">Modify the list of owners for your website or domain.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(id)</code>
+  <pre>Relinquish ownership of a website or domain.
+
+Args:
+  id: string, The id of a verified site or domain. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(id)</code>
+  <pre>Get the most current data for a website or domain.
+
+Args:
+  id: string, The id of a verified site or domain. (required)
+
+Returns:
+  An object of the form:
+
+    {
+      "owners": [ # The email addresses of all verified owners.
+        "A String",
+      ],
+      "id": "A String", # The string used to identify this site. This value should be used in the "id" portion of the REST URL for the Get, Update, and Delete operations.
+      "site": { # The address and type of a site that is verified or will be verified.
+        "identifier": "A String", # The site identifier. If the type is set to SITE, the identifier is a URL. If the type is set to INET_DOMAIN, the site identifier is a domain name.
+        "type": "A String", # The site type. Can be SITE or INET_DOMAIN (domain name).
+      },
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getToken">getToken(body)</code>
+  <pre>Get a verification token for placing on a website or domain.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "verificationMethod": "A String", # The verification method that will be used to verify this site. For sites, 'FILE' or 'META' methods may be used. For domains, only 'DNS' may be used.
+    "site": { # The site for which a verification token will be generated.
+      "identifier": "A String", # The site identifier. If the type is set to SITE, the identifier is a URL. If the type is set to INET_DOMAIN, the site identifier is a domain name.
+      "type": "A String", # The type of resource to be verified. Can be SITE or INET_DOMAIN (domain name).
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "token": "A String", # The verification token. The token must be placed appropriately in order for verification to succeed.
+    "method": "A String", # The verification method to use in conjunction with this token. For FILE, the token should be placed in the top-level directory of the site, stored inside a file of the same name. For META, the token should be placed in the HEAD tag of the default page that is loaded for the site. For DNS, the token should be placed in a TXT record of the domain.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(verificationMethod, body)</code>
+  <pre>Attempt verification of a website or domain.
+
+Args:
+  verificationMethod: string, The method to use for verifying a site or domain. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "owners": [ # The email addresses of all verified owners.
+      "A String",
+    ],
+    "id": "A String", # The string used to identify this site. This value should be used in the "id" portion of the REST URL for the Get, Update, and Delete operations.
+    "site": { # The address and type of a site that is verified or will be verified.
+      "identifier": "A String", # The site identifier. If the type is set to SITE, the identifier is a URL. If the type is set to INET_DOMAIN, the site identifier is a domain name.
+      "type": "A String", # The site type. Can be SITE or INET_DOMAIN (domain name).
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "owners": [ # The email addresses of all verified owners.
+        "A String",
+      ],
+      "id": "A String", # The string used to identify this site. This value should be used in the "id" portion of the REST URL for the Get, Update, and Delete operations.
+      "site": { # The address and type of a site that is verified or will be verified.
+        "identifier": "A String", # The site identifier. If the type is set to SITE, the identifier is a URL. If the type is set to INET_DOMAIN, the site identifier is a domain name.
+        "type": "A String", # The site type. Can be SITE or INET_DOMAIN (domain name).
+      },
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list()</code>
+  <pre>Get the list of your verified websites and domains.
+
+Args:
+
+Returns:
+  An object of the form:
+
+    {
+    "items": [ # The list of sites that are owned by the authenticated user.
+      {
+          "owners": [ # The email addresses of all verified owners.
+            "A String",
+          ],
+          "id": "A String", # The string used to identify this site. This value should be used in the "id" portion of the REST URL for the Get, Update, and Delete operations.
+          "site": { # The address and type of a site that is verified or will be verified.
+            "identifier": "A String", # The site identifier. If the type is set to SITE, the identifier is a URL. If the type is set to INET_DOMAIN, the site identifier is a domain name.
+            "type": "A String", # The site type. Can be SITE or INET_DOMAIN (domain name).
+          },
+        },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(id, body)</code>
+  <pre>Modify the list of owners for your website or domain. This method supports patch semantics.
+
+Args:
+  id: string, The id of a verified site or domain. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "owners": [ # The email addresses of all verified owners.
+      "A String",
+    ],
+    "id": "A String", # The string used to identify this site. This value should be used in the "id" portion of the REST URL for the Get, Update, and Delete operations.
+    "site": { # The address and type of a site that is verified or will be verified.
+      "identifier": "A String", # The site identifier. If the type is set to SITE, the identifier is a URL. If the type is set to INET_DOMAIN, the site identifier is a domain name.
+      "type": "A String", # The site type. Can be SITE or INET_DOMAIN (domain name).
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "owners": [ # The email addresses of all verified owners.
+        "A String",
+      ],
+      "id": "A String", # The string used to identify this site. This value should be used in the "id" portion of the REST URL for the Get, Update, and Delete operations.
+      "site": { # The address and type of a site that is verified or will be verified.
+        "identifier": "A String", # The site identifier. If the type is set to SITE, the identifier is a URL. If the type is set to INET_DOMAIN, the site identifier is a domain name.
+        "type": "A String", # The site type. Can be SITE or INET_DOMAIN (domain name).
+      },
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(id, body)</code>
+  <pre>Modify the list of owners for your website or domain.
+
+Args:
+  id: string, The id of a verified site or domain. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "owners": [ # The email addresses of all verified owners.
+      "A String",
+    ],
+    "id": "A String", # The string used to identify this site. This value should be used in the "id" portion of the REST URL for the Get, Update, and Delete operations.
+    "site": { # The address and type of a site that is verified or will be verified.
+      "identifier": "A String", # The site identifier. If the type is set to SITE, the identifier is a URL. If the type is set to INET_DOMAIN, the site identifier is a domain name.
+      "type": "A String", # The site type. Can be SITE or INET_DOMAIN (domain name).
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "owners": [ # The email addresses of all verified owners.
+        "A String",
+      ],
+      "id": "A String", # The string used to identify this site. This value should be used in the "id" portion of the REST URL for the Get, Update, and Delete operations.
+      "site": { # The address and type of a site that is verified or will be verified.
+        "identifier": "A String", # The site identifier. If the type is set to SITE, the identifier is a URL. If the type is set to INET_DOMAIN, the site identifier is a domain name.
+        "type": "A String", # The site type. Can be SITE or INET_DOMAIN (domain name).
+      },
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/spectrum_v1explorer.html b/docs/dyn/spectrum_v1explorer.html
new file mode 100644
index 0000000..6968837
--- /dev/null
+++ b/docs/dyn/spectrum_v1explorer.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="spectrum_v1explorer.html">Google Spectrum Database API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="spectrum_v1explorer.paws.html">paws()</a></code>
+</p>
+<p class="firstline">Returns the paws Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/spectrum_v1explorer.paws.html b/docs/dyn/spectrum_v1explorer.paws.html
new file mode 100644
index 0000000..cda5b8a
--- /dev/null
+++ b/docs/dyn/spectrum_v1explorer.paws.html
@@ -0,0 +1,981 @@
+<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="spectrum_v1explorer.html">Google Spectrum Database API</a> . <a href="spectrum_v1explorer.paws.html">paws</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#getSpectrum">getSpectrum(body)</a></code></p>
+<p class="firstline">Requests information about the available spectrum for a device at a location. Requests from a fixed-mode device must include owner information so the device can be registered with the database.</p>
+<p class="toc_element">
+  <code><a href="#getSpectrumBatch">getSpectrumBatch(body)</a></code></p>
+<p class="firstline">The Google Spectrum Database does not support batch requests, so this method always yields an UNIMPLEMENTED error.</p>
+<p class="toc_element">
+  <code><a href="#init">init(body)</a></code></p>
+<p class="firstline">Initializes the connection between a white space device and the database.</p>
+<p class="toc_element">
+  <code><a href="#notifySpectrumUse">notifySpectrumUse(body)</a></code></p>
+<p class="firstline">Notifies the database that the device has selected certain frequency ranges for transmission. Only to be invoked when required by the regulator. The Google Spectrum Database does not operate in domains that require notification, so this always yields an UNIMPLEMENTED error.</p>
+<p class="toc_element">
+  <code><a href="#register">register(body)</a></code></p>
+<p class="firstline">The Google Spectrum Database implements registration in the getSpectrum method. As such this always returns an UNIMPLEMENTED error.</p>
+<p class="toc_element">
+  <code><a href="#verifyDevice">verifyDevice(body)</a></code></p>
+<p class="firstline">Validates a device for white space use in accordance with regulatory rules. The Google Spectrum Database does not support master/slave configurations, so this always yields an UNIMPLEMENTED error.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="getSpectrum">getSpectrum(body)</code>
+  <pre>Requests information about the available spectrum for a device at a location. Requests from a fixed-mode device must include owner information so the device can be registered with the database.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The request message for the available spectrum query protocol which must include the device's geolocation.
+    "deviceDesc": { # The device descriptor contains parameters that identify the specific device, such as its manufacturer serial number, regulatory-specific identifier (e.g., FCC ID), and any other device characteristics required by regulatory domains. # When the available spectrum request is made on behalf of a specific device (a master or slave device), device descriptor information for that device is required (in such cases, the requestType parameter must be empty). When a requestType value is specified, device descriptor information may be optional or required according to the rules of the applicable regulatory domain.
+      "rulesetIds": [ # The list of identifiers for rulesets supported by the device. A database may require that the device provide this list before servicing the device requests. If the database does not support any of the rulesets specified in the list, the database may refuse to service the device requests. If present, the list must contain at least one entry.
+          #
+          # For information about the valid requests, see section 9.2 of the PAWS specification. Currently, FccTvBandWhiteSpace-2010 is the only supported ruleset.
+        "A String",
+      ],
+      "etsiEnDeviceType": "A String", # Specifies the ETSI white space device type. Valid values are single-letter strings, such as A, B, etc. Consult the ETSI documentation for details about the device types.
+      "fccId": "A String", # Specifies the device's FCC certification identifier. The value is an identifier string whose length should not exceed 32 characters. Note that, in practice, a valid FCC ID may be limited to 19 characters.
+      "serialNumber": "A String", # The manufacturer's device serial number; required by the applicable regulatory domain. The length of the value must not exceed 64 characters.
+      "etsiEnTechnologyId": "A String", # Specifies the ETSI white space device technology identifier. The string value must not exceed 64 characters in length. Consult the ETSI documentation for details about the device types.
+      "fccTvbdDeviceType": "A String", # Specifies the TV Band White Space device type, as defined by the FCC. Valid values are FIXED, MODE_1, MODE_2.
+      "etsiEnDeviceCategory": "A String", # Specifies the ETSI white space device category. Valid values are the strings master and slave. This field is case-insensitive. Consult the ETSI documentation for details about the device types.
+      "etsiEnDeviceEmissionsClass": "A String", # Specifies the ETSI white space device emissions class. The values are represented by numeric strings, such as 1, 2, etc. Consult the ETSI documentation for details about the device types.
+      "manufacturerId": "A String", # The manufacturer's ID may be required by the regulatory domain. This should represent the name of the device manufacturer, should be consistent across all devices from the same manufacturer, and should be distinct from that of other manufacturers. The string value must not exceed 64 characters in length.
+      "modelId": "A String", # The device's model ID may be required by the regulatory domain. The string value must not exceed 64 characters in length.
+    },
+    "version": "A String", # The PAWS version. Must be exactly 1.0.
+        # 
+        # Required field.
+    "antenna": { # Antenna characteristics provide additional information, such as the antenna height, antenna type, etc. Whether antenna characteristics must be provided in a request depends on the device type and regulatory domain. # Depending on device type and regulatory domain, the characteristics of the antenna may be required.
+      "heightType": "A String", # If the height is required, then the height type (AGL for above ground level or AMSL for above mean sea level) is also required. The default is AGL.
+      "heightUncertainty": 3.14, # The height uncertainty in meters. Whether this is required depends on the regulatory domain.
+      "height": 3.14, # The antenna height in meters. Whether the antenna height is required depends on the device type and the regulatory domain. Note that the height may be negative.
+    },
+    "requestType": "A String", # The request type parameter is an optional parameter that can be used to modify an available spectrum request, but its use depends on applicable regulatory rules. It may be used, for example, to request generic slave device parameters without having to specify the device descriptor for a specific device. When the requestType parameter is missing, the request is for a specific device (master or slave), and the deviceDesc parameter for the device on whose behalf the request is made is required.
+    "capabilities": { # Device capabilities provide additional information that may be used by a device to provide additional information to the database that may help it to determine available spectrum. If the database does not support device capabilities it will ignore the parameter altogether. # The master device may include its device capabilities to limit the available-spectrum response to the spectrum that is compatible with its capabilities. The database should not return spectrum that is incompatible with the specified capabilities.
+      "frequencyRanges": [ # An optional list of frequency ranges supported by the device. Each element must contain start and stop frequencies in which the device can operate. Channel identifiers are optional. When specified, the database should not return available spectrum that falls outside these ranges or channel IDs.
+        { # A specific range of frequencies together with the associated maximum power level and channel identifier.
+          "startHz": 3.14, # The required inclusive start of the frequency range (in Hertz).
+          "channelId": "A String", # The database may include a channel identifier, when applicable. When it is included, the device should treat it as informative. The length of the identifier should not exceed 16 characters.
+          "stopHz": 3.14, # The required exclusive end of the frequency range (in Hertz).
+          "maxPowerDBm": 3.14, # The maximum total power level (EIRP)—computed over the corresponding operating bandwidth—that is permitted within the frequency range. Depending on the context in which the frequency-range element appears, this value may be required. For example, it is required in the available-spectrum response, available-spectrum-batch response, and spectrum-use notification message, but it should not be present (it is not applicable) when the frequency range appears inside a device-capabilities message.
+        },
+      ],
+    },
+    "masterDeviceDesc": { # The device descriptor contains parameters that identify the specific device, such as its manufacturer serial number, regulatory-specific identifier (e.g., FCC ID), and any other device characteristics required by regulatory domains. # When an available spectrum request is made by the master device (a device with geolocation capability) on behalf of a slave device (a device without geolocation capability), the rules of the applicable regulatory domain may require the master device to provide its own device descriptor information (in addition to device descriptor information for the slave device, which is provided in a separate parameter).
+      "rulesetIds": [ # The list of identifiers for rulesets supported by the device. A database may require that the device provide this list before servicing the device requests. If the database does not support any of the rulesets specified in the list, the database may refuse to service the device requests. If present, the list must contain at least one entry.
+          #
+          # For information about the valid requests, see section 9.2 of the PAWS specification. Currently, FccTvBandWhiteSpace-2010 is the only supported ruleset.
+        "A String",
+      ],
+      "etsiEnDeviceType": "A String", # Specifies the ETSI white space device type. Valid values are single-letter strings, such as A, B, etc. Consult the ETSI documentation for details about the device types.
+      "fccId": "A String", # Specifies the device's FCC certification identifier. The value is an identifier string whose length should not exceed 32 characters. Note that, in practice, a valid FCC ID may be limited to 19 characters.
+      "serialNumber": "A String", # The manufacturer's device serial number; required by the applicable regulatory domain. The length of the value must not exceed 64 characters.
+      "etsiEnTechnologyId": "A String", # Specifies the ETSI white space device technology identifier. The string value must not exceed 64 characters in length. Consult the ETSI documentation for details about the device types.
+      "fccTvbdDeviceType": "A String", # Specifies the TV Band White Space device type, as defined by the FCC. Valid values are FIXED, MODE_1, MODE_2.
+      "etsiEnDeviceCategory": "A String", # Specifies the ETSI white space device category. Valid values are the strings master and slave. This field is case-insensitive. Consult the ETSI documentation for details about the device types.
+      "etsiEnDeviceEmissionsClass": "A String", # Specifies the ETSI white space device emissions class. The values are represented by numeric strings, such as 1, 2, etc. Consult the ETSI documentation for details about the device types.
+      "manufacturerId": "A String", # The manufacturer's ID may be required by the regulatory domain. This should represent the name of the device manufacturer, should be consistent across all devices from the same manufacturer, and should be distinct from that of other manufacturers. The string value must not exceed 64 characters in length.
+      "modelId": "A String", # The device's model ID may be required by the regulatory domain. The string value must not exceed 64 characters in length.
+    },
+    "location": { # This parameter is used to specify the geolocation of the device. # The geolocation of the master device (a device with geolocation capability that makes an available spectrum request) is required whether the master device is making the request on its own behalf or on behalf of a slave device (one without geolocation capability). The location must be the location of the radiation center of the master device's antenna. To support mobile devices, a regulatory domain may allow the anticipated position of the master device to be given instead. If the location specifies a region, rather than a point, the database may return an UNIMPLEMENTED error code if it does not support query by region.
+      "confidence": 42, # The location confidence level, as an integer percentage, may be required, depending on the regulatory domain. When the parameter is optional and not provided, its value is assumed to be 95. Valid values range from 0 to 99, since, in practice, 100-percent confidence is not achievable. The confidence value is meaningful only when geolocation refers to a point with uncertainty.
+      "region": { # A region is represented using the polygonal shape. # If present, indicates that the geolocation represents a region. Database support for regions is optional.
+        "exterior": [ # When the geolocation describes a region, the exterior field refers to a list of latitude/longitude points that represent the vertices of a polygon. The first and last points must be the same. Thus, a minimum of four points is required. The following polygon restrictions from RFC5491 apply:
+            # - A connecting line shall not cross another connecting line of the same polygon.
+            # - The vertices must be defined in a counterclockwise order.
+            # - The edges of a polygon are defined by the shortest path between two points in space (not a geodesic curve). Consequently, the length between two adjacent vertices should be restricted to a maximum of 130 km.
+            # - All vertices are assumed to be at the same altitude.
+            # - Polygon shapes should be restricted to a maximum of 15 vertices (16 points that include the repeated vertex).
+          { # A single geolocation on the globe.
+            "latitude": 3.14, # A required floating-point number that expresses the latitude in degrees using the WGS84 datum. For details on this encoding, see the National Imagery and Mapping Agency's Technical Report TR8350.2.
+            "longitude": 3.14, # A required floating-point number that expresses the longitude in degrees using the WGS84 datum. For details on this encoding, see the National Imagery and Mapping Agency's Technical Report TR8350.2.
+          },
+        ],
+      },
+      "point": { # A "point" with uncertainty is represented using the Ellipse shape. # If present, indicates that the geolocation represents a point. Paradoxically, a point is parameterized using an ellipse, where the center represents the location of the point and the distances along the major and minor axes represent the uncertainty. The uncertainty values may be required, depending on the regulatory domain.
+        "semiMajorAxis": 3.14, # A floating-point number that expresses the location uncertainty along the major axis of the ellipse. May be required by the regulatory domain. When the uncertainty is optional, the default value is 0.
+        "center": { # A single geolocation on the globe. # A required geo-spatial point representing the center of the ellipse.
+          "latitude": 3.14, # A required floating-point number that expresses the latitude in degrees using the WGS84 datum. For details on this encoding, see the National Imagery and Mapping Agency's Technical Report TR8350.2.
+          "longitude": 3.14, # A required floating-point number that expresses the longitude in degrees using the WGS84 datum. For details on this encoding, see the National Imagery and Mapping Agency's Technical Report TR8350.2.
+        },
+        "semiMinorAxis": 3.14, # A floating-point number that expresses the location uncertainty along the minor axis of the ellipse. May be required by the regulatory domain. When the uncertainty is optional, the default value is 0.
+        "orientation": 3.14, # A floating-point number that expresses the orientation of the ellipse, representing the rotation, in degrees, of the semi-major axis from North towards the East. For example, when the uncertainty is greatest along the North-South direction, orientation is 0 degrees; conversely, if the uncertainty is greatest along the East-West direction, orientation is 90 degrees. When orientation is not present, the orientation is assumed to be 0.
+      },
+    },
+    "owner": { # This parameter contains device-owner information required as part of device registration. The regulatory domains may require additional parameters. # Depending on device type and regulatory domain, device owner information may be included in an available spectrum request. This allows the device to register and get spectrum-availability information in a single request.
+        #
+        # All contact information must be expressed using the structure defined by the vCard format specification. Only the contact fields of vCard are supported:
+        # - fn: Full name of an individual
+        # - org: Name of the organization
+        # - adr: Address fields
+        # - tel: Telephone numbers
+        # - email: Email addresses
+        #
+        # Note that the vCard specification defines maximum lengths for each field.
+      "operator": { # A vCard-in-JSON message that contains only the fields needed for PAWS: # The vCard contact information for the device operator is optional, but may be required by specific regulatory domains.
+          # - fn: Full name of an individual
+          # - org: Name of the organization
+          # - adr: Address fields
+          # - tel: Telephone numbers
+          # - email: Email addresses
+        "org": { # The structure used to represent an organization and an email address. # The organization associated with the registering entity.
+          "text": "A String", # The text string associated with this item. For example, for an org field: ACME, inc. For an email field: smith@example.com.
+        },
+        "tel": { # The structure used to represent a telephone number. # A telephone number that can be used to call the contact.
+          "uri": "A String", # A nested telephone URI of the form: tel:+1-123-456-7890.
+        },
+        "adr": { # The structure used to represent a street address. # The street address of the entity.
+          "code": "A String", # The postal code associated with the address. For example: 94423.
+          "locality": "A String", # The city or local equivalent portion of the address. For example: San Jose.
+          "country": "A String", # The country name. For example: US.
+          "region": "A String", # The state or local equivalent portion of the address. For example: CA.
+          "pobox": "A String", # An optional post office box number.
+          "street": "A String", # The street number and name. For example: 123 Any St.
+        },
+        "email": { # The structure used to represent an organization and an email address. # An email address that can be used to reach the contact.
+          "text": "A String", # The text string associated with this item. For example, for an org field: ACME, inc. For an email field: smith@example.com.
+        },
+        "fn": "A String", # The full name of the contact person. For example: John A. Smith.
+      },
+      "owner": { # A vCard-in-JSON message that contains only the fields needed for PAWS: # The vCard contact information for the individual or business that owns the device is required.
+          # - fn: Full name of an individual
+          # - org: Name of the organization
+          # - adr: Address fields
+          # - tel: Telephone numbers
+          # - email: Email addresses
+        "org": { # The structure used to represent an organization and an email address. # The organization associated with the registering entity.
+          "text": "A String", # The text string associated with this item. For example, for an org field: ACME, inc. For an email field: smith@example.com.
+        },
+        "tel": { # The structure used to represent a telephone number. # A telephone number that can be used to call the contact.
+          "uri": "A String", # A nested telephone URI of the form: tel:+1-123-456-7890.
+        },
+        "adr": { # The structure used to represent a street address. # The street address of the entity.
+          "code": "A String", # The postal code associated with the address. For example: 94423.
+          "locality": "A String", # The city or local equivalent portion of the address. For example: San Jose.
+          "country": "A String", # The country name. For example: US.
+          "region": "A String", # The state or local equivalent portion of the address. For example: CA.
+          "pobox": "A String", # An optional post office box number.
+          "street": "A String", # The street number and name. For example: 123 Any St.
+        },
+        "email": { # The structure used to represent an organization and an email address. # An email address that can be used to reach the contact.
+          "text": "A String", # The text string associated with this item. For example, for an org field: ACME, inc. For an email field: smith@example.com.
+        },
+        "fn": "A String", # The full name of the contact person. For example: John A. Smith.
+      },
+    },
+    "type": "A String", # The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...).
+        # 
+        # Required field.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # The response message for the available spectrum query which contains a schedule of available spectrum for the device.
+    "kind": "spectrum#pawsGetSpectrumResponse", # Identifies what kind of resource this is. Value: the fixed string "spectrum#pawsGetSpectrumResponse".
+    "deviceDesc": { # The device descriptor contains parameters that identify the specific device, such as its manufacturer serial number, regulatory-specific identifier (e.g., FCC ID), and any other device characteristics required by regulatory domains. # The database must return, in its available spectrum response, the device descriptor information it received in the master device's available spectrum request.
+      "rulesetIds": [ # The list of identifiers for rulesets supported by the device. A database may require that the device provide this list before servicing the device requests. If the database does not support any of the rulesets specified in the list, the database may refuse to service the device requests. If present, the list must contain at least one entry.
+          #
+          # For information about the valid requests, see section 9.2 of the PAWS specification. Currently, FccTvBandWhiteSpace-2010 is the only supported ruleset.
+        "A String",
+      ],
+      "etsiEnDeviceType": "A String", # Specifies the ETSI white space device type. Valid values are single-letter strings, such as A, B, etc. Consult the ETSI documentation for details about the device types.
+      "fccId": "A String", # Specifies the device's FCC certification identifier. The value is an identifier string whose length should not exceed 32 characters. Note that, in practice, a valid FCC ID may be limited to 19 characters.
+      "serialNumber": "A String", # The manufacturer's device serial number; required by the applicable regulatory domain. The length of the value must not exceed 64 characters.
+      "etsiEnTechnologyId": "A String", # Specifies the ETSI white space device technology identifier. The string value must not exceed 64 characters in length. Consult the ETSI documentation for details about the device types.
+      "fccTvbdDeviceType": "A String", # Specifies the TV Band White Space device type, as defined by the FCC. Valid values are FIXED, MODE_1, MODE_2.
+      "etsiEnDeviceCategory": "A String", # Specifies the ETSI white space device category. Valid values are the strings master and slave. This field is case-insensitive. Consult the ETSI documentation for details about the device types.
+      "etsiEnDeviceEmissionsClass": "A String", # Specifies the ETSI white space device emissions class. The values are represented by numeric strings, such as 1, 2, etc. Consult the ETSI documentation for details about the device types.
+      "manufacturerId": "A String", # The manufacturer's ID may be required by the regulatory domain. This should represent the name of the device manufacturer, should be consistent across all devices from the same manufacturer, and should be distinct from that of other manufacturers. The string value must not exceed 64 characters in length.
+      "modelId": "A String", # The device's model ID may be required by the regulatory domain. The string value must not exceed 64 characters in length.
+    },
+    "version": "A String", # The PAWS version. Must be exactly 1.0.
+        #
+        # Required field.
+    "timestamp": "A String", # The database includes a timestamp of the form YYYY-MM-DDThh:mm:ssZ (Internet timestamp format per RFC3339) in its available spectrum response. The timestamp should be used by the device as a reference for the start and stop times specified in the response spectrum schedules.
+    "databaseChange": { # This message is provided by the database to notify devices of an upcoming change to the database URI. # A database may include the databaseChange parameter to notify a device of a change to its database URI, providing one or more alternate database URIs. The device should use this information to update its list of pre-configured databases by (only) replacing its entry for the responding database with the list of alternate URIs.
+      "databases": [ # A required list of one or more databases. A device should update its preconfigured list of databases to replace (only) the database that provided the response with the specified entries.
+        { # This message contains the name and URI of a database.
+          "name": "A String", # The display name for a database.
+          "uri": "A String", # The corresponding URI of the database.
+        },
+      ],
+    },
+    "spectrumSchedules": [ # The available spectrum response must contain a spectrum schedule list. The list may be empty if spectrum is not available. The database may return more than one spectrum schedule to represent future changes to the available spectrum. How far in advance a schedule may be provided depends on the applicable regulatory domain.
+      { # The spectrum schedule element combines an event time with spectrum profile to define a time period in which the profile is valid.
+        "eventTime": { # The start and stop times of an event. This is used to indicate the time period for which a spectrum profile is valid. # The event time expresses when the spectrum profile is valid. It will always be present.
+            #
+            # Both times are expressed using the format, YYYY-MM-DDThh:mm:ssZ, as defined in RFC3339. The times must be expressed using UTC.
+          "stopTime": "A String", # The exclusive end of the event. It will be present.
+          "startTime": "A String", # The inclusive start of the event. It will be present.
+        },
+        "spectra": [ # A list of spectrum messages representing the usable profile. It will always be present, but may be empty when there is no available spectrum.
+          { # Available spectrum can be logically characterized by a list of frequency ranges and permissible power levels for each range.
+            "bandwidth": 3.14, # The bandwidth (in Hertz) for which permissible power levels are specified. For example, FCC regulation would require only one spectrum specification at 6MHz bandwidth, but Ofcom regulation would require two specifications, at 0.1MHz and 8MHz. This parameter may be empty if there is no available spectrum. It will be present otherwise.
+            "frequencyRanges": [ # The list of frequency ranges and permissible power levels. The list may be empty if there is no available spectrum, otherwise it will be present.
+              { # A specific range of frequencies together with the associated maximum power level and channel identifier.
+                "startHz": 3.14, # The required inclusive start of the frequency range (in Hertz).
+                "channelId": "A String", # The database may include a channel identifier, when applicable. When it is included, the device should treat it as informative. The length of the identifier should not exceed 16 characters.
+                "stopHz": 3.14, # The required exclusive end of the frequency range (in Hertz).
+                "maxPowerDBm": 3.14, # The maximum total power level (EIRP)—computed over the corresponding operating bandwidth—that is permitted within the frequency range. Depending on the context in which the frequency-range element appears, this value may be required. For example, it is required in the available-spectrum response, available-spectrum-batch response, and spectrum-use notification message, but it should not be present (it is not applicable) when the frequency range appears inside a device-capabilities message.
+              },
+            ],
+          },
+        ],
+      },
+    ],
+    "maxContiguousBwHz": 3.14, # The database may return a constraint on the allowed maximum contiguous bandwidth (in Hertz). A regulatory domain may require the database to return this parameter. When this parameter is present in the response, the device must apply this constraint to its spectrum-selection logic to ensure that no single block of spectrum has bandwidth that exceeds this value.
+    "needsSpectrumReport": True or False, # For regulatory domains that require a spectrum-usage report from devices, the database must return true for this parameter if the spectrum schedule list is not empty; otherwise, the database will either return false or omit this parameter. If this parameter is present and its value is true, the device must send a spectrum use notify message to the database; otherwise, the device must not send the notification.
+    "maxTotalBwHz": 3.14, # The database may return a constraint on the allowed maximum total bandwidth (in Hertz), which need not be contiguous. A regulatory domain may require the database to return this parameter. When this parameter is present in the available spectrum response, the device must apply this constraint to its spectrum-selection logic to ensure that total bandwidth does not exceed this value.
+    "rulesetInfo": { # This contains parameters for the ruleset of a regulatory domain that is communicated using the initialization and available-spectrum processes. # The database should return ruleset information, which identifies the applicable regulatory authority and ruleset for the available spectrum response. If included, the device must use the corresponding ruleset to interpret the response. Values provided in the returned ruleset information, such as maxLocationChange, take precedence over any conflicting values provided in the ruleset information returned in a prior initialization response sent by the database to the device.
+      "rulesetIds": [ # The identifiers of the rulesets supported for the device's location. The database should include at least one applicable ruleset in the initialization response. The device may use the ruleset identifiers to determine parameters to include in subsequent requests. Within the context of the available-spectrum responses, the database should include the identifier of the ruleset that it used to determine the available-spectrum response. If included, the device must use the specified ruleset to interpret the response. If the device does not support the indicated ruleset, it must not operate in the spectrum governed by the ruleset.
+        "A String",
+      ],
+      "maxPollingSecs": 42, # The maximum duration, in seconds, between requests for available spectrum. It is required in the initialization response, but optional otherwise. The device must contact the database to get available spectrum no less frequently than this duration. If the new spectrum information indicates that the device is using spectrum that is no longer available, it must immediately cease use of those frequencies under rules for database-managed spectrum. If this value is provided within the context of an available-spectrum response, it takes precedence over the value within the initialization response.
+      "maxLocationChange": 3.14, # The maximum location change in meters is required in the initialization response, but optional otherwise. When the device changes location by more than this specified distance, it must contact the database to get the available spectrum for the new location. If the device is using spectrum that is no longer available, it must immediately cease use of the spectrum under rules for database-managed spectrum. If this value is provided within the context of an available-spectrum response, it takes precedence over the value within the initialization response.
+      "authority": "A String", # The regulatory domain to which the ruleset belongs is required. It must be a 2-letter country code. The device should use this to determine additional device behavior required by the associated regulatory domain.
+    },
+    "type": "A String", # The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...).
+        #
+        # Required field.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getSpectrumBatch">getSpectrumBatch(body)</code>
+  <pre>The Google Spectrum Database does not support batch requests, so this method always yields an UNIMPLEMENTED error.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The request message for a batch available spectrum query protocol.
+    "deviceDesc": { # The device descriptor contains parameters that identify the specific device, such as its manufacturer serial number, regulatory-specific identifier (e.g., FCC ID), and any other device characteristics required by regulatory domains. # When the available spectrum request is made on behalf of a specific device (a master or slave device), device descriptor information for the device on whose behalf the request is made is required (in such cases, the requestType parameter must be empty). When a requestType value is specified, device descriptor information may be optional or required according to the rules of the applicable regulatory domain.
+      "rulesetIds": [ # The list of identifiers for rulesets supported by the device. A database may require that the device provide this list before servicing the device requests. If the database does not support any of the rulesets specified in the list, the database may refuse to service the device requests. If present, the list must contain at least one entry.
+          #
+          # For information about the valid requests, see section 9.2 of the PAWS specification. Currently, FccTvBandWhiteSpace-2010 is the only supported ruleset.
+        "A String",
+      ],
+      "etsiEnDeviceType": "A String", # Specifies the ETSI white space device type. Valid values are single-letter strings, such as A, B, etc. Consult the ETSI documentation for details about the device types.
+      "fccId": "A String", # Specifies the device's FCC certification identifier. The value is an identifier string whose length should not exceed 32 characters. Note that, in practice, a valid FCC ID may be limited to 19 characters.
+      "serialNumber": "A String", # The manufacturer's device serial number; required by the applicable regulatory domain. The length of the value must not exceed 64 characters.
+      "etsiEnTechnologyId": "A String", # Specifies the ETSI white space device technology identifier. The string value must not exceed 64 characters in length. Consult the ETSI documentation for details about the device types.
+      "fccTvbdDeviceType": "A String", # Specifies the TV Band White Space device type, as defined by the FCC. Valid values are FIXED, MODE_1, MODE_2.
+      "etsiEnDeviceCategory": "A String", # Specifies the ETSI white space device category. Valid values are the strings master and slave. This field is case-insensitive. Consult the ETSI documentation for details about the device types.
+      "etsiEnDeviceEmissionsClass": "A String", # Specifies the ETSI white space device emissions class. The values are represented by numeric strings, such as 1, 2, etc. Consult the ETSI documentation for details about the device types.
+      "manufacturerId": "A String", # The manufacturer's ID may be required by the regulatory domain. This should represent the name of the device manufacturer, should be consistent across all devices from the same manufacturer, and should be distinct from that of other manufacturers. The string value must not exceed 64 characters in length.
+      "modelId": "A String", # The device's model ID may be required by the regulatory domain. The string value must not exceed 64 characters in length.
+    },
+    "version": "A String", # The PAWS version. Must be exactly 1.0.
+        # 
+        # Required field.
+    "antenna": { # Antenna characteristics provide additional information, such as the antenna height, antenna type, etc. Whether antenna characteristics must be provided in a request depends on the device type and regulatory domain. # Depending on device type and regulatory domain, antenna characteristics may be required.
+      "heightType": "A String", # If the height is required, then the height type (AGL for above ground level or AMSL for above mean sea level) is also required. The default is AGL.
+      "heightUncertainty": 3.14, # The height uncertainty in meters. Whether this is required depends on the regulatory domain.
+      "height": 3.14, # The antenna height in meters. Whether the antenna height is required depends on the device type and the regulatory domain. Note that the height may be negative.
+    },
+    "requestType": "A String", # The request type parameter is an optional parameter that can be used to modify an available spectrum batch request, but its use depends on applicable regulatory rules. For example, It may be used to request generic slave device parameters without having to specify the device descriptor for a specific device. When the requestType parameter is missing, the request is for a specific device (master or slave), and the device descriptor parameter for the device on whose behalf the batch request is made is required.
+    "locations": [ # A geolocation list is required. This allows a device to specify its current location plus additional anticipated locations when allowed by the regulatory domain. At least one location must be included. Geolocation must be given as the location of the radiation center of the device's antenna. If a location specifies a region, rather than a point, the database may return an UNIMPLEMENTED error if it does not support query by region.
+        # 
+        # There is no upper limit on the number of locations included in a available spectrum batch request, but the database may restrict the number of locations it supports by returning a response with fewer locations than specified in the batch request. Note that geolocations must be those of the master device (a device with geolocation capability that makes an available spectrum batch request), whether the master device is making the request on its own behalf or on behalf of a slave device (one without geolocation capability).
+      { # This parameter is used to specify the geolocation of the device.
+        "confidence": 42, # The location confidence level, as an integer percentage, may be required, depending on the regulatory domain. When the parameter is optional and not provided, its value is assumed to be 95. Valid values range from 0 to 99, since, in practice, 100-percent confidence is not achievable. The confidence value is meaningful only when geolocation refers to a point with uncertainty.
+        "region": { # A region is represented using the polygonal shape. # If present, indicates that the geolocation represents a region. Database support for regions is optional.
+          "exterior": [ # When the geolocation describes a region, the exterior field refers to a list of latitude/longitude points that represent the vertices of a polygon. The first and last points must be the same. Thus, a minimum of four points is required. The following polygon restrictions from RFC5491 apply:
+              # - A connecting line shall not cross another connecting line of the same polygon.
+              # - The vertices must be defined in a counterclockwise order.
+              # - The edges of a polygon are defined by the shortest path between two points in space (not a geodesic curve). Consequently, the length between two adjacent vertices should be restricted to a maximum of 130 km.
+              # - All vertices are assumed to be at the same altitude.
+              # - Polygon shapes should be restricted to a maximum of 15 vertices (16 points that include the repeated vertex).
+            { # A single geolocation on the globe.
+              "latitude": 3.14, # A required floating-point number that expresses the latitude in degrees using the WGS84 datum. For details on this encoding, see the National Imagery and Mapping Agency's Technical Report TR8350.2.
+              "longitude": 3.14, # A required floating-point number that expresses the longitude in degrees using the WGS84 datum. For details on this encoding, see the National Imagery and Mapping Agency's Technical Report TR8350.2.
+            },
+          ],
+        },
+        "point": { # A "point" with uncertainty is represented using the Ellipse shape. # If present, indicates that the geolocation represents a point. Paradoxically, a point is parameterized using an ellipse, where the center represents the location of the point and the distances along the major and minor axes represent the uncertainty. The uncertainty values may be required, depending on the regulatory domain.
+          "semiMajorAxis": 3.14, # A floating-point number that expresses the location uncertainty along the major axis of the ellipse. May be required by the regulatory domain. When the uncertainty is optional, the default value is 0.
+          "center": { # A single geolocation on the globe. # A required geo-spatial point representing the center of the ellipse.
+            "latitude": 3.14, # A required floating-point number that expresses the latitude in degrees using the WGS84 datum. For details on this encoding, see the National Imagery and Mapping Agency's Technical Report TR8350.2.
+            "longitude": 3.14, # A required floating-point number that expresses the longitude in degrees using the WGS84 datum. For details on this encoding, see the National Imagery and Mapping Agency's Technical Report TR8350.2.
+          },
+          "semiMinorAxis": 3.14, # A floating-point number that expresses the location uncertainty along the minor axis of the ellipse. May be required by the regulatory domain. When the uncertainty is optional, the default value is 0.
+          "orientation": 3.14, # A floating-point number that expresses the orientation of the ellipse, representing the rotation, in degrees, of the semi-major axis from North towards the East. For example, when the uncertainty is greatest along the North-South direction, orientation is 0 degrees; conversely, if the uncertainty is greatest along the East-West direction, orientation is 90 degrees. When orientation is not present, the orientation is assumed to be 0.
+        },
+      },
+    ],
+    "capabilities": { # Device capabilities provide additional information that may be used by a device to provide additional information to the database that may help it to determine available spectrum. If the database does not support device capabilities it will ignore the parameter altogether. # The master device may include its device capabilities to limit the available-spectrum batch response to the spectrum that is compatible with its capabilities. The database should not return spectrum that is incompatible with the specified capabilities.
+      "frequencyRanges": [ # An optional list of frequency ranges supported by the device. Each element must contain start and stop frequencies in which the device can operate. Channel identifiers are optional. When specified, the database should not return available spectrum that falls outside these ranges or channel IDs.
+        { # A specific range of frequencies together with the associated maximum power level and channel identifier.
+          "startHz": 3.14, # The required inclusive start of the frequency range (in Hertz).
+          "channelId": "A String", # The database may include a channel identifier, when applicable. When it is included, the device should treat it as informative. The length of the identifier should not exceed 16 characters.
+          "stopHz": 3.14, # The required exclusive end of the frequency range (in Hertz).
+          "maxPowerDBm": 3.14, # The maximum total power level (EIRP)—computed over the corresponding operating bandwidth—that is permitted within the frequency range. Depending on the context in which the frequency-range element appears, this value may be required. For example, it is required in the available-spectrum response, available-spectrum-batch response, and spectrum-use notification message, but it should not be present (it is not applicable) when the frequency range appears inside a device-capabilities message.
+        },
+      ],
+    },
+    "masterDeviceDesc": { # The device descriptor contains parameters that identify the specific device, such as its manufacturer serial number, regulatory-specific identifier (e.g., FCC ID), and any other device characteristics required by regulatory domains. # When an available spectrum batch request is made by the master device (a device with geolocation capability) on behalf of a slave device (a device without geolocation capability), the rules of the applicable regulatory domain may require the master device to provide its own device descriptor information (in addition to device descriptor information for the slave device in a separate parameter).
+      "rulesetIds": [ # The list of identifiers for rulesets supported by the device. A database may require that the device provide this list before servicing the device requests. If the database does not support any of the rulesets specified in the list, the database may refuse to service the device requests. If present, the list must contain at least one entry.
+          #
+          # For information about the valid requests, see section 9.2 of the PAWS specification. Currently, FccTvBandWhiteSpace-2010 is the only supported ruleset.
+        "A String",
+      ],
+      "etsiEnDeviceType": "A String", # Specifies the ETSI white space device type. Valid values are single-letter strings, such as A, B, etc. Consult the ETSI documentation for details about the device types.
+      "fccId": "A String", # Specifies the device's FCC certification identifier. The value is an identifier string whose length should not exceed 32 characters. Note that, in practice, a valid FCC ID may be limited to 19 characters.
+      "serialNumber": "A String", # The manufacturer's device serial number; required by the applicable regulatory domain. The length of the value must not exceed 64 characters.
+      "etsiEnTechnologyId": "A String", # Specifies the ETSI white space device technology identifier. The string value must not exceed 64 characters in length. Consult the ETSI documentation for details about the device types.
+      "fccTvbdDeviceType": "A String", # Specifies the TV Band White Space device type, as defined by the FCC. Valid values are FIXED, MODE_1, MODE_2.
+      "etsiEnDeviceCategory": "A String", # Specifies the ETSI white space device category. Valid values are the strings master and slave. This field is case-insensitive. Consult the ETSI documentation for details about the device types.
+      "etsiEnDeviceEmissionsClass": "A String", # Specifies the ETSI white space device emissions class. The values are represented by numeric strings, such as 1, 2, etc. Consult the ETSI documentation for details about the device types.
+      "manufacturerId": "A String", # The manufacturer's ID may be required by the regulatory domain. This should represent the name of the device manufacturer, should be consistent across all devices from the same manufacturer, and should be distinct from that of other manufacturers. The string value must not exceed 64 characters in length.
+      "modelId": "A String", # The device's model ID may be required by the regulatory domain. The string value must not exceed 64 characters in length.
+    },
+    "owner": { # This parameter contains device-owner information required as part of device registration. The regulatory domains may require additional parameters. # Depending on device type and regulatory domain, device owner information may be included in an available spectrum batch request. This allows the device to register and get spectrum-availability information in a single request.
+        #
+        # All contact information must be expressed using the structure defined by the vCard format specification. Only the contact fields of vCard are supported:
+        # - fn: Full name of an individual
+        # - org: Name of the organization
+        # - adr: Address fields
+        # - tel: Telephone numbers
+        # - email: Email addresses
+        #
+        # Note that the vCard specification defines maximum lengths for each field.
+      "operator": { # A vCard-in-JSON message that contains only the fields needed for PAWS: # The vCard contact information for the device operator is optional, but may be required by specific regulatory domains.
+          # - fn: Full name of an individual
+          # - org: Name of the organization
+          # - adr: Address fields
+          # - tel: Telephone numbers
+          # - email: Email addresses
+        "org": { # The structure used to represent an organization and an email address. # The organization associated with the registering entity.
+          "text": "A String", # The text string associated with this item. For example, for an org field: ACME, inc. For an email field: smith@example.com.
+        },
+        "tel": { # The structure used to represent a telephone number. # A telephone number that can be used to call the contact.
+          "uri": "A String", # A nested telephone URI of the form: tel:+1-123-456-7890.
+        },
+        "adr": { # The structure used to represent a street address. # The street address of the entity.
+          "code": "A String", # The postal code associated with the address. For example: 94423.
+          "locality": "A String", # The city or local equivalent portion of the address. For example: San Jose.
+          "country": "A String", # The country name. For example: US.
+          "region": "A String", # The state or local equivalent portion of the address. For example: CA.
+          "pobox": "A String", # An optional post office box number.
+          "street": "A String", # The street number and name. For example: 123 Any St.
+        },
+        "email": { # The structure used to represent an organization and an email address. # An email address that can be used to reach the contact.
+          "text": "A String", # The text string associated with this item. For example, for an org field: ACME, inc. For an email field: smith@example.com.
+        },
+        "fn": "A String", # The full name of the contact person. For example: John A. Smith.
+      },
+      "owner": { # A vCard-in-JSON message that contains only the fields needed for PAWS: # The vCard contact information for the individual or business that owns the device is required.
+          # - fn: Full name of an individual
+          # - org: Name of the organization
+          # - adr: Address fields
+          # - tel: Telephone numbers
+          # - email: Email addresses
+        "org": { # The structure used to represent an organization and an email address. # The organization associated with the registering entity.
+          "text": "A String", # The text string associated with this item. For example, for an org field: ACME, inc. For an email field: smith@example.com.
+        },
+        "tel": { # The structure used to represent a telephone number. # A telephone number that can be used to call the contact.
+          "uri": "A String", # A nested telephone URI of the form: tel:+1-123-456-7890.
+        },
+        "adr": { # The structure used to represent a street address. # The street address of the entity.
+          "code": "A String", # The postal code associated with the address. For example: 94423.
+          "locality": "A String", # The city or local equivalent portion of the address. For example: San Jose.
+          "country": "A String", # The country name. For example: US.
+          "region": "A String", # The state or local equivalent portion of the address. For example: CA.
+          "pobox": "A String", # An optional post office box number.
+          "street": "A String", # The street number and name. For example: 123 Any St.
+        },
+        "email": { # The structure used to represent an organization and an email address. # An email address that can be used to reach the contact.
+          "text": "A String", # The text string associated with this item. For example, for an org field: ACME, inc. For an email field: smith@example.com.
+        },
+        "fn": "A String", # The full name of the contact person. For example: John A. Smith.
+      },
+    },
+    "type": "A String", # The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...).
+        # 
+        # Required field.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # The response message for the batch available spectrum query contains a schedule of available spectrum for the device at multiple locations.
+    "maxContiguousBwHz": 3.14, # The database may return a constraint on the allowed maximum contiguous bandwidth (in Hertz). A regulatory domain may require the database to return this parameter. When this parameter is present in the response, the device must apply this constraint to its spectrum-selection logic to ensure that no single block of spectrum has bandwidth that exceeds this value.
+    "kind": "spectrum#pawsGetSpectrumBatchResponse", # Identifies what kind of resource this is. Value: the fixed string "spectrum#pawsGetSpectrumBatchResponse".
+    "deviceDesc": { # The device descriptor contains parameters that identify the specific device, such as its manufacturer serial number, regulatory-specific identifier (e.g., FCC ID), and any other device characteristics required by regulatory domains. # The database must return in its available spectrum response the device descriptor information it received in the master device's available spectrum batch request.
+      "rulesetIds": [ # The list of identifiers for rulesets supported by the device. A database may require that the device provide this list before servicing the device requests. If the database does not support any of the rulesets specified in the list, the database may refuse to service the device requests. If present, the list must contain at least one entry.
+          #
+          # For information about the valid requests, see section 9.2 of the PAWS specification. Currently, FccTvBandWhiteSpace-2010 is the only supported ruleset.
+        "A String",
+      ],
+      "etsiEnDeviceType": "A String", # Specifies the ETSI white space device type. Valid values are single-letter strings, such as A, B, etc. Consult the ETSI documentation for details about the device types.
+      "fccId": "A String", # Specifies the device's FCC certification identifier. The value is an identifier string whose length should not exceed 32 characters. Note that, in practice, a valid FCC ID may be limited to 19 characters.
+      "serialNumber": "A String", # The manufacturer's device serial number; required by the applicable regulatory domain. The length of the value must not exceed 64 characters.
+      "etsiEnTechnologyId": "A String", # Specifies the ETSI white space device technology identifier. The string value must not exceed 64 characters in length. Consult the ETSI documentation for details about the device types.
+      "fccTvbdDeviceType": "A String", # Specifies the TV Band White Space device type, as defined by the FCC. Valid values are FIXED, MODE_1, MODE_2.
+      "etsiEnDeviceCategory": "A String", # Specifies the ETSI white space device category. Valid values are the strings master and slave. This field is case-insensitive. Consult the ETSI documentation for details about the device types.
+      "etsiEnDeviceEmissionsClass": "A String", # Specifies the ETSI white space device emissions class. The values are represented by numeric strings, such as 1, 2, etc. Consult the ETSI documentation for details about the device types.
+      "manufacturerId": "A String", # The manufacturer's ID may be required by the regulatory domain. This should represent the name of the device manufacturer, should be consistent across all devices from the same manufacturer, and should be distinct from that of other manufacturers. The string value must not exceed 64 characters in length.
+      "modelId": "A String", # The device's model ID may be required by the regulatory domain. The string value must not exceed 64 characters in length.
+    },
+    "version": "A String", # The PAWS version. Must be exactly 1.0.
+        #
+        # Required field.
+    "timestamp": "A String", # The database includes a timestamp of the form, YYYY-MM-DDThh:mm:ssZ (Internet timestamp format per RFC3339), in its available spectrum batch response. The timestamp should be used by the device as a reference for the start and stop times specified in the response spectrum schedules.
+    "databaseChange": { # This message is provided by the database to notify devices of an upcoming change to the database URI. # A database may include the databaseChange parameter to notify a device of a change to its database URI, providing one or more alternate database URIs. The device should use this information to update its list of pre-configured databases by (only) replacing its entry for the responding database with the list of alternate URIs.
+      "databases": [ # A required list of one or more databases. A device should update its preconfigured list of databases to replace (only) the database that provided the response with the specified entries.
+        { # This message contains the name and URI of a database.
+          "name": "A String", # The display name for a database.
+          "uri": "A String", # The corresponding URI of the database.
+        },
+      ],
+    },
+    "geoSpectrumSchedules": [ # The available spectrum batch response must contain a geo-spectrum schedule list, The list may be empty if spectrum is not available. The database may return more than one geo-spectrum schedule to represent future changes to the available spectrum. How far in advance a schedule may be provided depends upon the applicable regulatory domain. The database may return available spectrum for fewer geolocations than requested. The device must not make assumptions about the order of the entries in the list, and must use the geolocation value in each geo-spectrum schedule entry to match available spectrum to a location.
+      { # The schedule of spectrum profiles available at a particular geolocation.
+        "spectrumSchedules": [ # A list of available spectrum profiles and associated times. It will always be present, and at least one schedule must be included (though it may be empty if there is no available spectrum). More than one schedule may be included to represent future changes to the available spectrum.
+          { # The spectrum schedule element combines an event time with spectrum profile to define a time period in which the profile is valid.
+            "eventTime": { # The start and stop times of an event. This is used to indicate the time period for which a spectrum profile is valid. # The event time expresses when the spectrum profile is valid. It will always be present.
+                #
+                # Both times are expressed using the format, YYYY-MM-DDThh:mm:ssZ, as defined in RFC3339. The times must be expressed using UTC.
+              "stopTime": "A String", # The exclusive end of the event. It will be present.
+              "startTime": "A String", # The inclusive start of the event. It will be present.
+            },
+            "spectra": [ # A list of spectrum messages representing the usable profile. It will always be present, but may be empty when there is no available spectrum.
+              { # Available spectrum can be logically characterized by a list of frequency ranges and permissible power levels for each range.
+                "bandwidth": 3.14, # The bandwidth (in Hertz) for which permissible power levels are specified. For example, FCC regulation would require only one spectrum specification at 6MHz bandwidth, but Ofcom regulation would require two specifications, at 0.1MHz and 8MHz. This parameter may be empty if there is no available spectrum. It will be present otherwise.
+                "frequencyRanges": [ # The list of frequency ranges and permissible power levels. The list may be empty if there is no available spectrum, otherwise it will be present.
+                  { # A specific range of frequencies together with the associated maximum power level and channel identifier.
+                    "startHz": 3.14, # The required inclusive start of the frequency range (in Hertz).
+                    "channelId": "A String", # The database may include a channel identifier, when applicable. When it is included, the device should treat it as informative. The length of the identifier should not exceed 16 characters.
+                    "stopHz": 3.14, # The required exclusive end of the frequency range (in Hertz).
+                    "maxPowerDBm": 3.14, # The maximum total power level (EIRP)—computed over the corresponding operating bandwidth—that is permitted within the frequency range. Depending on the context in which the frequency-range element appears, this value may be required. For example, it is required in the available-spectrum response, available-spectrum-batch response, and spectrum-use notification message, but it should not be present (it is not applicable) when the frequency range appears inside a device-capabilities message.
+                  },
+                ],
+              },
+            ],
+          },
+        ],
+        "location": { # This parameter is used to specify the geolocation of the device. # The geolocation identifies the location at which the spectrum schedule applies. It will always be present.
+          "confidence": 42, # The location confidence level, as an integer percentage, may be required, depending on the regulatory domain. When the parameter is optional and not provided, its value is assumed to be 95. Valid values range from 0 to 99, since, in practice, 100-percent confidence is not achievable. The confidence value is meaningful only when geolocation refers to a point with uncertainty.
+          "region": { # A region is represented using the polygonal shape. # If present, indicates that the geolocation represents a region. Database support for regions is optional.
+            "exterior": [ # When the geolocation describes a region, the exterior field refers to a list of latitude/longitude points that represent the vertices of a polygon. The first and last points must be the same. Thus, a minimum of four points is required. The following polygon restrictions from RFC5491 apply:
+                # - A connecting line shall not cross another connecting line of the same polygon.
+                # - The vertices must be defined in a counterclockwise order.
+                # - The edges of a polygon are defined by the shortest path between two points in space (not a geodesic curve). Consequently, the length between two adjacent vertices should be restricted to a maximum of 130 km.
+                # - All vertices are assumed to be at the same altitude.
+                # - Polygon shapes should be restricted to a maximum of 15 vertices (16 points that include the repeated vertex).
+              { # A single geolocation on the globe.
+                "latitude": 3.14, # A required floating-point number that expresses the latitude in degrees using the WGS84 datum. For details on this encoding, see the National Imagery and Mapping Agency's Technical Report TR8350.2.
+                "longitude": 3.14, # A required floating-point number that expresses the longitude in degrees using the WGS84 datum. For details on this encoding, see the National Imagery and Mapping Agency's Technical Report TR8350.2.
+              },
+            ],
+          },
+          "point": { # A "point" with uncertainty is represented using the Ellipse shape. # If present, indicates that the geolocation represents a point. Paradoxically, a point is parameterized using an ellipse, where the center represents the location of the point and the distances along the major and minor axes represent the uncertainty. The uncertainty values may be required, depending on the regulatory domain.
+            "semiMajorAxis": 3.14, # A floating-point number that expresses the location uncertainty along the major axis of the ellipse. May be required by the regulatory domain. When the uncertainty is optional, the default value is 0.
+            "center": { # A single geolocation on the globe. # A required geo-spatial point representing the center of the ellipse.
+              "latitude": 3.14, # A required floating-point number that expresses the latitude in degrees using the WGS84 datum. For details on this encoding, see the National Imagery and Mapping Agency's Technical Report TR8350.2.
+              "longitude": 3.14, # A required floating-point number that expresses the longitude in degrees using the WGS84 datum. For details on this encoding, see the National Imagery and Mapping Agency's Technical Report TR8350.2.
+            },
+            "semiMinorAxis": 3.14, # A floating-point number that expresses the location uncertainty along the minor axis of the ellipse. May be required by the regulatory domain. When the uncertainty is optional, the default value is 0.
+            "orientation": 3.14, # A floating-point number that expresses the orientation of the ellipse, representing the rotation, in degrees, of the semi-major axis from North towards the East. For example, when the uncertainty is greatest along the North-South direction, orientation is 0 degrees; conversely, if the uncertainty is greatest along the East-West direction, orientation is 90 degrees. When orientation is not present, the orientation is assumed to be 0.
+          },
+        },
+      },
+    ],
+    "needsSpectrumReport": True or False, # For regulatory domains that require a spectrum-usage report from devices, the database must return true for this parameter if the geo-spectrum schedules list is not empty; otherwise, the database should either return false or omit this parameter. If this parameter is present and its value is true, the device must send a spectrum use notify message to the database; otherwise, the device should not send the notification.
+    "maxTotalBwHz": 3.14, # The database may return a constraint on the allowed maximum total bandwidth (in Hertz), which does not need to be contiguous. A regulatory domain may require the database to return this parameter. When this parameter is present in the available spectrum batch response, the device must apply this constraint to its spectrum-selection logic to ensure that total bandwidth does not exceed this value.
+    "rulesetInfo": { # This contains parameters for the ruleset of a regulatory domain that is communicated using the initialization and available-spectrum processes. # The database should return ruleset information, which identifies the applicable regulatory authority and ruleset for the available spectrum batch response. If included, the device must use the corresponding ruleset to interpret the response. Values provided in the returned ruleset information, such as maxLocationChange, take precedence over any conflicting values provided in the ruleset information returned in a prior initialization response sent by the database to the device.
+      "rulesetIds": [ # The identifiers of the rulesets supported for the device's location. The database should include at least one applicable ruleset in the initialization response. The device may use the ruleset identifiers to determine parameters to include in subsequent requests. Within the context of the available-spectrum responses, the database should include the identifier of the ruleset that it used to determine the available-spectrum response. If included, the device must use the specified ruleset to interpret the response. If the device does not support the indicated ruleset, it must not operate in the spectrum governed by the ruleset.
+        "A String",
+      ],
+      "maxPollingSecs": 42, # The maximum duration, in seconds, between requests for available spectrum. It is required in the initialization response, but optional otherwise. The device must contact the database to get available spectrum no less frequently than this duration. If the new spectrum information indicates that the device is using spectrum that is no longer available, it must immediately cease use of those frequencies under rules for database-managed spectrum. If this value is provided within the context of an available-spectrum response, it takes precedence over the value within the initialization response.
+      "maxLocationChange": 3.14, # The maximum location change in meters is required in the initialization response, but optional otherwise. When the device changes location by more than this specified distance, it must contact the database to get the available spectrum for the new location. If the device is using spectrum that is no longer available, it must immediately cease use of the spectrum under rules for database-managed spectrum. If this value is provided within the context of an available-spectrum response, it takes precedence over the value within the initialization response.
+      "authority": "A String", # The regulatory domain to which the ruleset belongs is required. It must be a 2-letter country code. The device should use this to determine additional device behavior required by the associated regulatory domain.
+    },
+    "type": "A String", # The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...).
+        #
+        # Required field.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="init">init(body)</code>
+  <pre>Initializes the connection between a white space device and the database.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The initialization request message allows the master device to initiate exchange of capabilities with the database.
+    "deviceDesc": { # The device descriptor contains parameters that identify the specific device, such as its manufacturer serial number, regulatory-specific identifier (e.g., FCC ID), and any other device characteristics required by regulatory domains. # The DeviceDescriptor parameter is required. If the database does not support the device or any of the rulesets specified in the device descriptor, it must return an UNSUPPORTED error code in the error response.
+      "rulesetIds": [ # The list of identifiers for rulesets supported by the device. A database may require that the device provide this list before servicing the device requests. If the database does not support any of the rulesets specified in the list, the database may refuse to service the device requests. If present, the list must contain at least one entry.
+          #
+          # For information about the valid requests, see section 9.2 of the PAWS specification. Currently, FccTvBandWhiteSpace-2010 is the only supported ruleset.
+        "A String",
+      ],
+      "etsiEnDeviceType": "A String", # Specifies the ETSI white space device type. Valid values are single-letter strings, such as A, B, etc. Consult the ETSI documentation for details about the device types.
+      "fccId": "A String", # Specifies the device's FCC certification identifier. The value is an identifier string whose length should not exceed 32 characters. Note that, in practice, a valid FCC ID may be limited to 19 characters.
+      "serialNumber": "A String", # The manufacturer's device serial number; required by the applicable regulatory domain. The length of the value must not exceed 64 characters.
+      "etsiEnTechnologyId": "A String", # Specifies the ETSI white space device technology identifier. The string value must not exceed 64 characters in length. Consult the ETSI documentation for details about the device types.
+      "fccTvbdDeviceType": "A String", # Specifies the TV Band White Space device type, as defined by the FCC. Valid values are FIXED, MODE_1, MODE_2.
+      "etsiEnDeviceCategory": "A String", # Specifies the ETSI white space device category. Valid values are the strings master and slave. This field is case-insensitive. Consult the ETSI documentation for details about the device types.
+      "etsiEnDeviceEmissionsClass": "A String", # Specifies the ETSI white space device emissions class. The values are represented by numeric strings, such as 1, 2, etc. Consult the ETSI documentation for details about the device types.
+      "manufacturerId": "A String", # The manufacturer's ID may be required by the regulatory domain. This should represent the name of the device manufacturer, should be consistent across all devices from the same manufacturer, and should be distinct from that of other manufacturers. The string value must not exceed 64 characters in length.
+      "modelId": "A String", # The device's model ID may be required by the regulatory domain. The string value must not exceed 64 characters in length.
+    },
+    "type": "A String", # The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...).
+        # 
+        # Required field.
+    "location": { # This parameter is used to specify the geolocation of the device. # A device's geolocation is required.
+      "confidence": 42, # The location confidence level, as an integer percentage, may be required, depending on the regulatory domain. When the parameter is optional and not provided, its value is assumed to be 95. Valid values range from 0 to 99, since, in practice, 100-percent confidence is not achievable. The confidence value is meaningful only when geolocation refers to a point with uncertainty.
+      "region": { # A region is represented using the polygonal shape. # If present, indicates that the geolocation represents a region. Database support for regions is optional.
+        "exterior": [ # When the geolocation describes a region, the exterior field refers to a list of latitude/longitude points that represent the vertices of a polygon. The first and last points must be the same. Thus, a minimum of four points is required. The following polygon restrictions from RFC5491 apply:
+            # - A connecting line shall not cross another connecting line of the same polygon.
+            # - The vertices must be defined in a counterclockwise order.
+            # - The edges of a polygon are defined by the shortest path between two points in space (not a geodesic curve). Consequently, the length between two adjacent vertices should be restricted to a maximum of 130 km.
+            # - All vertices are assumed to be at the same altitude.
+            # - Polygon shapes should be restricted to a maximum of 15 vertices (16 points that include the repeated vertex).
+          { # A single geolocation on the globe.
+            "latitude": 3.14, # A required floating-point number that expresses the latitude in degrees using the WGS84 datum. For details on this encoding, see the National Imagery and Mapping Agency's Technical Report TR8350.2.
+            "longitude": 3.14, # A required floating-point number that expresses the longitude in degrees using the WGS84 datum. For details on this encoding, see the National Imagery and Mapping Agency's Technical Report TR8350.2.
+          },
+        ],
+      },
+      "point": { # A "point" with uncertainty is represented using the Ellipse shape. # If present, indicates that the geolocation represents a point. Paradoxically, a point is parameterized using an ellipse, where the center represents the location of the point and the distances along the major and minor axes represent the uncertainty. The uncertainty values may be required, depending on the regulatory domain.
+        "semiMajorAxis": 3.14, # A floating-point number that expresses the location uncertainty along the major axis of the ellipse. May be required by the regulatory domain. When the uncertainty is optional, the default value is 0.
+        "center": { # A single geolocation on the globe. # A required geo-spatial point representing the center of the ellipse.
+          "latitude": 3.14, # A required floating-point number that expresses the latitude in degrees using the WGS84 datum. For details on this encoding, see the National Imagery and Mapping Agency's Technical Report TR8350.2.
+          "longitude": 3.14, # A required floating-point number that expresses the longitude in degrees using the WGS84 datum. For details on this encoding, see the National Imagery and Mapping Agency's Technical Report TR8350.2.
+        },
+        "semiMinorAxis": 3.14, # A floating-point number that expresses the location uncertainty along the minor axis of the ellipse. May be required by the regulatory domain. When the uncertainty is optional, the default value is 0.
+        "orientation": 3.14, # A floating-point number that expresses the orientation of the ellipse, representing the rotation, in degrees, of the semi-major axis from North towards the East. For example, when the uncertainty is greatest along the North-South direction, orientation is 0 degrees; conversely, if the uncertainty is greatest along the East-West direction, orientation is 90 degrees. When orientation is not present, the orientation is assumed to be 0.
+      },
+    },
+    "version": "A String", # The PAWS version. Must be exactly 1.0.
+        # 
+        # Required field.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # The initialization response message communicates database parameters to the requesting device.
+    "databaseChange": { # This message is provided by the database to notify devices of an upcoming change to the database URI. # A database may include the databaseChange parameter to notify a device of a change to its database URI, providing one or more alternate database URIs. The device should use this information to update its list of pre-configured databases by (only) replacing its entry for the responding database with the list of alternate URIs.
+      "databases": [ # A required list of one or more databases. A device should update its preconfigured list of databases to replace (only) the database that provided the response with the specified entries.
+        { # This message contains the name and URI of a database.
+          "name": "A String", # The display name for a database.
+          "uri": "A String", # The corresponding URI of the database.
+        },
+      ],
+    },
+    "kind": "spectrum#pawsInitResponse", # Identifies what kind of resource this is. Value: the fixed string "spectrum#pawsInitResponse".
+    "version": "A String", # The PAWS version. Must be exactly 1.0.
+        #
+        # Required field.
+    "type": "A String", # The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...).
+        #
+        # Required field.
+    "rulesetInfo": { # This contains parameters for the ruleset of a regulatory domain that is communicated using the initialization and available-spectrum processes. # The rulesetInfo parameter must be included in the response. This parameter specifies the regulatory domain and parameters applicable to that domain. The database must include the authority field, which defines the regulatory domain for the location specified in the INIT_REQ message.
+      "rulesetIds": [ # The identifiers of the rulesets supported for the device's location. The database should include at least one applicable ruleset in the initialization response. The device may use the ruleset identifiers to determine parameters to include in subsequent requests. Within the context of the available-spectrum responses, the database should include the identifier of the ruleset that it used to determine the available-spectrum response. If included, the device must use the specified ruleset to interpret the response. If the device does not support the indicated ruleset, it must not operate in the spectrum governed by the ruleset.
+        "A String",
+      ],
+      "maxPollingSecs": 42, # The maximum duration, in seconds, between requests for available spectrum. It is required in the initialization response, but optional otherwise. The device must contact the database to get available spectrum no less frequently than this duration. If the new spectrum information indicates that the device is using spectrum that is no longer available, it must immediately cease use of those frequencies under rules for database-managed spectrum. If this value is provided within the context of an available-spectrum response, it takes precedence over the value within the initialization response.
+      "maxLocationChange": 3.14, # The maximum location change in meters is required in the initialization response, but optional otherwise. When the device changes location by more than this specified distance, it must contact the database to get the available spectrum for the new location. If the device is using spectrum that is no longer available, it must immediately cease use of the spectrum under rules for database-managed spectrum. If this value is provided within the context of an available-spectrum response, it takes precedence over the value within the initialization response.
+      "authority": "A String", # The regulatory domain to which the ruleset belongs is required. It must be a 2-letter country code. The device should use this to determine additional device behavior required by the associated regulatory domain.
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="notifySpectrumUse">notifySpectrumUse(body)</code>
+  <pre>Notifies the database that the device has selected certain frequency ranges for transmission. Only to be invoked when required by the regulator. The Google Spectrum Database does not operate in domains that require notification, so this always yields an UNIMPLEMENTED error.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The spectrum-use notification message which must contain the geolocation of the Device and parameters required by the regulatory domain.
+    "deviceDesc": { # The device descriptor contains parameters that identify the specific device, such as its manufacturer serial number, regulatory-specific identifier (e.g., FCC ID), and any other device characteristics required by regulatory domains. # Device descriptor information is required in the spectrum-use notification message.
+      "rulesetIds": [ # The list of identifiers for rulesets supported by the device. A database may require that the device provide this list before servicing the device requests. If the database does not support any of the rulesets specified in the list, the database may refuse to service the device requests. If present, the list must contain at least one entry.
+          #
+          # For information about the valid requests, see section 9.2 of the PAWS specification. Currently, FccTvBandWhiteSpace-2010 is the only supported ruleset.
+        "A String",
+      ],
+      "etsiEnDeviceType": "A String", # Specifies the ETSI white space device type. Valid values are single-letter strings, such as A, B, etc. Consult the ETSI documentation for details about the device types.
+      "fccId": "A String", # Specifies the device's FCC certification identifier. The value is an identifier string whose length should not exceed 32 characters. Note that, in practice, a valid FCC ID may be limited to 19 characters.
+      "serialNumber": "A String", # The manufacturer's device serial number; required by the applicable regulatory domain. The length of the value must not exceed 64 characters.
+      "etsiEnTechnologyId": "A String", # Specifies the ETSI white space device technology identifier. The string value must not exceed 64 characters in length. Consult the ETSI documentation for details about the device types.
+      "fccTvbdDeviceType": "A String", # Specifies the TV Band White Space device type, as defined by the FCC. Valid values are FIXED, MODE_1, MODE_2.
+      "etsiEnDeviceCategory": "A String", # Specifies the ETSI white space device category. Valid values are the strings master and slave. This field is case-insensitive. Consult the ETSI documentation for details about the device types.
+      "etsiEnDeviceEmissionsClass": "A String", # Specifies the ETSI white space device emissions class. The values are represented by numeric strings, such as 1, 2, etc. Consult the ETSI documentation for details about the device types.
+      "manufacturerId": "A String", # The manufacturer's ID may be required by the regulatory domain. This should represent the name of the device manufacturer, should be consistent across all devices from the same manufacturer, and should be distinct from that of other manufacturers. The string value must not exceed 64 characters in length.
+      "modelId": "A String", # The device's model ID may be required by the regulatory domain. The string value must not exceed 64 characters in length.
+    },
+    "type": "A String", # The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...).
+        # 
+        # Required field.
+    "location": { # This parameter is used to specify the geolocation of the device. # The geolocation of the master device (the device that is sending the spectrum-use notification) to the database is required in the spectrum-use notification message.
+      "confidence": 42, # The location confidence level, as an integer percentage, may be required, depending on the regulatory domain. When the parameter is optional and not provided, its value is assumed to be 95. Valid values range from 0 to 99, since, in practice, 100-percent confidence is not achievable. The confidence value is meaningful only when geolocation refers to a point with uncertainty.
+      "region": { # A region is represented using the polygonal shape. # If present, indicates that the geolocation represents a region. Database support for regions is optional.
+        "exterior": [ # When the geolocation describes a region, the exterior field refers to a list of latitude/longitude points that represent the vertices of a polygon. The first and last points must be the same. Thus, a minimum of four points is required. The following polygon restrictions from RFC5491 apply:
+            # - A connecting line shall not cross another connecting line of the same polygon.
+            # - The vertices must be defined in a counterclockwise order.
+            # - The edges of a polygon are defined by the shortest path between two points in space (not a geodesic curve). Consequently, the length between two adjacent vertices should be restricted to a maximum of 130 km.
+            # - All vertices are assumed to be at the same altitude.
+            # - Polygon shapes should be restricted to a maximum of 15 vertices (16 points that include the repeated vertex).
+          { # A single geolocation on the globe.
+            "latitude": 3.14, # A required floating-point number that expresses the latitude in degrees using the WGS84 datum. For details on this encoding, see the National Imagery and Mapping Agency's Technical Report TR8350.2.
+            "longitude": 3.14, # A required floating-point number that expresses the longitude in degrees using the WGS84 datum. For details on this encoding, see the National Imagery and Mapping Agency's Technical Report TR8350.2.
+          },
+        ],
+      },
+      "point": { # A "point" with uncertainty is represented using the Ellipse shape. # If present, indicates that the geolocation represents a point. Paradoxically, a point is parameterized using an ellipse, where the center represents the location of the point and the distances along the major and minor axes represent the uncertainty. The uncertainty values may be required, depending on the regulatory domain.
+        "semiMajorAxis": 3.14, # A floating-point number that expresses the location uncertainty along the major axis of the ellipse. May be required by the regulatory domain. When the uncertainty is optional, the default value is 0.
+        "center": { # A single geolocation on the globe. # A required geo-spatial point representing the center of the ellipse.
+          "latitude": 3.14, # A required floating-point number that expresses the latitude in degrees using the WGS84 datum. For details on this encoding, see the National Imagery and Mapping Agency's Technical Report TR8350.2.
+          "longitude": 3.14, # A required floating-point number that expresses the longitude in degrees using the WGS84 datum. For details on this encoding, see the National Imagery and Mapping Agency's Technical Report TR8350.2.
+        },
+        "semiMinorAxis": 3.14, # A floating-point number that expresses the location uncertainty along the minor axis of the ellipse. May be required by the regulatory domain. When the uncertainty is optional, the default value is 0.
+        "orientation": 3.14, # A floating-point number that expresses the orientation of the ellipse, representing the rotation, in degrees, of the semi-major axis from North towards the East. For example, when the uncertainty is greatest along the North-South direction, orientation is 0 degrees; conversely, if the uncertainty is greatest along the East-West direction, orientation is 90 degrees. When orientation is not present, the orientation is assumed to be 0.
+      },
+    },
+    "version": "A String", # The PAWS version. Must be exactly 1.0.
+        # 
+        # Required field.
+    "spectra": [ # A spectrum list is required in the spectrum-use notification. The list specifies the spectrum that the device expects to use, which includes frequency ranges and maximum power levels. The list may be empty if the device decides not to use any of spectrum. For consistency, the psdBandwidthHz value should match that from one of the spectrum elements in the corresponding available spectrum response previously sent to the device by the database. Note that maximum power levels in the spectrum element must be expressed as power spectral density over the specified psdBandwidthHz value. The actual bandwidth to be used (as computed from the start and stop frequencies) may be different from the psdBandwidthHz value. As an example, when regulatory rules express maximum power spectral density in terms of maximum power over any 100 kHz band, then the psdBandwidthHz value should be set to 100 kHz, even though the actual bandwidth used can be 20 kHz.
+      { # Available spectrum can be logically characterized by a list of frequency ranges and permissible power levels for each range.
+        "bandwidth": 3.14, # The bandwidth (in Hertz) for which permissible power levels are specified. For example, FCC regulation would require only one spectrum specification at 6MHz bandwidth, but Ofcom regulation would require two specifications, at 0.1MHz and 8MHz. This parameter may be empty if there is no available spectrum. It will be present otherwise.
+        "frequencyRanges": [ # The list of frequency ranges and permissible power levels. The list may be empty if there is no available spectrum, otherwise it will be present.
+          { # A specific range of frequencies together with the associated maximum power level and channel identifier.
+            "startHz": 3.14, # The required inclusive start of the frequency range (in Hertz).
+            "channelId": "A String", # The database may include a channel identifier, when applicable. When it is included, the device should treat it as informative. The length of the identifier should not exceed 16 characters.
+            "stopHz": 3.14, # The required exclusive end of the frequency range (in Hertz).
+            "maxPowerDBm": 3.14, # The maximum total power level (EIRP)—computed over the corresponding operating bandwidth—that is permitted within the frequency range. Depending on the context in which the frequency-range element appears, this value may be required. For example, it is required in the available-spectrum response, available-spectrum-batch response, and spectrum-use notification message, but it should not be present (it is not applicable) when the frequency range appears inside a device-capabilities message.
+          },
+        ],
+      },
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An empty response to the notification.
+    "kind": "spectrum#pawsNotifySpectrumUseResponse", # Identifies what kind of resource this is. Value: the fixed string "spectrum#pawsNotifySpectrumUseResponse".
+    "version": "A String", # The PAWS version. Must be exactly 1.0.
+        #
+        # Required field.
+    "type": "A String", # The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...).
+        #
+        # Required field.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="register">register(body)</code>
+  <pre>The Google Spectrum Database implements registration in the getSpectrum method. As such this always returns an UNIMPLEMENTED error.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The registration request message contains the required registration parameters.
+    "deviceDesc": { # The device descriptor contains parameters that identify the specific device, such as its manufacturer serial number, regulatory-specific identifier (e.g., FCC ID), and any other device characteristics required by regulatory domains. # A DeviceDescriptor is required.
+      "rulesetIds": [ # The list of identifiers for rulesets supported by the device. A database may require that the device provide this list before servicing the device requests. If the database does not support any of the rulesets specified in the list, the database may refuse to service the device requests. If present, the list must contain at least one entry.
+          #
+          # For information about the valid requests, see section 9.2 of the PAWS specification. Currently, FccTvBandWhiteSpace-2010 is the only supported ruleset.
+        "A String",
+      ],
+      "etsiEnDeviceType": "A String", # Specifies the ETSI white space device type. Valid values are single-letter strings, such as A, B, etc. Consult the ETSI documentation for details about the device types.
+      "fccId": "A String", # Specifies the device's FCC certification identifier. The value is an identifier string whose length should not exceed 32 characters. Note that, in practice, a valid FCC ID may be limited to 19 characters.
+      "serialNumber": "A String", # The manufacturer's device serial number; required by the applicable regulatory domain. The length of the value must not exceed 64 characters.
+      "etsiEnTechnologyId": "A String", # Specifies the ETSI white space device technology identifier. The string value must not exceed 64 characters in length. Consult the ETSI documentation for details about the device types.
+      "fccTvbdDeviceType": "A String", # Specifies the TV Band White Space device type, as defined by the FCC. Valid values are FIXED, MODE_1, MODE_2.
+      "etsiEnDeviceCategory": "A String", # Specifies the ETSI white space device category. Valid values are the strings master and slave. This field is case-insensitive. Consult the ETSI documentation for details about the device types.
+      "etsiEnDeviceEmissionsClass": "A String", # Specifies the ETSI white space device emissions class. The values are represented by numeric strings, such as 1, 2, etc. Consult the ETSI documentation for details about the device types.
+      "manufacturerId": "A String", # The manufacturer's ID may be required by the regulatory domain. This should represent the name of the device manufacturer, should be consistent across all devices from the same manufacturer, and should be distinct from that of other manufacturers. The string value must not exceed 64 characters in length.
+      "modelId": "A String", # The device's model ID may be required by the regulatory domain. The string value must not exceed 64 characters in length.
+    },
+    "antenna": { # Antenna characteristics provide additional information, such as the antenna height, antenna type, etc. Whether antenna characteristics must be provided in a request depends on the device type and regulatory domain. # Antenna characteristics, including its height and height type.
+      "heightType": "A String", # If the height is required, then the height type (AGL for above ground level or AMSL for above mean sea level) is also required. The default is AGL.
+      "heightUncertainty": 3.14, # The height uncertainty in meters. Whether this is required depends on the regulatory domain.
+      "height": 3.14, # The antenna height in meters. Whether the antenna height is required depends on the device type and the regulatory domain. Note that the height may be negative.
+    },
+    "deviceOwner": { # This parameter contains device-owner information required as part of device registration. The regulatory domains may require additional parameters. # Device owner information is required.
+        #
+        # All contact information must be expressed using the structure defined by the vCard format specification. Only the contact fields of vCard are supported:
+        # - fn: Full name of an individual
+        # - org: Name of the organization
+        # - adr: Address fields
+        # - tel: Telephone numbers
+        # - email: Email addresses
+        #
+        # Note that the vCard specification defines maximum lengths for each field.
+      "operator": { # A vCard-in-JSON message that contains only the fields needed for PAWS: # The vCard contact information for the device operator is optional, but may be required by specific regulatory domains.
+          # - fn: Full name of an individual
+          # - org: Name of the organization
+          # - adr: Address fields
+          # - tel: Telephone numbers
+          # - email: Email addresses
+        "org": { # The structure used to represent an organization and an email address. # The organization associated with the registering entity.
+          "text": "A String", # The text string associated with this item. For example, for an org field: ACME, inc. For an email field: smith@example.com.
+        },
+        "tel": { # The structure used to represent a telephone number. # A telephone number that can be used to call the contact.
+          "uri": "A String", # A nested telephone URI of the form: tel:+1-123-456-7890.
+        },
+        "adr": { # The structure used to represent a street address. # The street address of the entity.
+          "code": "A String", # The postal code associated with the address. For example: 94423.
+          "locality": "A String", # The city or local equivalent portion of the address. For example: San Jose.
+          "country": "A String", # The country name. For example: US.
+          "region": "A String", # The state or local equivalent portion of the address. For example: CA.
+          "pobox": "A String", # An optional post office box number.
+          "street": "A String", # The street number and name. For example: 123 Any St.
+        },
+        "email": { # The structure used to represent an organization and an email address. # An email address that can be used to reach the contact.
+          "text": "A String", # The text string associated with this item. For example, for an org field: ACME, inc. For an email field: smith@example.com.
+        },
+        "fn": "A String", # The full name of the contact person. For example: John A. Smith.
+      },
+      "owner": { # A vCard-in-JSON message that contains only the fields needed for PAWS: # The vCard contact information for the individual or business that owns the device is required.
+          # - fn: Full name of an individual
+          # - org: Name of the organization
+          # - adr: Address fields
+          # - tel: Telephone numbers
+          # - email: Email addresses
+        "org": { # The structure used to represent an organization and an email address. # The organization associated with the registering entity.
+          "text": "A String", # The text string associated with this item. For example, for an org field: ACME, inc. For an email field: smith@example.com.
+        },
+        "tel": { # The structure used to represent a telephone number. # A telephone number that can be used to call the contact.
+          "uri": "A String", # A nested telephone URI of the form: tel:+1-123-456-7890.
+        },
+        "adr": { # The structure used to represent a street address. # The street address of the entity.
+          "code": "A String", # The postal code associated with the address. For example: 94423.
+          "locality": "A String", # The city or local equivalent portion of the address. For example: San Jose.
+          "country": "A String", # The country name. For example: US.
+          "region": "A String", # The state or local equivalent portion of the address. For example: CA.
+          "pobox": "A String", # An optional post office box number.
+          "street": "A String", # The street number and name. For example: 123 Any St.
+        },
+        "email": { # The structure used to represent an organization and an email address. # An email address that can be used to reach the contact.
+          "text": "A String", # The text string associated with this item. For example, for an org field: ACME, inc. For an email field: smith@example.com.
+        },
+        "fn": "A String", # The full name of the contact person. For example: John A. Smith.
+      },
+    },
+    "version": "A String", # The PAWS version. Must be exactly 1.0.
+        # 
+        # Required field.
+    "location": { # This parameter is used to specify the geolocation of the device. # A device's geolocation is required.
+      "confidence": 42, # The location confidence level, as an integer percentage, may be required, depending on the regulatory domain. When the parameter is optional and not provided, its value is assumed to be 95. Valid values range from 0 to 99, since, in practice, 100-percent confidence is not achievable. The confidence value is meaningful only when geolocation refers to a point with uncertainty.
+      "region": { # A region is represented using the polygonal shape. # If present, indicates that the geolocation represents a region. Database support for regions is optional.
+        "exterior": [ # When the geolocation describes a region, the exterior field refers to a list of latitude/longitude points that represent the vertices of a polygon. The first and last points must be the same. Thus, a minimum of four points is required. The following polygon restrictions from RFC5491 apply:
+            # - A connecting line shall not cross another connecting line of the same polygon.
+            # - The vertices must be defined in a counterclockwise order.
+            # - The edges of a polygon are defined by the shortest path between two points in space (not a geodesic curve). Consequently, the length between two adjacent vertices should be restricted to a maximum of 130 km.
+            # - All vertices are assumed to be at the same altitude.
+            # - Polygon shapes should be restricted to a maximum of 15 vertices (16 points that include the repeated vertex).
+          { # A single geolocation on the globe.
+            "latitude": 3.14, # A required floating-point number that expresses the latitude in degrees using the WGS84 datum. For details on this encoding, see the National Imagery and Mapping Agency's Technical Report TR8350.2.
+            "longitude": 3.14, # A required floating-point number that expresses the longitude in degrees using the WGS84 datum. For details on this encoding, see the National Imagery and Mapping Agency's Technical Report TR8350.2.
+          },
+        ],
+      },
+      "point": { # A "point" with uncertainty is represented using the Ellipse shape. # If present, indicates that the geolocation represents a point. Paradoxically, a point is parameterized using an ellipse, where the center represents the location of the point and the distances along the major and minor axes represent the uncertainty. The uncertainty values may be required, depending on the regulatory domain.
+        "semiMajorAxis": 3.14, # A floating-point number that expresses the location uncertainty along the major axis of the ellipse. May be required by the regulatory domain. When the uncertainty is optional, the default value is 0.
+        "center": { # A single geolocation on the globe. # A required geo-spatial point representing the center of the ellipse.
+          "latitude": 3.14, # A required floating-point number that expresses the latitude in degrees using the WGS84 datum. For details on this encoding, see the National Imagery and Mapping Agency's Technical Report TR8350.2.
+          "longitude": 3.14, # A required floating-point number that expresses the longitude in degrees using the WGS84 datum. For details on this encoding, see the National Imagery and Mapping Agency's Technical Report TR8350.2.
+        },
+        "semiMinorAxis": 3.14, # A floating-point number that expresses the location uncertainty along the minor axis of the ellipse. May be required by the regulatory domain. When the uncertainty is optional, the default value is 0.
+        "orientation": 3.14, # A floating-point number that expresses the orientation of the ellipse, representing the rotation, in degrees, of the semi-major axis from North towards the East. For example, when the uncertainty is greatest along the North-South direction, orientation is 0 degrees; conversely, if the uncertainty is greatest along the East-West direction, orientation is 90 degrees. When orientation is not present, the orientation is assumed to be 0.
+      },
+    },
+    "type": "A String", # The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...).
+        # 
+        # Required field.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # The registration response message simply acknowledges receipt of the request and is otherwise empty.
+    "databaseChange": { # This message is provided by the database to notify devices of an upcoming change to the database URI. # A database may include the databaseChange parameter to notify a device of a change to its database URI, providing one or more alternate database URIs. The device should use this information to update its list of pre-configured databases by (only) replacing its entry for the responding database with the list of alternate URIs.
+      "databases": [ # A required list of one or more databases. A device should update its preconfigured list of databases to replace (only) the database that provided the response with the specified entries.
+        { # This message contains the name and URI of a database.
+          "name": "A String", # The display name for a database.
+          "uri": "A String", # The corresponding URI of the database.
+        },
+      ],
+    },
+    "kind": "spectrum#pawsRegisterResponse", # Identifies what kind of resource this is. Value: the fixed string "spectrum#pawsRegisterResponse".
+    "version": "A String", # The PAWS version. Must be exactly 1.0.
+        #
+        # Required field.
+    "type": "A String", # The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...).
+        #
+        # Required field.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="verifyDevice">verifyDevice(body)</code>
+  <pre>Validates a device for white space use in accordance with regulatory rules. The Google Spectrum Database does not support master/slave configurations, so this always yields an UNIMPLEMENTED error.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The device validation request message.
+    "deviceDescs": [ # A list of device descriptors, which specifies the slave devices to be validated, is required.
+      { # The device descriptor contains parameters that identify the specific device, such as its manufacturer serial number, regulatory-specific identifier (e.g., FCC ID), and any other device characteristics required by regulatory domains.
+        "rulesetIds": [ # The list of identifiers for rulesets supported by the device. A database may require that the device provide this list before servicing the device requests. If the database does not support any of the rulesets specified in the list, the database may refuse to service the device requests. If present, the list must contain at least one entry.
+            #
+            # For information about the valid requests, see section 9.2 of the PAWS specification. Currently, FccTvBandWhiteSpace-2010 is the only supported ruleset.
+          "A String",
+        ],
+        "etsiEnDeviceType": "A String", # Specifies the ETSI white space device type. Valid values are single-letter strings, such as A, B, etc. Consult the ETSI documentation for details about the device types.
+        "fccId": "A String", # Specifies the device's FCC certification identifier. The value is an identifier string whose length should not exceed 32 characters. Note that, in practice, a valid FCC ID may be limited to 19 characters.
+        "serialNumber": "A String", # The manufacturer's device serial number; required by the applicable regulatory domain. The length of the value must not exceed 64 characters.
+        "etsiEnTechnologyId": "A String", # Specifies the ETSI white space device technology identifier. The string value must not exceed 64 characters in length. Consult the ETSI documentation for details about the device types.
+        "fccTvbdDeviceType": "A String", # Specifies the TV Band White Space device type, as defined by the FCC. Valid values are FIXED, MODE_1, MODE_2.
+        "etsiEnDeviceCategory": "A String", # Specifies the ETSI white space device category. Valid values are the strings master and slave. This field is case-insensitive. Consult the ETSI documentation for details about the device types.
+        "etsiEnDeviceEmissionsClass": "A String", # Specifies the ETSI white space device emissions class. The values are represented by numeric strings, such as 1, 2, etc. Consult the ETSI documentation for details about the device types.
+        "manufacturerId": "A String", # The manufacturer's ID may be required by the regulatory domain. This should represent the name of the device manufacturer, should be consistent across all devices from the same manufacturer, and should be distinct from that of other manufacturers. The string value must not exceed 64 characters in length.
+        "modelId": "A String", # The device's model ID may be required by the regulatory domain. The string value must not exceed 64 characters in length.
+      },
+    ],
+    "type": "A String", # The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...).
+        # 
+        # Required field.
+    "version": "A String", # The PAWS version. Must be exactly 1.0.
+        # 
+        # Required field.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # The device validation response message.
+    "databaseChange": { # This message is provided by the database to notify devices of an upcoming change to the database URI. # A database may include the databaseChange parameter to notify a device of a change to its database URI, providing one or more alternate database URIs. The device should use this information to update its list of pre-configured databases by (only) replacing its entry for the responding database with the list of alternate URIs.
+      "databases": [ # A required list of one or more databases. A device should update its preconfigured list of databases to replace (only) the database that provided the response with the specified entries.
+        { # This message contains the name and URI of a database.
+          "name": "A String", # The display name for a database.
+          "uri": "A String", # The corresponding URI of the database.
+        },
+      ],
+    },
+    "kind": "spectrum#pawsVerifyDeviceResponse", # Identifies what kind of resource this is. Value: the fixed string "spectrum#pawsVerifyDeviceResponse".
+    "version": "A String", # The PAWS version. Must be exactly 1.0.
+        #
+        # Required field.
+    "deviceValidities": [ # A device validities list is required in the device validation response to report whether each slave device listed in a previous device validation request is valid. The number of entries must match the number of device descriptors listed in the previous device validation request.
+      { # The device validity element describes whether a particular device is valid to operate in the regulatory domain.
+        "isValid": True or False, # The validity status: true if the device is valid for operation, false otherwise. It will always be present.
+        "reason": "A String", # If the device identifier is not valid, the database may include a reason. The reason may be in any language. The length of the value should not exceed 128 characters.
+        "deviceDesc": { # The device descriptor contains parameters that identify the specific device, such as its manufacturer serial number, regulatory-specific identifier (e.g., FCC ID), and any other device characteristics required by regulatory domains. # The descriptor of the device for which the validity check was requested. It will always be present.
+          "rulesetIds": [ # The list of identifiers for rulesets supported by the device. A database may require that the device provide this list before servicing the device requests. If the database does not support any of the rulesets specified in the list, the database may refuse to service the device requests. If present, the list must contain at least one entry.
+              #
+              # For information about the valid requests, see section 9.2 of the PAWS specification. Currently, FccTvBandWhiteSpace-2010 is the only supported ruleset.
+            "A String",
+          ],
+          "etsiEnDeviceType": "A String", # Specifies the ETSI white space device type. Valid values are single-letter strings, such as A, B, etc. Consult the ETSI documentation for details about the device types.
+          "fccId": "A String", # Specifies the device's FCC certification identifier. The value is an identifier string whose length should not exceed 32 characters. Note that, in practice, a valid FCC ID may be limited to 19 characters.
+          "serialNumber": "A String", # The manufacturer's device serial number; required by the applicable regulatory domain. The length of the value must not exceed 64 characters.
+          "etsiEnTechnologyId": "A String", # Specifies the ETSI white space device technology identifier. The string value must not exceed 64 characters in length. Consult the ETSI documentation for details about the device types.
+          "fccTvbdDeviceType": "A String", # Specifies the TV Band White Space device type, as defined by the FCC. Valid values are FIXED, MODE_1, MODE_2.
+          "etsiEnDeviceCategory": "A String", # Specifies the ETSI white space device category. Valid values are the strings master and slave. This field is case-insensitive. Consult the ETSI documentation for details about the device types.
+          "etsiEnDeviceEmissionsClass": "A String", # Specifies the ETSI white space device emissions class. The values are represented by numeric strings, such as 1, 2, etc. Consult the ETSI documentation for details about the device types.
+          "manufacturerId": "A String", # The manufacturer's ID may be required by the regulatory domain. This should represent the name of the device manufacturer, should be consistent across all devices from the same manufacturer, and should be distinct from that of other manufacturers. The string value must not exceed 64 characters in length.
+          "modelId": "A String", # The device's model ID may be required by the regulatory domain. The string value must not exceed 64 characters in length.
+        },
+      },
+    ],
+    "type": "A String", # The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...).
+        #
+        # Required field.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/sqladmin_v1beta3.backupRuns.html b/docs/dyn/sqladmin_v1beta3.backupRuns.html
new file mode 100644
index 0000000..19f1276
--- /dev/null
+++ b/docs/dyn/sqladmin_v1beta3.backupRuns.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="sqladmin_v1beta3.html">Cloud SQL Administration API</a> . <a href="sqladmin_v1beta3.backupRuns.html">backupRuns</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(project, instance, backupConfiguration, dueTime)</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, backupConfiguration, 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, backupConfiguration, dueTime)</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)
+  backupConfiguration: string, Identifier for the backup configuration. This gets generated automatically when a backup configuration is created. (required)
+  dueTime: string, The time when this run is due to start in RFC 3339 format, for example 2012-11-15T16:19:00.094Z. (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.
+    "backupConfiguration": "A String", # Backup Configuration identifier.
+    "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.
+    },
+    "endTime": "A String", # The time the backup operation completed in UTC timezone 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.
+    "dueTime": "A String", # The due time of this run in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, instance, backupConfiguration, 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)
+  backupConfiguration: string, Identifier for the backup configuration. This gets generated automatically when a backup configuration is created. (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.
+        "backupConfiguration": "A String", # Backup Configuration identifier.
+        "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.
+        },
+        "endTime": "A String", # The time the backup operation completed in UTC timezone 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.
+        "dueTime": "A String", # The due time of this run in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+      },
+    ],
+    "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_v1beta3.flags.html b/docs/dyn/sqladmin_v1beta3.flags.html
new file mode 100644
index 0000000..fdaedc4
--- /dev/null
+++ b/docs/dyn/sqladmin_v1beta3.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_v1beta3.html">Cloud SQL Administration API</a> . <a href="sqladmin_v1beta3.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_v1beta3.html b/docs/dyn/sqladmin_v1beta3.html
new file mode 100644
index 0000000..6d997af
--- /dev/null
+++ b/docs/dyn/sqladmin_v1beta3.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_v1beta3.html">Cloud SQL Administration API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="sqladmin_v1beta3.backupRuns.html">backupRuns()</a></code>
+</p>
+<p class="firstline">Returns the backupRuns Resource.</p>
+
+<p class="toc_element">
+  <code><a href="sqladmin_v1beta3.flags.html">flags()</a></code>
+</p>
+<p class="firstline">Returns the flags Resource.</p>
+
+<p class="toc_element">
+  <code><a href="sqladmin_v1beta3.instances.html">instances()</a></code>
+</p>
+<p class="firstline">Returns the instances Resource.</p>
+
+<p class="toc_element">
+  <code><a href="sqladmin_v1beta3.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="sqladmin_v1beta3.sslCerts.html">sslCerts()</a></code>
+</p>
+<p class="firstline">Returns the sslCerts Resource.</p>
+
+<p class="toc_element">
+  <code><a href="sqladmin_v1beta3.tiers.html">tiers()</a></code>
+</p>
+<p class="firstline">Returns the tiers Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/sqladmin_v1beta3.instances.html b/docs/dyn/sqladmin_v1beta3.instances.html
new file mode 100644
index 0000000..c17dcf9
--- /dev/null
+++ b/docs/dyn/sqladmin_v1beta3.instances.html
@@ -0,0 +1,786 @@
+<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_v1beta3.html">Cloud SQL Administration API</a> . <a href="sqladmin_v1beta3.instances.html">instances</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#clone">clone(project, 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="#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, backupConfiguration, dueTime)</a></code></p>
+<p class="firstline">Restores a backup of a Cloud SQL instance.</p>
+<p class="toc_element">
+  <code><a href="#setRootPassword">setRootPassword(project, instance, body)</a></code></p>
+<p class="firstline">Sets the password for the root user.</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, 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)
+  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.
+      "sourceInstanceName": "A String", # Name of the Cloud SQL instance to be cloned.
+      "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:
+
+    { # Database instance clone response.
+    "kind": "sql#instancesClone", # This is always sql#instancesClone.
+    "operation": "A String", # An unique identifier for the operation associated with the cloned instance. You can use this identifier to retrieve the Operations resource, which has information about the 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:
+
+    { # Database instance delete response.
+    "kind": "sql#instancesDelete", # This is always sql#instancesDelete.
+    "operation": "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.
+  }</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.
+      "table": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
+        "A String",
+      ],
+      "kind": "sql#exportContext", # This is always sql#exportContext.
+      "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored, or where it was already stored. The URI is in the form gs://bucketName/fileName. If the file already exists, the operation fails. If the filename ends with .gz, the contents are compressed.
+      "database": [ # Databases (for example, guestbook) from which the export is made. If unspecified, all databases are exported.
+        "A String",
+      ],
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Database instance export response.
+    "kind": "sql#instancesExport", # This is always sql#instancesExport.
+    "operation": "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.
+  }</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.
+      "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", # Time when the certificate expires.
+        "createTime": "A String", # Time when the certificate was created.
+      },
+      "region": "A String", # The geographical region. Can be us-east1, 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:  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 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 AppEngine 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": [ # The daily backup configuration for the instance.
+          { # Database instance backup configuration.
+            "startTime": "A String", # Start time for the daily backup configuration in UTC timezone in the 24 hour format - HH:MM.
+            "kind": "sql#backupConfiguration", # This is always sql#backupConfiguration.
+            "enabled": True or False, # Whether this configuration is enabled.
+            "id": "A String", # Identifier for this configuration. This gets generated automatically when a backup configuration is created.
+            "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.
+          "enabled": True or False, # Whether the instance should be assigned an IP address or not.
+          "requireSsl": True or False, # Whether the mysqld should default to 'REQUIRE X509' for users connecting over IP.
+          "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).
+            "A String",
+          ],
+        },
+        "pricingPlan": "A String", # The pricing plan for this instance. This can be either PER_USE or PACKAGE.
+        "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.
+        "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 AppEngine app or GCE zone for better perfomance.
+          "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.
+        },
+      },
+      "currentDiskSize": "A String", # The current disk usage of the instance in bytes.
+      "instance": "A String", # Name of the Cloud SQL instance. This does not include the project ID.
+      "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.
+      "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, for example MYSQL_5_5 for MySQL 5.5.
+    }</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.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "uri": [ # A path to the MySQL dump 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 also supported.
+        "A String",
+      ],
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If not set, it is assumed that the database is specified in the file to be imported.
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Database instance import response.
+    "kind": "sql#instancesImport", # This is always sql#instancesImport.
+    "operation": "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.
+  }</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.
+    "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", # Time when the certificate expires.
+      "createTime": "A String", # Time when the certificate was created.
+    },
+    "region": "A String", # The geographical region. Can be us-east1, 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:  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 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 AppEngine 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": [ # The daily backup configuration for the instance.
+        { # Database instance backup configuration.
+          "startTime": "A String", # Start time for the daily backup configuration in UTC timezone in the 24 hour format - HH:MM.
+          "kind": "sql#backupConfiguration", # This is always sql#backupConfiguration.
+          "enabled": True or False, # Whether this configuration is enabled.
+          "id": "A String", # Identifier for this configuration. This gets generated automatically when a backup configuration is created.
+          "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.
+        "enabled": True or False, # Whether the instance should be assigned an IP address or not.
+        "requireSsl": True or False, # Whether the mysqld should default to 'REQUIRE X509' for users connecting over IP.
+        "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).
+          "A String",
+        ],
+      },
+      "pricingPlan": "A String", # The pricing plan for this instance. This can be either PER_USE or PACKAGE.
+      "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.
+      "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 AppEngine app or GCE zone for better perfomance.
+        "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.
+      },
+    },
+    "currentDiskSize": "A String", # The current disk usage of the instance in bytes.
+    "instance": "A String", # Name of the Cloud SQL instance. This does not include the project ID.
+    "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.
+    "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, for example MYSQL_5_5 for MySQL 5.5.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Database instance insert response.
+    "kind": "sql#instancesInsert", # This is always sql#instancesInsert.
+    "operation": "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.
+  }</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.
+          "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", # Time when the certificate expires.
+            "createTime": "A String", # Time when the certificate was created.
+          },
+          "region": "A String", # The geographical region. Can be us-east1, 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:  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 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 AppEngine 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": [ # The daily backup configuration for the instance.
+              { # Database instance backup configuration.
+                "startTime": "A String", # Start time for the daily backup configuration in UTC timezone in the 24 hour format - HH:MM.
+                "kind": "sql#backupConfiguration", # This is always sql#backupConfiguration.
+                "enabled": True or False, # Whether this configuration is enabled.
+                "id": "A String", # Identifier for this configuration. This gets generated automatically when a backup configuration is created.
+                "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.
+              "enabled": True or False, # Whether the instance should be assigned an IP address or not.
+              "requireSsl": True or False, # Whether the mysqld should default to 'REQUIRE X509' for users connecting over IP.
+              "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).
+                "A String",
+              ],
+            },
+            "pricingPlan": "A String", # The pricing plan for this instance. This can be either PER_USE or PACKAGE.
+            "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.
+            "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 AppEngine app or GCE zone for better perfomance.
+              "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.
+            },
+          },
+          "currentDiskSize": "A String", # The current disk usage of the instance in bytes.
+          "instance": "A String", # Name of the Cloud SQL instance. This does not include the project ID.
+          "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.
+          "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, for example MYSQL_5_5 for MySQL 5.5.
+        },
+    ],
+    "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.
+    "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", # Time when the certificate expires.
+      "createTime": "A String", # Time when the certificate was created.
+    },
+    "region": "A String", # The geographical region. Can be us-east1, 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:  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 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 AppEngine 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": [ # The daily backup configuration for the instance.
+        { # Database instance backup configuration.
+          "startTime": "A String", # Start time for the daily backup configuration in UTC timezone in the 24 hour format - HH:MM.
+          "kind": "sql#backupConfiguration", # This is always sql#backupConfiguration.
+          "enabled": True or False, # Whether this configuration is enabled.
+          "id": "A String", # Identifier for this configuration. This gets generated automatically when a backup configuration is created.
+          "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.
+        "enabled": True or False, # Whether the instance should be assigned an IP address or not.
+        "requireSsl": True or False, # Whether the mysqld should default to 'REQUIRE X509' for users connecting over IP.
+        "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).
+          "A String",
+        ],
+      },
+      "pricingPlan": "A String", # The pricing plan for this instance. This can be either PER_USE or PACKAGE.
+      "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.
+      "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 AppEngine app or GCE zone for better perfomance.
+        "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.
+      },
+    },
+    "currentDiskSize": "A String", # The current disk usage of the instance in bytes.
+    "instance": "A String", # Name of the Cloud SQL instance. This does not include the project ID.
+    "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.
+    "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, for example MYSQL_5_5 for MySQL 5.5.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Database instance update response.
+    "kind": "sql#instancesUpdate", # This is always sql#instancesUpdate.
+    "operation": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve information about the 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:
+
+    { # Database instance resetSslConfig response.
+    "kind": "sql#instancesResetSslConfig", # This is always sql#instancesResetSslConfig.
+    "operation": "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. All ssl client certificates will be deleted and a new server certificate will be created. Does not take effect until the next instance restart.
+  }</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:
+
+    { # Database instance restart response.
+    "kind": "sql#instancesRestart", # This is always sql#instancesRestart.
+    "operation": "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.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="restoreBackup">restoreBackup(project, instance, backupConfiguration, dueTime)</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)
+  backupConfiguration: string, The identifier of the backup configuration. This gets generated automatically when a backup configuration is created. (required)
+  dueTime: string, The time when this run is due to start in RFC 3339 format, for example 2012-11-15T16:19:00.094Z. (required)
+
+Returns:
+  An object of the form:
+
+    { # Database instance restore backup response.
+    "kind": "sql#instancesRestoreBackup", # This is always sql#instancesRestoreBackup.
+    "operation": "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.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setRootPassword">setRootPassword(project, instance, body)</code>
+  <pre>Sets the password for the root user.
+
+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 set root password request.
+    "setRootPasswordContext": { # Database instance set root password context. # Set Root Password Context.
+      "kind": "sql#setRootUserContext", # This is always sql#setRootUserContext.
+      "password": "A String", # The password for the root user.
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Database instance set root password response.
+    "kind": "sql#instancesSetRootPassword", # This is always sql#instancesSetRootPassword.
+    "operation": "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.
+  }</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.
+    "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", # Time when the certificate expires.
+      "createTime": "A String", # Time when the certificate was created.
+    },
+    "region": "A String", # The geographical region. Can be us-east1, 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:  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 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 AppEngine 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": [ # The daily backup configuration for the instance.
+        { # Database instance backup configuration.
+          "startTime": "A String", # Start time for the daily backup configuration in UTC timezone in the 24 hour format - HH:MM.
+          "kind": "sql#backupConfiguration", # This is always sql#backupConfiguration.
+          "enabled": True or False, # Whether this configuration is enabled.
+          "id": "A String", # Identifier for this configuration. This gets generated automatically when a backup configuration is created.
+          "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.
+        "enabled": True or False, # Whether the instance should be assigned an IP address or not.
+        "requireSsl": True or False, # Whether the mysqld should default to 'REQUIRE X509' for users connecting over IP.
+        "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).
+          "A String",
+        ],
+      },
+      "pricingPlan": "A String", # The pricing plan for this instance. This can be either PER_USE or PACKAGE.
+      "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.
+      "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 AppEngine app or GCE zone for better perfomance.
+        "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.
+      },
+    },
+    "currentDiskSize": "A String", # The current disk usage of the instance in bytes.
+    "instance": "A String", # Name of the Cloud SQL instance. This does not include the project ID.
+    "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.
+    "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, for example MYSQL_5_5 for MySQL 5.5.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Database instance update response.
+    "kind": "sql#instancesUpdate", # This is always sql#instancesUpdate.
+    "operation": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve information about the operation.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/sqladmin_v1beta3.operations.html b/docs/dyn/sqladmin_v1beta3.operations.html
new file mode 100644
index 0000000..e5e528f
--- /dev/null
+++ b/docs/dyn/sqladmin_v1beta3.operations.html
@@ -0,0 +1,204 @@
+<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_v1beta3.html">Cloud SQL Administration API</a> . <a href="sqladmin_v1beta3.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(project, instance, 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, instance, 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)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (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.
+    "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "uri": [ # A path to the MySQL dump 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 also supported.
+        "A String",
+      ],
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If not set, it is assumed that the database is specified in the file to be imported.
+    },
+    "kind": "sql#instanceOperation", # This is always sql#instanceOperation.
+    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+      "table": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
+        "A String",
+      ],
+      "kind": "sql#exportContext", # This is always sql#exportContext.
+      "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored, or where it was already stored. The URI is in the form gs://bucketName/fileName. If the file already exists, the operation fails. If the filename ends with .gz, the contents are compressed.
+      "database": [ # Databases (for example, guestbook) from which the export is made. If unspecified, all databases are exported.
+        "A String",
+      ],
+    },
+    "instance": "A String", # Name of the database instance.
+    "state": "A String", # The state of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
+    "operationType": "A String", # The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME.
+    "error": [ # The error(s) encountered by this operation. Only set if the operation results in an error.
+      { # Database instance operation error.
+        "kind": "sql#operationError", # This is always sql#operationError.
+        "code": "A String", # Identifies the specific error that occurred.
+      },
+    ],
+    "operation": "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.
+    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "enqueuedTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "userEmailAddress": "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.
+        "importContext": { # Database instance import context. # The context for import operation, if applicable.
+          "kind": "sql#importContext", # This is always sql#importContext.
+          "uri": [ # A path to the MySQL dump 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 also supported.
+            "A String",
+          ],
+          "database": "A String", # The database (for example, guestbook) to which the import is made. If not set, it is assumed that the database is specified in the file to be imported.
+        },
+        "kind": "sql#instanceOperation", # This is always sql#instanceOperation.
+        "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+        "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+          "table": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
+            "A String",
+          ],
+          "kind": "sql#exportContext", # This is always sql#exportContext.
+          "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored, or where it was already stored. The URI is in the form gs://bucketName/fileName. If the file already exists, the operation fails. If the filename ends with .gz, the contents are compressed.
+          "database": [ # Databases (for example, guestbook) from which the export is made. If unspecified, all databases are exported.
+            "A String",
+          ],
+        },
+        "instance": "A String", # Name of the database instance.
+        "state": "A String", # The state of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
+        "operationType": "A String", # The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME.
+        "error": [ # The error(s) encountered by this operation. Only set if the operation results in an error.
+          { # Database instance operation error.
+            "kind": "sql#operationError", # This is always sql#operationError.
+            "code": "A String", # Identifies the specific error that occurred.
+          },
+        ],
+        "operation": "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.
+        "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+        "enqueuedTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+        "userEmailAddress": "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_v1beta3.sslCerts.html b/docs/dyn/sqladmin_v1beta3.sslCerts.html
new file mode 100644
index 0000000..939ed82
--- /dev/null
+++ b/docs/dyn/sqladmin_v1beta3.sslCerts.html
@@ -0,0 +1,206 @@
+<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_v1beta3.html">Cloud SQL Administration API</a> . <a href="sqladmin_v1beta3.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:
+
+    { # SslCert delete response.
+    "kind": "sql#sslCertsDelete", # This is always sql#sslCertsDelete.
+    "operation": "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.
+  }</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", # Time when the certificate expires.
+    "createTime": "A String", # Time when the certificate was created.
+  }</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", # Time when the certificate expires.
+        "createTime": "A String", # Time when the certificate was created.
+      },
+    },
+    "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", # Time when the certificate expires.
+      "createTime": "A String", # Time when the certificate was created.
+    },
+  }</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", # Time when the certificate expires.
+        "createTime": "A String", # Time when the certificate was created.
+      },
+    ],
+    "kind": "sql#sslCertsList", # This is always sql#sslCertsList.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/sqladmin_v1beta3.tiers.html b/docs/dyn/sqladmin_v1beta3.tiers.html
new file mode 100644
index 0000000..b232569
--- /dev/null
+++ b/docs/dyn/sqladmin_v1beta3.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_v1beta3.html">Cloud SQL Administration API</a> . <a href="sqladmin_v1beta3.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/storage_v1beta2.bucketAccessControls.html b/docs/dyn/storage_v1beta2.bucketAccessControls.html
new file mode 100644
index 0000000..b150aea
--- /dev/null
+++ b/docs/dyn/storage_v1beta2.bucketAccessControls.html
@@ -0,0 +1,362 @@
+<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="storage_v1beta2.html">Cloud Storage API</a> . <a href="storage_v1beta2.bucketAccessControls.html">bucketAccessControls</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(bucket, entity)</a></code></p>
+<p class="firstline">Permanently deletes the ACL entry for the specified entity on the specified bucket.</p>
+<p class="toc_element">
+  <code><a href="#get">get(bucket, entity)</a></code></p>
+<p class="firstline">Returns the ACL entry for the specified entity on the specified bucket.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(bucket, body)</a></code></p>
+<p class="firstline">Creates a new ACL entry on the specified bucket.</p>
+<p class="toc_element">
+  <code><a href="#list">list(bucket)</a></code></p>
+<p class="firstline">Retrieves ACL entries on the specified bucket.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(bucket, entity, body)</a></code></p>
+<p class="firstline">Updates an ACL entry on the specified bucket. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(bucket, entity, body)</a></code></p>
+<p class="firstline">Updates an ACL entry on the specified bucket.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(bucket, entity)</code>
+  <pre>Permanently deletes the ACL entry for the specified entity on the specified bucket.
+
+Args:
+  bucket: string, Name of a bucket. (required)
+  entity: string, The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(bucket, entity)</code>
+  <pre>Returns the ACL entry for the specified entity on the specified bucket.
+
+Args:
+  bucket: string, Name of a bucket. (required)
+  entity: string, The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers. (required)
+
+Returns:
+  An object of the form:
+
+    { # An access-control entry.
+      "domain": "A String", # The domain associated with the entity, if any.
+      "bucket": "A String", # The name of the bucket.
+      "kind": "storage#bucketAccessControl", # The kind of item this is. For bucket access control entries, this is always storage#bucketAccessControl.
+      "entity": "A String", # The entity holding the permission, in one of the following forms:
+          # - user-userId
+          # - user-email
+          # - group-groupId
+          # - group-email
+          # - domain-domain
+          # - allUsers
+          # - allAuthenticatedUsers Examples:
+          # - The user liz@example.com would be user-liz@example.com.
+          # - The group example@googlegroups.com would be group-example@googlegroups.com.
+          # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+      "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+      "role": "A String", # The access permission for the entity. Can be READER, WRITER, or OWNER.
+      "id": "A String", # The ID of the access-control entry.
+      "entityId": "A String", # The ID for the entity, if any.
+      "email": "A String", # The email address associated with the entity, if any.
+      "selfLink": "A String", # The link to this access-control entry.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(bucket, body)</code>
+  <pre>Creates a new ACL entry on the specified bucket.
+
+Args:
+  bucket: string, Name of a bucket. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An access-control entry.
+    "domain": "A String", # The domain associated with the entity, if any.
+    "bucket": "A String", # The name of the bucket.
+    "kind": "storage#bucketAccessControl", # The kind of item this is. For bucket access control entries, this is always storage#bucketAccessControl.
+    "entity": "A String", # The entity holding the permission, in one of the following forms:
+        # - user-userId
+        # - user-email
+        # - group-groupId
+        # - group-email
+        # - domain-domain
+        # - allUsers
+        # - allAuthenticatedUsers Examples:
+        # - The user liz@example.com would be user-liz@example.com.
+        # - The group example@googlegroups.com would be group-example@googlegroups.com.
+        # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+    "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+    "role": "A String", # The access permission for the entity. Can be READER, WRITER, or OWNER.
+    "id": "A String", # The ID of the access-control entry.
+    "entityId": "A String", # The ID for the entity, if any.
+    "email": "A String", # The email address associated with the entity, if any.
+    "selfLink": "A String", # The link to this access-control entry.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An access-control entry.
+      "domain": "A String", # The domain associated with the entity, if any.
+      "bucket": "A String", # The name of the bucket.
+      "kind": "storage#bucketAccessControl", # The kind of item this is. For bucket access control entries, this is always storage#bucketAccessControl.
+      "entity": "A String", # The entity holding the permission, in one of the following forms:
+          # - user-userId
+          # - user-email
+          # - group-groupId
+          # - group-email
+          # - domain-domain
+          # - allUsers
+          # - allAuthenticatedUsers Examples:
+          # - The user liz@example.com would be user-liz@example.com.
+          # - The group example@googlegroups.com would be group-example@googlegroups.com.
+          # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+      "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+      "role": "A String", # The access permission for the entity. Can be READER, WRITER, or OWNER.
+      "id": "A String", # The ID of the access-control entry.
+      "entityId": "A String", # The ID for the entity, if any.
+      "email": "A String", # The email address associated with the entity, if any.
+      "selfLink": "A String", # The link to this access-control entry.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(bucket)</code>
+  <pre>Retrieves ACL entries on the specified bucket.
+
+Args:
+  bucket: string, Name of a bucket. (required)
+
+Returns:
+  An object of the form:
+
+    { # An access-control list.
+    "items": [ # The list of items.
+      { # An access-control entry.
+          "domain": "A String", # The domain associated with the entity, if any.
+          "bucket": "A String", # The name of the bucket.
+          "kind": "storage#bucketAccessControl", # The kind of item this is. For bucket access control entries, this is always storage#bucketAccessControl.
+          "entity": "A String", # The entity holding the permission, in one of the following forms:
+              # - user-userId
+              # - user-email
+              # - group-groupId
+              # - group-email
+              # - domain-domain
+              # - allUsers
+              # - allAuthenticatedUsers Examples:
+              # - The user liz@example.com would be user-liz@example.com.
+              # - The group example@googlegroups.com would be group-example@googlegroups.com.
+              # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+          "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+          "role": "A String", # The access permission for the entity. Can be READER, WRITER, or OWNER.
+          "id": "A String", # The ID of the access-control entry.
+          "entityId": "A String", # The ID for the entity, if any.
+          "email": "A String", # The email address associated with the entity, if any.
+          "selfLink": "A String", # The link to this access-control entry.
+        },
+    ],
+    "kind": "storage#bucketAccessControls", # The kind of item this is. For lists of bucket access control entries, this is always storage#bucketAccessControls.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(bucket, entity, body)</code>
+  <pre>Updates an ACL entry on the specified bucket. This method supports patch semantics.
+
+Args:
+  bucket: string, Name of a bucket. (required)
+  entity: string, The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An access-control entry.
+    "domain": "A String", # The domain associated with the entity, if any.
+    "bucket": "A String", # The name of the bucket.
+    "kind": "storage#bucketAccessControl", # The kind of item this is. For bucket access control entries, this is always storage#bucketAccessControl.
+    "entity": "A String", # The entity holding the permission, in one of the following forms:
+        # - user-userId
+        # - user-email
+        # - group-groupId
+        # - group-email
+        # - domain-domain
+        # - allUsers
+        # - allAuthenticatedUsers Examples:
+        # - The user liz@example.com would be user-liz@example.com.
+        # - The group example@googlegroups.com would be group-example@googlegroups.com.
+        # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+    "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+    "role": "A String", # The access permission for the entity. Can be READER, WRITER, or OWNER.
+    "id": "A String", # The ID of the access-control entry.
+    "entityId": "A String", # The ID for the entity, if any.
+    "email": "A String", # The email address associated with the entity, if any.
+    "selfLink": "A String", # The link to this access-control entry.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An access-control entry.
+      "domain": "A String", # The domain associated with the entity, if any.
+      "bucket": "A String", # The name of the bucket.
+      "kind": "storage#bucketAccessControl", # The kind of item this is. For bucket access control entries, this is always storage#bucketAccessControl.
+      "entity": "A String", # The entity holding the permission, in one of the following forms:
+          # - user-userId
+          # - user-email
+          # - group-groupId
+          # - group-email
+          # - domain-domain
+          # - allUsers
+          # - allAuthenticatedUsers Examples:
+          # - The user liz@example.com would be user-liz@example.com.
+          # - The group example@googlegroups.com would be group-example@googlegroups.com.
+          # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+      "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+      "role": "A String", # The access permission for the entity. Can be READER, WRITER, or OWNER.
+      "id": "A String", # The ID of the access-control entry.
+      "entityId": "A String", # The ID for the entity, if any.
+      "email": "A String", # The email address associated with the entity, if any.
+      "selfLink": "A String", # The link to this access-control entry.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(bucket, entity, body)</code>
+  <pre>Updates an ACL entry on the specified bucket.
+
+Args:
+  bucket: string, Name of a bucket. (required)
+  entity: string, The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An access-control entry.
+    "domain": "A String", # The domain associated with the entity, if any.
+    "bucket": "A String", # The name of the bucket.
+    "kind": "storage#bucketAccessControl", # The kind of item this is. For bucket access control entries, this is always storage#bucketAccessControl.
+    "entity": "A String", # The entity holding the permission, in one of the following forms:
+        # - user-userId
+        # - user-email
+        # - group-groupId
+        # - group-email
+        # - domain-domain
+        # - allUsers
+        # - allAuthenticatedUsers Examples:
+        # - The user liz@example.com would be user-liz@example.com.
+        # - The group example@googlegroups.com would be group-example@googlegroups.com.
+        # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+    "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+    "role": "A String", # The access permission for the entity. Can be READER, WRITER, or OWNER.
+    "id": "A String", # The ID of the access-control entry.
+    "entityId": "A String", # The ID for the entity, if any.
+    "email": "A String", # The email address associated with the entity, if any.
+    "selfLink": "A String", # The link to this access-control entry.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An access-control entry.
+      "domain": "A String", # The domain associated with the entity, if any.
+      "bucket": "A String", # The name of the bucket.
+      "kind": "storage#bucketAccessControl", # The kind of item this is. For bucket access control entries, this is always storage#bucketAccessControl.
+      "entity": "A String", # The entity holding the permission, in one of the following forms:
+          # - user-userId
+          # - user-email
+          # - group-groupId
+          # - group-email
+          # - domain-domain
+          # - allUsers
+          # - allAuthenticatedUsers Examples:
+          # - The user liz@example.com would be user-liz@example.com.
+          # - The group example@googlegroups.com would be group-example@googlegroups.com.
+          # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+      "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+      "role": "A String", # The access permission for the entity. Can be READER, WRITER, or OWNER.
+      "id": "A String", # The ID of the access-control entry.
+      "entityId": "A String", # The ID for the entity, if any.
+      "email": "A String", # The email address associated with the entity, if any.
+      "selfLink": "A String", # The link to this access-control entry.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/storage_v1beta2.buckets.html b/docs/dyn/storage_v1beta2.buckets.html
new file mode 100644
index 0000000..968b224
--- /dev/null
+++ b/docs/dyn/storage_v1beta2.buckets.html
@@ -0,0 +1,1070 @@
+<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="storage_v1beta2.html">Cloud Storage API</a> . <a href="storage_v1beta2.buckets.html">buckets</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(bucket, ifMetagenerationMatch=None, ifMetagenerationNotMatch=None)</a></code></p>
+<p class="firstline">Permanently deletes an empty bucket.</p>
+<p class="toc_element">
+  <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)</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>
+<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, 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, ifMetagenerationNotMatch=None)</a></code></p>
+<p class="firstline">Updates a bucket.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(bucket, ifMetagenerationMatch=None, ifMetagenerationNotMatch=None)</code>
+  <pre>Permanently deletes an empty bucket.
+
+Args:
+  bucket: string, Name of a bucket. (required)
+  ifMetagenerationMatch: string, Makes the return of the bucket metadata conditional on whether the bucket's current metageneration matches the given value.
+  ifMetagenerationNotMatch: string, Makes the return of the bucket metadata conditional on whether the bucket's current metageneration does not match the given value.
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(bucket, projection=None, ifMetagenerationMatch=None, ifMetagenerationNotMatch=None)</code>
+  <pre>Returns metadata for the specified bucket.
+
+Args:
+  bucket: string, Name of a bucket. (required)
+  projection: string, Set of properties to return. Defaults to noAcl.
+    Allowed values
+      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.
+  ifMetagenerationNotMatch: string, Makes the return of the bucket metadata conditional on whether the bucket's current metageneration does not match the given value.
+
+Returns:
+  An object of the form:
+
+    { # A bucket.
+      "website": { # The bucket's website configuration.
+        "notFoundPage": "A String", # The custom object to return when a requested resource is not found.
+        "mainPageSuffix": "A String", # Behaves as the bucket's directory index where missing objects are treated as potential directories.
+      },
+      "kind": "storage#bucket", # The kind of item this is. For buckets, this is always storage#bucket.
+      "logging": { # The bucket's logging configuration, which defines the destination bucket and optional name prefix for the current bucket's logs.
+        "logObjectPrefix": "A String", # A prefix for log object names.
+        "logBucket": "A String", # The destination bucket where the current bucket's logs should be placed.
+      },
+      "name": "A String", # The name of the bucket.
+      "metageneration": "A String", # The metadata generation of this bucket.
+      "timeCreated": "A String", # Creation time of the bucket in RFC 3339 format.
+      "versioning": { # The bucket's versioning configuration.
+        "enabled": True or False, # While set to true, versioning is fully enabled for this bucket.
+      },
+      "acl": [ # Access controls on the bucket.
+        { # An access-control entry.
+            "domain": "A String", # The domain associated with the entity, if any.
+            "bucket": "A String", # The name of the bucket.
+            "kind": "storage#bucketAccessControl", # The kind of item this is. For bucket access control entries, this is always storage#bucketAccessControl.
+            "entity": "A String", # The entity holding the permission, in one of the following forms:
+                # - user-userId
+                # - user-email
+                # - group-groupId
+                # - group-email
+                # - domain-domain
+                # - allUsers
+                # - allAuthenticatedUsers Examples:
+                # - The user liz@example.com would be user-liz@example.com.
+                # - The group example@googlegroups.com would be group-example@googlegroups.com.
+                # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+            "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+            "role": "A String", # The access permission for the entity. Can be READER, WRITER, or OWNER.
+            "id": "A String", # The ID of the access-control entry.
+            "entityId": "A String", # The ID for the entity, if any.
+            "email": "A String", # The email address associated with the entity, if any.
+            "selfLink": "A String", # The link to this access-control entry.
+          },
+      ],
+      "defaultObjectAcl": [ # Default access controls to apply to new objects when no ACL is provided.
+        { # An access-control entry.
+          "domain": "A String", # The domain associated with the entity, if any.
+          "generation": "A String", # The content generation of the object.
+          "object": "A String", # The name of the object.
+          "bucket": "A String", # The name of the bucket.
+          "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+          "entity": "A String", # The entity holding the permission, in one of the following forms:
+              # - user-userId
+              # - user-email
+              # - group-groupId
+              # - group-email
+              # - domain-domain
+              # - allUsers
+              # - allAuthenticatedUsers Examples:
+              # - The user liz@example.com would be user-liz@example.com.
+              # - The group example@googlegroups.com would be group-example@googlegroups.com.
+              # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+          "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+          "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+          "id": "A String", # The ID of the access-control entry.
+          "entityId": "A String", # The ID for the entity, if any.
+          "email": "A String", # The email address associated with the entity, if any.
+          "selfLink": "A String", # The link to this access-control entry.
+        },
+      ],
+      "etag": "A String", # HTTP 1.1 Entity tag for the bucket.
+      "location": "A String", # The location of the bucket. Object data for objects in the bucket resides in physical storage within this region. Typical values are US and EU. Defaults to US. See the developer's guide for the authoritative list.
+      "cors": [ # The bucket's Cross-Origin Resource Sharing (CORS) configuration.
+        {
+          "origin": [ # The list of Origins eligible to receive CORS response headers. Note: "*" is permitted in the list of origins, and means "any Origin".
+            "A String",
+          ],
+          "responseHeader": [ # The list of HTTP headers other than the simple response headers to give permission for the user-agent to share across domains.
+            "A String",
+          ],
+          "method": [ # The list of HTTP methods on which to include CORS response headers, e.g. GET, OPTIONS, POST. Note, "*" is permitted in the list of methods, and means "any method".
+            "A String",
+          ],
+          "maxAgeSeconds": 42, # The value, in seconds, to return in the  Access-Control-Max-Age header used in preflight responses.
+        },
+      ],
+      "owner": { # The owner of the bucket. This will always be the project team's owner group.
+        "entityId": "A String", # The ID for the entity.
+        "entity": "A String", # The entity, in the form group-groupId.
+      },
+      "lifecycle": { # The bucket's lifecycle configuration. See object lifecycle management for more information.
+        "rule": [ # A lifecycle management rule, which is made of an action to take and the condition(s) under which the action will be taken.
+          {
+            "action": { # The action to take.
+              "type": "A String", # Type of the action, e.g. Delete.
+            },
+            "condition": { # The condition(s) under which the action will be taken.
+              "isLive": True or False, # Relevant only for versioned objects. If the value is true, this condition matches live objects; if the value is false, it matches archived objects.
+              "numNewerVersions": 42, # Relevant only for versioned objects. If the value is N, this condition is satisfied when there are at least N versions (including the live version) newer than this version of the object.
+              "age": 42, # Age of an object (in days). This condition is satisfied when an object reaches the specified age.
+              "createdBefore": "A String", # A date in RFC 3339 format with only the date part, e.g. "2013-01-15". This condition is satisfied when an object is created before midnight of the specified date in UTC.
+            },
+          },
+        ],
+      },
+      "id": "A String", # The ID of the bucket.
+      "selfLink": "A String", # The URI of this bucket.
+      "storageClass": "A String", # The bucket's storage class. This defines how objects in the bucket will be stored and determines the SLA and the cost of storage. Typical values are STANDARD and DURABLE_REDUCED_AVAILABILITY. Defaults to STANDARD. See the developer's guide for the authoritative list.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(project, body, projection=None)</code>
+  <pre>Creates a new bucket.
+
+Args:
+  project: string, A valid API project identifier. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A bucket.
+    "website": { # The bucket's website configuration.
+      "notFoundPage": "A String", # The custom object to return when a requested resource is not found.
+      "mainPageSuffix": "A String", # Behaves as the bucket's directory index where missing objects are treated as potential directories.
+    },
+    "kind": "storage#bucket", # The kind of item this is. For buckets, this is always storage#bucket.
+    "logging": { # The bucket's logging configuration, which defines the destination bucket and optional name prefix for the current bucket's logs.
+      "logObjectPrefix": "A String", # A prefix for log object names.
+      "logBucket": "A String", # The destination bucket where the current bucket's logs should be placed.
+    },
+    "name": "A String", # The name of the bucket.
+    "metageneration": "A String", # The metadata generation of this bucket.
+    "timeCreated": "A String", # Creation time of the bucket in RFC 3339 format.
+    "versioning": { # The bucket's versioning configuration.
+      "enabled": True or False, # While set to true, versioning is fully enabled for this bucket.
+    },
+    "acl": [ # Access controls on the bucket.
+      { # An access-control entry.
+          "domain": "A String", # The domain associated with the entity, if any.
+          "bucket": "A String", # The name of the bucket.
+          "kind": "storage#bucketAccessControl", # The kind of item this is. For bucket access control entries, this is always storage#bucketAccessControl.
+          "entity": "A String", # The entity holding the permission, in one of the following forms:
+              # - user-userId
+              # - user-email
+              # - group-groupId
+              # - group-email
+              # - domain-domain
+              # - allUsers
+              # - allAuthenticatedUsers Examples:
+              # - The user liz@example.com would be user-liz@example.com.
+              # - The group example@googlegroups.com would be group-example@googlegroups.com.
+              # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+          "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+          "role": "A String", # The access permission for the entity. Can be READER, WRITER, or OWNER.
+          "id": "A String", # The ID of the access-control entry.
+          "entityId": "A String", # The ID for the entity, if any.
+          "email": "A String", # The email address associated with the entity, if any.
+          "selfLink": "A String", # The link to this access-control entry.
+        },
+    ],
+    "defaultObjectAcl": [ # Default access controls to apply to new objects when no ACL is provided.
+      { # An access-control entry.
+        "domain": "A String", # The domain associated with the entity, if any.
+        "generation": "A String", # The content generation of the object.
+        "object": "A String", # The name of the object.
+        "bucket": "A String", # The name of the bucket.
+        "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+        "entity": "A String", # The entity holding the permission, in one of the following forms:
+            # - user-userId
+            # - user-email
+            # - group-groupId
+            # - group-email
+            # - domain-domain
+            # - allUsers
+            # - allAuthenticatedUsers Examples:
+            # - The user liz@example.com would be user-liz@example.com.
+            # - The group example@googlegroups.com would be group-example@googlegroups.com.
+            # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+        "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+        "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+        "id": "A String", # The ID of the access-control entry.
+        "entityId": "A String", # The ID for the entity, if any.
+        "email": "A String", # The email address associated with the entity, if any.
+        "selfLink": "A String", # The link to this access-control entry.
+      },
+    ],
+    "etag": "A String", # HTTP 1.1 Entity tag for the bucket.
+    "location": "A String", # The location of the bucket. Object data for objects in the bucket resides in physical storage within this region. Typical values are US and EU. Defaults to US. See the developer's guide for the authoritative list.
+    "cors": [ # The bucket's Cross-Origin Resource Sharing (CORS) configuration.
+      {
+        "origin": [ # The list of Origins eligible to receive CORS response headers. Note: "*" is permitted in the list of origins, and means "any Origin".
+          "A String",
+        ],
+        "responseHeader": [ # The list of HTTP headers other than the simple response headers to give permission for the user-agent to share across domains.
+          "A String",
+        ],
+        "method": [ # The list of HTTP methods on which to include CORS response headers, e.g. GET, OPTIONS, POST. Note, "*" is permitted in the list of methods, and means "any method".
+          "A String",
+        ],
+        "maxAgeSeconds": 42, # The value, in seconds, to return in the  Access-Control-Max-Age header used in preflight responses.
+      },
+    ],
+    "owner": { # The owner of the bucket. This will always be the project team's owner group.
+      "entityId": "A String", # The ID for the entity.
+      "entity": "A String", # The entity, in the form group-groupId.
+    },
+    "lifecycle": { # The bucket's lifecycle configuration. See object lifecycle management for more information.
+      "rule": [ # A lifecycle management rule, which is made of an action to take and the condition(s) under which the action will be taken.
+        {
+          "action": { # The action to take.
+            "type": "A String", # Type of the action, e.g. Delete.
+          },
+          "condition": { # The condition(s) under which the action will be taken.
+            "isLive": True or False, # Relevant only for versioned objects. If the value is true, this condition matches live objects; if the value is false, it matches archived objects.
+            "numNewerVersions": 42, # Relevant only for versioned objects. If the value is N, this condition is satisfied when there are at least N versions (including the live version) newer than this version of the object.
+            "age": 42, # Age of an object (in days). This condition is satisfied when an object reaches the specified age.
+            "createdBefore": "A String", # A date in RFC 3339 format with only the date part, e.g. "2013-01-15". This condition is satisfied when an object is created before midnight of the specified date in UTC.
+          },
+        },
+      ],
+    },
+    "id": "A String", # The ID of the bucket.
+    "selfLink": "A String", # The URI of this bucket.
+    "storageClass": "A String", # The bucket's storage class. This defines how objects in the bucket will be stored and determines the SLA and the cost of storage. Typical values are STANDARD and DURABLE_REDUCED_AVAILABILITY. Defaults to STANDARD. See the developer's guide for the authoritative list.
+  }
+
+  projection: string, Set of properties to return. Defaults to noAcl, unless the bucket resource specifies acl or defaultObjectAcl properties, when it defaults to full.
+    Allowed values
+      full - Include all properties.
+      noAcl - Omit acl and defaultObjectAcl properties.
+
+Returns:
+  An object of the form:
+
+    { # A bucket.
+      "website": { # The bucket's website configuration.
+        "notFoundPage": "A String", # The custom object to return when a requested resource is not found.
+        "mainPageSuffix": "A String", # Behaves as the bucket's directory index where missing objects are treated as potential directories.
+      },
+      "kind": "storage#bucket", # The kind of item this is. For buckets, this is always storage#bucket.
+      "logging": { # The bucket's logging configuration, which defines the destination bucket and optional name prefix for the current bucket's logs.
+        "logObjectPrefix": "A String", # A prefix for log object names.
+        "logBucket": "A String", # The destination bucket where the current bucket's logs should be placed.
+      },
+      "name": "A String", # The name of the bucket.
+      "metageneration": "A String", # The metadata generation of this bucket.
+      "timeCreated": "A String", # Creation time of the bucket in RFC 3339 format.
+      "versioning": { # The bucket's versioning configuration.
+        "enabled": True or False, # While set to true, versioning is fully enabled for this bucket.
+      },
+      "acl": [ # Access controls on the bucket.
+        { # An access-control entry.
+            "domain": "A String", # The domain associated with the entity, if any.
+            "bucket": "A String", # The name of the bucket.
+            "kind": "storage#bucketAccessControl", # The kind of item this is. For bucket access control entries, this is always storage#bucketAccessControl.
+            "entity": "A String", # The entity holding the permission, in one of the following forms:
+                # - user-userId
+                # - user-email
+                # - group-groupId
+                # - group-email
+                # - domain-domain
+                # - allUsers
+                # - allAuthenticatedUsers Examples:
+                # - The user liz@example.com would be user-liz@example.com.
+                # - The group example@googlegroups.com would be group-example@googlegroups.com.
+                # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+            "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+            "role": "A String", # The access permission for the entity. Can be READER, WRITER, or OWNER.
+            "id": "A String", # The ID of the access-control entry.
+            "entityId": "A String", # The ID for the entity, if any.
+            "email": "A String", # The email address associated with the entity, if any.
+            "selfLink": "A String", # The link to this access-control entry.
+          },
+      ],
+      "defaultObjectAcl": [ # Default access controls to apply to new objects when no ACL is provided.
+        { # An access-control entry.
+          "domain": "A String", # The domain associated with the entity, if any.
+          "generation": "A String", # The content generation of the object.
+          "object": "A String", # The name of the object.
+          "bucket": "A String", # The name of the bucket.
+          "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+          "entity": "A String", # The entity holding the permission, in one of the following forms:
+              # - user-userId
+              # - user-email
+              # - group-groupId
+              # - group-email
+              # - domain-domain
+              # - allUsers
+              # - allAuthenticatedUsers Examples:
+              # - The user liz@example.com would be user-liz@example.com.
+              # - The group example@googlegroups.com would be group-example@googlegroups.com.
+              # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+          "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+          "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+          "id": "A String", # The ID of the access-control entry.
+          "entityId": "A String", # The ID for the entity, if any.
+          "email": "A String", # The email address associated with the entity, if any.
+          "selfLink": "A String", # The link to this access-control entry.
+        },
+      ],
+      "etag": "A String", # HTTP 1.1 Entity tag for the bucket.
+      "location": "A String", # The location of the bucket. Object data for objects in the bucket resides in physical storage within this region. Typical values are US and EU. Defaults to US. See the developer's guide for the authoritative list.
+      "cors": [ # The bucket's Cross-Origin Resource Sharing (CORS) configuration.
+        {
+          "origin": [ # The list of Origins eligible to receive CORS response headers. Note: "*" is permitted in the list of origins, and means "any Origin".
+            "A String",
+          ],
+          "responseHeader": [ # The list of HTTP headers other than the simple response headers to give permission for the user-agent to share across domains.
+            "A String",
+          ],
+          "method": [ # The list of HTTP methods on which to include CORS response headers, e.g. GET, OPTIONS, POST. Note, "*" is permitted in the list of methods, and means "any method".
+            "A String",
+          ],
+          "maxAgeSeconds": 42, # The value, in seconds, to return in the  Access-Control-Max-Age header used in preflight responses.
+        },
+      ],
+      "owner": { # The owner of the bucket. This will always be the project team's owner group.
+        "entityId": "A String", # The ID for the entity.
+        "entity": "A String", # The entity, in the form group-groupId.
+      },
+      "lifecycle": { # The bucket's lifecycle configuration. See object lifecycle management for more information.
+        "rule": [ # A lifecycle management rule, which is made of an action to take and the condition(s) under which the action will be taken.
+          {
+            "action": { # The action to take.
+              "type": "A String", # Type of the action, e.g. Delete.
+            },
+            "condition": { # The condition(s) under which the action will be taken.
+              "isLive": True or False, # Relevant only for versioned objects. If the value is true, this condition matches live objects; if the value is false, it matches archived objects.
+              "numNewerVersions": 42, # Relevant only for versioned objects. If the value is N, this condition is satisfied when there are at least N versions (including the live version) newer than this version of the object.
+              "age": 42, # Age of an object (in days). This condition is satisfied when an object reaches the specified age.
+              "createdBefore": "A String", # A date in RFC 3339 format with only the date part, e.g. "2013-01-15". This condition is satisfied when an object is created before midnight of the specified date in UTC.
+            },
+          },
+        ],
+      },
+      "id": "A String", # The ID of the bucket.
+      "selfLink": "A String", # The URI of this bucket.
+      "storageClass": "A String", # The bucket's storage class. This defines how objects in the bucket will be stored and determines the SLA and the cost of storage. Typical values are STANDARD and DURABLE_REDUCED_AVAILABILITY. Defaults to STANDARD. See the developer's guide for the authoritative list.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, projection=None, pageToken=None, maxResults=None)</code>
+  <pre>Retrieves a list of buckets for a given project.
+
+Args:
+  project: string, A valid API project identifier. (required)
+  projection: string, Set of properties to return. Defaults to noAcl.
+    Allowed values
+      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.
+  maxResults: integer, Maximum number of buckets to return.
+
+Returns:
+  An object of the form:
+
+    { # A list of buckets.
+    "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": [ # The list of items.
+      { # A bucket.
+          "website": { # The bucket's website configuration.
+            "notFoundPage": "A String", # The custom object to return when a requested resource is not found.
+            "mainPageSuffix": "A String", # Behaves as the bucket's directory index where missing objects are treated as potential directories.
+          },
+          "kind": "storage#bucket", # The kind of item this is. For buckets, this is always storage#bucket.
+          "logging": { # The bucket's logging configuration, which defines the destination bucket and optional name prefix for the current bucket's logs.
+            "logObjectPrefix": "A String", # A prefix for log object names.
+            "logBucket": "A String", # The destination bucket where the current bucket's logs should be placed.
+          },
+          "name": "A String", # The name of the bucket.
+          "metageneration": "A String", # The metadata generation of this bucket.
+          "timeCreated": "A String", # Creation time of the bucket in RFC 3339 format.
+          "versioning": { # The bucket's versioning configuration.
+            "enabled": True or False, # While set to true, versioning is fully enabled for this bucket.
+          },
+          "acl": [ # Access controls on the bucket.
+            { # An access-control entry.
+                "domain": "A String", # The domain associated with the entity, if any.
+                "bucket": "A String", # The name of the bucket.
+                "kind": "storage#bucketAccessControl", # The kind of item this is. For bucket access control entries, this is always storage#bucketAccessControl.
+                "entity": "A String", # The entity holding the permission, in one of the following forms:
+                    # - user-userId
+                    # - user-email
+                    # - group-groupId
+                    # - group-email
+                    # - domain-domain
+                    # - allUsers
+                    # - allAuthenticatedUsers Examples:
+                    # - The user liz@example.com would be user-liz@example.com.
+                    # - The group example@googlegroups.com would be group-example@googlegroups.com.
+                    # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+                "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+                "role": "A String", # The access permission for the entity. Can be READER, WRITER, or OWNER.
+                "id": "A String", # The ID of the access-control entry.
+                "entityId": "A String", # The ID for the entity, if any.
+                "email": "A String", # The email address associated with the entity, if any.
+                "selfLink": "A String", # The link to this access-control entry.
+              },
+          ],
+          "defaultObjectAcl": [ # Default access controls to apply to new objects when no ACL is provided.
+            { # An access-control entry.
+              "domain": "A String", # The domain associated with the entity, if any.
+              "generation": "A String", # The content generation of the object.
+              "object": "A String", # The name of the object.
+              "bucket": "A String", # The name of the bucket.
+              "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+              "entity": "A String", # The entity holding the permission, in one of the following forms:
+                  # - user-userId
+                  # - user-email
+                  # - group-groupId
+                  # - group-email
+                  # - domain-domain
+                  # - allUsers
+                  # - allAuthenticatedUsers Examples:
+                  # - The user liz@example.com would be user-liz@example.com.
+                  # - The group example@googlegroups.com would be group-example@googlegroups.com.
+                  # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+              "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+              "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+              "id": "A String", # The ID of the access-control entry.
+              "entityId": "A String", # The ID for the entity, if any.
+              "email": "A String", # The email address associated with the entity, if any.
+              "selfLink": "A String", # The link to this access-control entry.
+            },
+          ],
+          "etag": "A String", # HTTP 1.1 Entity tag for the bucket.
+          "location": "A String", # The location of the bucket. Object data for objects in the bucket resides in physical storage within this region. Typical values are US and EU. Defaults to US. See the developer's guide for the authoritative list.
+          "cors": [ # The bucket's Cross-Origin Resource Sharing (CORS) configuration.
+            {
+              "origin": [ # The list of Origins eligible to receive CORS response headers. Note: "*" is permitted in the list of origins, and means "any Origin".
+                "A String",
+              ],
+              "responseHeader": [ # The list of HTTP headers other than the simple response headers to give permission for the user-agent to share across domains.
+                "A String",
+              ],
+              "method": [ # The list of HTTP methods on which to include CORS response headers, e.g. GET, OPTIONS, POST. Note, "*" is permitted in the list of methods, and means "any method".
+                "A String",
+              ],
+              "maxAgeSeconds": 42, # The value, in seconds, to return in the  Access-Control-Max-Age header used in preflight responses.
+            },
+          ],
+          "owner": { # The owner of the bucket. This will always be the project team's owner group.
+            "entityId": "A String", # The ID for the entity.
+            "entity": "A String", # The entity, in the form group-groupId.
+          },
+          "lifecycle": { # The bucket's lifecycle configuration. See object lifecycle management for more information.
+            "rule": [ # A lifecycle management rule, which is made of an action to take and the condition(s) under which the action will be taken.
+              {
+                "action": { # The action to take.
+                  "type": "A String", # Type of the action, e.g. Delete.
+                },
+                "condition": { # The condition(s) under which the action will be taken.
+                  "isLive": True or False, # Relevant only for versioned objects. If the value is true, this condition matches live objects; if the value is false, it matches archived objects.
+                  "numNewerVersions": 42, # Relevant only for versioned objects. If the value is N, this condition is satisfied when there are at least N versions (including the live version) newer than this version of the object.
+                  "age": 42, # Age of an object (in days). This condition is satisfied when an object reaches the specified age.
+                  "createdBefore": "A String", # A date in RFC 3339 format with only the date part, e.g. "2013-01-15". This condition is satisfied when an object is created before midnight of the specified date in UTC.
+                },
+              },
+            ],
+          },
+          "id": "A String", # The ID of the bucket.
+          "selfLink": "A String", # The URI of this bucket.
+          "storageClass": "A String", # The bucket's storage class. This defines how objects in the bucket will be stored and determines the SLA and the cost of storage. Typical values are STANDARD and DURABLE_REDUCED_AVAILABILITY. Defaults to STANDARD. See the developer's guide for the authoritative list.
+        },
+    ],
+    "kind": "storage#buckets", # The kind of item this is. For lists of buckets, this is always storage#buckets.
+  }</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(bucket, body, projection=None, ifMetagenerationMatch=None, ifMetagenerationNotMatch=None)</code>
+  <pre>Updates a bucket. This method supports patch semantics.
+
+Args:
+  bucket: string, Name of a bucket. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A bucket.
+    "website": { # The bucket's website configuration.
+      "notFoundPage": "A String", # The custom object to return when a requested resource is not found.
+      "mainPageSuffix": "A String", # Behaves as the bucket's directory index where missing objects are treated as potential directories.
+    },
+    "kind": "storage#bucket", # The kind of item this is. For buckets, this is always storage#bucket.
+    "logging": { # The bucket's logging configuration, which defines the destination bucket and optional name prefix for the current bucket's logs.
+      "logObjectPrefix": "A String", # A prefix for log object names.
+      "logBucket": "A String", # The destination bucket where the current bucket's logs should be placed.
+    },
+    "name": "A String", # The name of the bucket.
+    "metageneration": "A String", # The metadata generation of this bucket.
+    "timeCreated": "A String", # Creation time of the bucket in RFC 3339 format.
+    "versioning": { # The bucket's versioning configuration.
+      "enabled": True or False, # While set to true, versioning is fully enabled for this bucket.
+    },
+    "acl": [ # Access controls on the bucket.
+      { # An access-control entry.
+          "domain": "A String", # The domain associated with the entity, if any.
+          "bucket": "A String", # The name of the bucket.
+          "kind": "storage#bucketAccessControl", # The kind of item this is. For bucket access control entries, this is always storage#bucketAccessControl.
+          "entity": "A String", # The entity holding the permission, in one of the following forms:
+              # - user-userId
+              # - user-email
+              # - group-groupId
+              # - group-email
+              # - domain-domain
+              # - allUsers
+              # - allAuthenticatedUsers Examples:
+              # - The user liz@example.com would be user-liz@example.com.
+              # - The group example@googlegroups.com would be group-example@googlegroups.com.
+              # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+          "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+          "role": "A String", # The access permission for the entity. Can be READER, WRITER, or OWNER.
+          "id": "A String", # The ID of the access-control entry.
+          "entityId": "A String", # The ID for the entity, if any.
+          "email": "A String", # The email address associated with the entity, if any.
+          "selfLink": "A String", # The link to this access-control entry.
+        },
+    ],
+    "defaultObjectAcl": [ # Default access controls to apply to new objects when no ACL is provided.
+      { # An access-control entry.
+        "domain": "A String", # The domain associated with the entity, if any.
+        "generation": "A String", # The content generation of the object.
+        "object": "A String", # The name of the object.
+        "bucket": "A String", # The name of the bucket.
+        "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+        "entity": "A String", # The entity holding the permission, in one of the following forms:
+            # - user-userId
+            # - user-email
+            # - group-groupId
+            # - group-email
+            # - domain-domain
+            # - allUsers
+            # - allAuthenticatedUsers Examples:
+            # - The user liz@example.com would be user-liz@example.com.
+            # - The group example@googlegroups.com would be group-example@googlegroups.com.
+            # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+        "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+        "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+        "id": "A String", # The ID of the access-control entry.
+        "entityId": "A String", # The ID for the entity, if any.
+        "email": "A String", # The email address associated with the entity, if any.
+        "selfLink": "A String", # The link to this access-control entry.
+      },
+    ],
+    "etag": "A String", # HTTP 1.1 Entity tag for the bucket.
+    "location": "A String", # The location of the bucket. Object data for objects in the bucket resides in physical storage within this region. Typical values are US and EU. Defaults to US. See the developer's guide for the authoritative list.
+    "cors": [ # The bucket's Cross-Origin Resource Sharing (CORS) configuration.
+      {
+        "origin": [ # The list of Origins eligible to receive CORS response headers. Note: "*" is permitted in the list of origins, and means "any Origin".
+          "A String",
+        ],
+        "responseHeader": [ # The list of HTTP headers other than the simple response headers to give permission for the user-agent to share across domains.
+          "A String",
+        ],
+        "method": [ # The list of HTTP methods on which to include CORS response headers, e.g. GET, OPTIONS, POST. Note, "*" is permitted in the list of methods, and means "any method".
+          "A String",
+        ],
+        "maxAgeSeconds": 42, # The value, in seconds, to return in the  Access-Control-Max-Age header used in preflight responses.
+      },
+    ],
+    "owner": { # The owner of the bucket. This will always be the project team's owner group.
+      "entityId": "A String", # The ID for the entity.
+      "entity": "A String", # The entity, in the form group-groupId.
+    },
+    "lifecycle": { # The bucket's lifecycle configuration. See object lifecycle management for more information.
+      "rule": [ # A lifecycle management rule, which is made of an action to take and the condition(s) under which the action will be taken.
+        {
+          "action": { # The action to take.
+            "type": "A String", # Type of the action, e.g. Delete.
+          },
+          "condition": { # The condition(s) under which the action will be taken.
+            "isLive": True or False, # Relevant only for versioned objects. If the value is true, this condition matches live objects; if the value is false, it matches archived objects.
+            "numNewerVersions": 42, # Relevant only for versioned objects. If the value is N, this condition is satisfied when there are at least N versions (including the live version) newer than this version of the object.
+            "age": 42, # Age of an object (in days). This condition is satisfied when an object reaches the specified age.
+            "createdBefore": "A String", # A date in RFC 3339 format with only the date part, e.g. "2013-01-15". This condition is satisfied when an object is created before midnight of the specified date in UTC.
+          },
+        },
+      ],
+    },
+    "id": "A String", # The ID of the bucket.
+    "selfLink": "A String", # The URI of this bucket.
+    "storageClass": "A String", # The bucket's storage class. This defines how objects in the bucket will be stored and determines the SLA and the cost of storage. Typical values are STANDARD and DURABLE_REDUCED_AVAILABILITY. Defaults to STANDARD. See the developer's guide for the authoritative list.
+  }
+
+  projection: string, Set of properties to return. Defaults to full.
+    Allowed values
+      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.
+  ifMetagenerationNotMatch: string, Makes the return of the bucket metadata conditional on whether the bucket's current metageneration does not match the given value.
+
+Returns:
+  An object of the form:
+
+    { # A bucket.
+      "website": { # The bucket's website configuration.
+        "notFoundPage": "A String", # The custom object to return when a requested resource is not found.
+        "mainPageSuffix": "A String", # Behaves as the bucket's directory index where missing objects are treated as potential directories.
+      },
+      "kind": "storage#bucket", # The kind of item this is. For buckets, this is always storage#bucket.
+      "logging": { # The bucket's logging configuration, which defines the destination bucket and optional name prefix for the current bucket's logs.
+        "logObjectPrefix": "A String", # A prefix for log object names.
+        "logBucket": "A String", # The destination bucket where the current bucket's logs should be placed.
+      },
+      "name": "A String", # The name of the bucket.
+      "metageneration": "A String", # The metadata generation of this bucket.
+      "timeCreated": "A String", # Creation time of the bucket in RFC 3339 format.
+      "versioning": { # The bucket's versioning configuration.
+        "enabled": True or False, # While set to true, versioning is fully enabled for this bucket.
+      },
+      "acl": [ # Access controls on the bucket.
+        { # An access-control entry.
+            "domain": "A String", # The domain associated with the entity, if any.
+            "bucket": "A String", # The name of the bucket.
+            "kind": "storage#bucketAccessControl", # The kind of item this is. For bucket access control entries, this is always storage#bucketAccessControl.
+            "entity": "A String", # The entity holding the permission, in one of the following forms:
+                # - user-userId
+                # - user-email
+                # - group-groupId
+                # - group-email
+                # - domain-domain
+                # - allUsers
+                # - allAuthenticatedUsers Examples:
+                # - The user liz@example.com would be user-liz@example.com.
+                # - The group example@googlegroups.com would be group-example@googlegroups.com.
+                # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+            "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+            "role": "A String", # The access permission for the entity. Can be READER, WRITER, or OWNER.
+            "id": "A String", # The ID of the access-control entry.
+            "entityId": "A String", # The ID for the entity, if any.
+            "email": "A String", # The email address associated with the entity, if any.
+            "selfLink": "A String", # The link to this access-control entry.
+          },
+      ],
+      "defaultObjectAcl": [ # Default access controls to apply to new objects when no ACL is provided.
+        { # An access-control entry.
+          "domain": "A String", # The domain associated with the entity, if any.
+          "generation": "A String", # The content generation of the object.
+          "object": "A String", # The name of the object.
+          "bucket": "A String", # The name of the bucket.
+          "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+          "entity": "A String", # The entity holding the permission, in one of the following forms:
+              # - user-userId
+              # - user-email
+              # - group-groupId
+              # - group-email
+              # - domain-domain
+              # - allUsers
+              # - allAuthenticatedUsers Examples:
+              # - The user liz@example.com would be user-liz@example.com.
+              # - The group example@googlegroups.com would be group-example@googlegroups.com.
+              # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+          "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+          "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+          "id": "A String", # The ID of the access-control entry.
+          "entityId": "A String", # The ID for the entity, if any.
+          "email": "A String", # The email address associated with the entity, if any.
+          "selfLink": "A String", # The link to this access-control entry.
+        },
+      ],
+      "etag": "A String", # HTTP 1.1 Entity tag for the bucket.
+      "location": "A String", # The location of the bucket. Object data for objects in the bucket resides in physical storage within this region. Typical values are US and EU. Defaults to US. See the developer's guide for the authoritative list.
+      "cors": [ # The bucket's Cross-Origin Resource Sharing (CORS) configuration.
+        {
+          "origin": [ # The list of Origins eligible to receive CORS response headers. Note: "*" is permitted in the list of origins, and means "any Origin".
+            "A String",
+          ],
+          "responseHeader": [ # The list of HTTP headers other than the simple response headers to give permission for the user-agent to share across domains.
+            "A String",
+          ],
+          "method": [ # The list of HTTP methods on which to include CORS response headers, e.g. GET, OPTIONS, POST. Note, "*" is permitted in the list of methods, and means "any method".
+            "A String",
+          ],
+          "maxAgeSeconds": 42, # The value, in seconds, to return in the  Access-Control-Max-Age header used in preflight responses.
+        },
+      ],
+      "owner": { # The owner of the bucket. This will always be the project team's owner group.
+        "entityId": "A String", # The ID for the entity.
+        "entity": "A String", # The entity, in the form group-groupId.
+      },
+      "lifecycle": { # The bucket's lifecycle configuration. See object lifecycle management for more information.
+        "rule": [ # A lifecycle management rule, which is made of an action to take and the condition(s) under which the action will be taken.
+          {
+            "action": { # The action to take.
+              "type": "A String", # Type of the action, e.g. Delete.
+            },
+            "condition": { # The condition(s) under which the action will be taken.
+              "isLive": True or False, # Relevant only for versioned objects. If the value is true, this condition matches live objects; if the value is false, it matches archived objects.
+              "numNewerVersions": 42, # Relevant only for versioned objects. If the value is N, this condition is satisfied when there are at least N versions (including the live version) newer than this version of the object.
+              "age": 42, # Age of an object (in days). This condition is satisfied when an object reaches the specified age.
+              "createdBefore": "A String", # A date in RFC 3339 format with only the date part, e.g. "2013-01-15". This condition is satisfied when an object is created before midnight of the specified date in UTC.
+            },
+          },
+        ],
+      },
+      "id": "A String", # The ID of the bucket.
+      "selfLink": "A String", # The URI of this bucket.
+      "storageClass": "A String", # The bucket's storage class. This defines how objects in the bucket will be stored and determines the SLA and the cost of storage. Typical values are STANDARD and DURABLE_REDUCED_AVAILABILITY. Defaults to STANDARD. See the developer's guide for the authoritative list.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(bucket, body, projection=None, ifMetagenerationMatch=None, ifMetagenerationNotMatch=None)</code>
+  <pre>Updates a bucket.
+
+Args:
+  bucket: string, Name of a bucket. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A bucket.
+    "website": { # The bucket's website configuration.
+      "notFoundPage": "A String", # The custom object to return when a requested resource is not found.
+      "mainPageSuffix": "A String", # Behaves as the bucket's directory index where missing objects are treated as potential directories.
+    },
+    "kind": "storage#bucket", # The kind of item this is. For buckets, this is always storage#bucket.
+    "logging": { # The bucket's logging configuration, which defines the destination bucket and optional name prefix for the current bucket's logs.
+      "logObjectPrefix": "A String", # A prefix for log object names.
+      "logBucket": "A String", # The destination bucket where the current bucket's logs should be placed.
+    },
+    "name": "A String", # The name of the bucket.
+    "metageneration": "A String", # The metadata generation of this bucket.
+    "timeCreated": "A String", # Creation time of the bucket in RFC 3339 format.
+    "versioning": { # The bucket's versioning configuration.
+      "enabled": True or False, # While set to true, versioning is fully enabled for this bucket.
+    },
+    "acl": [ # Access controls on the bucket.
+      { # An access-control entry.
+          "domain": "A String", # The domain associated with the entity, if any.
+          "bucket": "A String", # The name of the bucket.
+          "kind": "storage#bucketAccessControl", # The kind of item this is. For bucket access control entries, this is always storage#bucketAccessControl.
+          "entity": "A String", # The entity holding the permission, in one of the following forms:
+              # - user-userId
+              # - user-email
+              # - group-groupId
+              # - group-email
+              # - domain-domain
+              # - allUsers
+              # - allAuthenticatedUsers Examples:
+              # - The user liz@example.com would be user-liz@example.com.
+              # - The group example@googlegroups.com would be group-example@googlegroups.com.
+              # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+          "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+          "role": "A String", # The access permission for the entity. Can be READER, WRITER, or OWNER.
+          "id": "A String", # The ID of the access-control entry.
+          "entityId": "A String", # The ID for the entity, if any.
+          "email": "A String", # The email address associated with the entity, if any.
+          "selfLink": "A String", # The link to this access-control entry.
+        },
+    ],
+    "defaultObjectAcl": [ # Default access controls to apply to new objects when no ACL is provided.
+      { # An access-control entry.
+        "domain": "A String", # The domain associated with the entity, if any.
+        "generation": "A String", # The content generation of the object.
+        "object": "A String", # The name of the object.
+        "bucket": "A String", # The name of the bucket.
+        "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+        "entity": "A String", # The entity holding the permission, in one of the following forms:
+            # - user-userId
+            # - user-email
+            # - group-groupId
+            # - group-email
+            # - domain-domain
+            # - allUsers
+            # - allAuthenticatedUsers Examples:
+            # - The user liz@example.com would be user-liz@example.com.
+            # - The group example@googlegroups.com would be group-example@googlegroups.com.
+            # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+        "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+        "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+        "id": "A String", # The ID of the access-control entry.
+        "entityId": "A String", # The ID for the entity, if any.
+        "email": "A String", # The email address associated with the entity, if any.
+        "selfLink": "A String", # The link to this access-control entry.
+      },
+    ],
+    "etag": "A String", # HTTP 1.1 Entity tag for the bucket.
+    "location": "A String", # The location of the bucket. Object data for objects in the bucket resides in physical storage within this region. Typical values are US and EU. Defaults to US. See the developer's guide for the authoritative list.
+    "cors": [ # The bucket's Cross-Origin Resource Sharing (CORS) configuration.
+      {
+        "origin": [ # The list of Origins eligible to receive CORS response headers. Note: "*" is permitted in the list of origins, and means "any Origin".
+          "A String",
+        ],
+        "responseHeader": [ # The list of HTTP headers other than the simple response headers to give permission for the user-agent to share across domains.
+          "A String",
+        ],
+        "method": [ # The list of HTTP methods on which to include CORS response headers, e.g. GET, OPTIONS, POST. Note, "*" is permitted in the list of methods, and means "any method".
+          "A String",
+        ],
+        "maxAgeSeconds": 42, # The value, in seconds, to return in the  Access-Control-Max-Age header used in preflight responses.
+      },
+    ],
+    "owner": { # The owner of the bucket. This will always be the project team's owner group.
+      "entityId": "A String", # The ID for the entity.
+      "entity": "A String", # The entity, in the form group-groupId.
+    },
+    "lifecycle": { # The bucket's lifecycle configuration. See object lifecycle management for more information.
+      "rule": [ # A lifecycle management rule, which is made of an action to take and the condition(s) under which the action will be taken.
+        {
+          "action": { # The action to take.
+            "type": "A String", # Type of the action, e.g. Delete.
+          },
+          "condition": { # The condition(s) under which the action will be taken.
+            "isLive": True or False, # Relevant only for versioned objects. If the value is true, this condition matches live objects; if the value is false, it matches archived objects.
+            "numNewerVersions": 42, # Relevant only for versioned objects. If the value is N, this condition is satisfied when there are at least N versions (including the live version) newer than this version of the object.
+            "age": 42, # Age of an object (in days). This condition is satisfied when an object reaches the specified age.
+            "createdBefore": "A String", # A date in RFC 3339 format with only the date part, e.g. "2013-01-15". This condition is satisfied when an object is created before midnight of the specified date in UTC.
+          },
+        },
+      ],
+    },
+    "id": "A String", # The ID of the bucket.
+    "selfLink": "A String", # The URI of this bucket.
+    "storageClass": "A String", # The bucket's storage class. This defines how objects in the bucket will be stored and determines the SLA and the cost of storage. Typical values are STANDARD and DURABLE_REDUCED_AVAILABILITY. Defaults to STANDARD. See the developer's guide for the authoritative list.
+  }
+
+  projection: string, Set of properties to return. Defaults to full.
+    Allowed values
+      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.
+  ifMetagenerationNotMatch: string, Makes the return of the bucket metadata conditional on whether the bucket's current metageneration does not match the given value.
+
+Returns:
+  An object of the form:
+
+    { # A bucket.
+      "website": { # The bucket's website configuration.
+        "notFoundPage": "A String", # The custom object to return when a requested resource is not found.
+        "mainPageSuffix": "A String", # Behaves as the bucket's directory index where missing objects are treated as potential directories.
+      },
+      "kind": "storage#bucket", # The kind of item this is. For buckets, this is always storage#bucket.
+      "logging": { # The bucket's logging configuration, which defines the destination bucket and optional name prefix for the current bucket's logs.
+        "logObjectPrefix": "A String", # A prefix for log object names.
+        "logBucket": "A String", # The destination bucket where the current bucket's logs should be placed.
+      },
+      "name": "A String", # The name of the bucket.
+      "metageneration": "A String", # The metadata generation of this bucket.
+      "timeCreated": "A String", # Creation time of the bucket in RFC 3339 format.
+      "versioning": { # The bucket's versioning configuration.
+        "enabled": True or False, # While set to true, versioning is fully enabled for this bucket.
+      },
+      "acl": [ # Access controls on the bucket.
+        { # An access-control entry.
+            "domain": "A String", # The domain associated with the entity, if any.
+            "bucket": "A String", # The name of the bucket.
+            "kind": "storage#bucketAccessControl", # The kind of item this is. For bucket access control entries, this is always storage#bucketAccessControl.
+            "entity": "A String", # The entity holding the permission, in one of the following forms:
+                # - user-userId
+                # - user-email
+                # - group-groupId
+                # - group-email
+                # - domain-domain
+                # - allUsers
+                # - allAuthenticatedUsers Examples:
+                # - The user liz@example.com would be user-liz@example.com.
+                # - The group example@googlegroups.com would be group-example@googlegroups.com.
+                # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+            "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+            "role": "A String", # The access permission for the entity. Can be READER, WRITER, or OWNER.
+            "id": "A String", # The ID of the access-control entry.
+            "entityId": "A String", # The ID for the entity, if any.
+            "email": "A String", # The email address associated with the entity, if any.
+            "selfLink": "A String", # The link to this access-control entry.
+          },
+      ],
+      "defaultObjectAcl": [ # Default access controls to apply to new objects when no ACL is provided.
+        { # An access-control entry.
+          "domain": "A String", # The domain associated with the entity, if any.
+          "generation": "A String", # The content generation of the object.
+          "object": "A String", # The name of the object.
+          "bucket": "A String", # The name of the bucket.
+          "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+          "entity": "A String", # The entity holding the permission, in one of the following forms:
+              # - user-userId
+              # - user-email
+              # - group-groupId
+              # - group-email
+              # - domain-domain
+              # - allUsers
+              # - allAuthenticatedUsers Examples:
+              # - The user liz@example.com would be user-liz@example.com.
+              # - The group example@googlegroups.com would be group-example@googlegroups.com.
+              # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+          "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+          "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+          "id": "A String", # The ID of the access-control entry.
+          "entityId": "A String", # The ID for the entity, if any.
+          "email": "A String", # The email address associated with the entity, if any.
+          "selfLink": "A String", # The link to this access-control entry.
+        },
+      ],
+      "etag": "A String", # HTTP 1.1 Entity tag for the bucket.
+      "location": "A String", # The location of the bucket. Object data for objects in the bucket resides in physical storage within this region. Typical values are US and EU. Defaults to US. See the developer's guide for the authoritative list.
+      "cors": [ # The bucket's Cross-Origin Resource Sharing (CORS) configuration.
+        {
+          "origin": [ # The list of Origins eligible to receive CORS response headers. Note: "*" is permitted in the list of origins, and means "any Origin".
+            "A String",
+          ],
+          "responseHeader": [ # The list of HTTP headers other than the simple response headers to give permission for the user-agent to share across domains.
+            "A String",
+          ],
+          "method": [ # The list of HTTP methods on which to include CORS response headers, e.g. GET, OPTIONS, POST. Note, "*" is permitted in the list of methods, and means "any method".
+            "A String",
+          ],
+          "maxAgeSeconds": 42, # The value, in seconds, to return in the  Access-Control-Max-Age header used in preflight responses.
+        },
+      ],
+      "owner": { # The owner of the bucket. This will always be the project team's owner group.
+        "entityId": "A String", # The ID for the entity.
+        "entity": "A String", # The entity, in the form group-groupId.
+      },
+      "lifecycle": { # The bucket's lifecycle configuration. See object lifecycle management for more information.
+        "rule": [ # A lifecycle management rule, which is made of an action to take and the condition(s) under which the action will be taken.
+          {
+            "action": { # The action to take.
+              "type": "A String", # Type of the action, e.g. Delete.
+            },
+            "condition": { # The condition(s) under which the action will be taken.
+              "isLive": True or False, # Relevant only for versioned objects. If the value is true, this condition matches live objects; if the value is false, it matches archived objects.
+              "numNewerVersions": 42, # Relevant only for versioned objects. If the value is N, this condition is satisfied when there are at least N versions (including the live version) newer than this version of the object.
+              "age": 42, # Age of an object (in days). This condition is satisfied when an object reaches the specified age.
+              "createdBefore": "A String", # A date in RFC 3339 format with only the date part, e.g. "2013-01-15". This condition is satisfied when an object is created before midnight of the specified date in UTC.
+            },
+          },
+        ],
+      },
+      "id": "A String", # The ID of the bucket.
+      "selfLink": "A String", # The URI of this bucket.
+      "storageClass": "A String", # The bucket's storage class. This defines how objects in the bucket will be stored and determines the SLA and the cost of storage. Typical values are STANDARD and DURABLE_REDUCED_AVAILABILITY. Defaults to STANDARD. See the developer's guide for the authoritative list.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/storage_v1beta2.channels.html b/docs/dyn/storage_v1beta2.channels.html
new file mode 100644
index 0000000..c8fc6e2
--- /dev/null
+++ b/docs/dyn/storage_v1beta2.channels.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="storage_v1beta2.html">Cloud Storage API</a> . <a href="storage_v1beta2.channels.html">channels</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#stop">stop(body)</a></code></p>
+<p class="firstline">Stop watching resources through this channel</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="stop">stop(body)</code>
+  <pre>Stop watching resources through this channel
+
+Args:
+  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.
+  }
+
+</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/storage_v1beta2.defaultObjectAccessControls.html b/docs/dyn/storage_v1beta2.defaultObjectAccessControls.html
new file mode 100644
index 0000000..4639e15
--- /dev/null
+++ b/docs/dyn/storage_v1beta2.defaultObjectAccessControls.html
@@ -0,0 +1,357 @@
+<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="storage_v1beta2.html">Cloud Storage API</a> . <a href="storage_v1beta2.defaultObjectAccessControls.html">defaultObjectAccessControls</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(bucket, entity)</a></code></p>
+<p class="firstline">Permanently deletes the default object ACL entry for the specified entity on the specified bucket.</p>
+<p class="toc_element">
+  <code><a href="#get">get(bucket, entity)</a></code></p>
+<p class="firstline">Returns the default object ACL entry for the specified entity on the specified bucket.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(bucket, body)</a></code></p>
+<p class="firstline">Creates a new default object ACL entry on the specified bucket.</p>
+<p class="toc_element">
+  <code><a href="#list">list(bucket, ifMetagenerationMatch=None, ifMetagenerationNotMatch=None)</a></code></p>
+<p class="firstline">Retrieves default object ACL entries on the specified bucket.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(bucket, entity, body)</a></code></p>
+<p class="firstline">Updates a default object ACL entry on the specified bucket. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(bucket, entity, body)</a></code></p>
+<p class="firstline">Updates a default object ACL entry on the specified bucket.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(bucket, entity)</code>
+  <pre>Permanently deletes the default object ACL entry for the specified entity on the specified bucket.
+
+Args:
+  bucket: string, Name of a bucket. (required)
+  entity: string, The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(bucket, entity)</code>
+  <pre>Returns the default object ACL entry for the specified entity on the specified bucket.
+
+Args:
+  bucket: string, Name of a bucket. (required)
+  entity: string, The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers. (required)
+
+Returns:
+  An object of the form:
+
+    { # An access-control entry.
+    "domain": "A String", # The domain associated with the entity, if any.
+    "generation": "A String", # The content generation of the object.
+    "object": "A String", # The name of the object.
+    "bucket": "A String", # The name of the bucket.
+    "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+    "entity": "A String", # The entity holding the permission, in one of the following forms:
+        # - user-userId
+        # - user-email
+        # - group-groupId
+        # - group-email
+        # - domain-domain
+        # - allUsers
+        # - allAuthenticatedUsers Examples:
+        # - The user liz@example.com would be user-liz@example.com.
+        # - The group example@googlegroups.com would be group-example@googlegroups.com.
+        # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+    "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+    "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+    "id": "A String", # The ID of the access-control entry.
+    "entityId": "A String", # The ID for the entity, if any.
+    "email": "A String", # The email address associated with the entity, if any.
+    "selfLink": "A String", # The link to this access-control entry.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(bucket, body)</code>
+  <pre>Creates a new default object ACL entry on the specified bucket.
+
+Args:
+  bucket: string, Name of a bucket. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An access-control entry.
+  "domain": "A String", # The domain associated with the entity, if any.
+  "generation": "A String", # The content generation of the object.
+  "object": "A String", # The name of the object.
+  "bucket": "A String", # The name of the bucket.
+  "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+  "entity": "A String", # The entity holding the permission, in one of the following forms:
+      # - user-userId
+      # - user-email
+      # - group-groupId
+      # - group-email
+      # - domain-domain
+      # - allUsers
+      # - allAuthenticatedUsers Examples:
+      # - The user liz@example.com would be user-liz@example.com.
+      # - The group example@googlegroups.com would be group-example@googlegroups.com.
+      # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+  "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+  "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+  "id": "A String", # The ID of the access-control entry.
+  "entityId": "A String", # The ID for the entity, if any.
+  "email": "A String", # The email address associated with the entity, if any.
+  "selfLink": "A String", # The link to this access-control entry.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # An access-control entry.
+    "domain": "A String", # The domain associated with the entity, if any.
+    "generation": "A String", # The content generation of the object.
+    "object": "A String", # The name of the object.
+    "bucket": "A String", # The name of the bucket.
+    "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+    "entity": "A String", # The entity holding the permission, in one of the following forms:
+        # - user-userId
+        # - user-email
+        # - group-groupId
+        # - group-email
+        # - domain-domain
+        # - allUsers
+        # - allAuthenticatedUsers Examples:
+        # - The user liz@example.com would be user-liz@example.com.
+        # - The group example@googlegroups.com would be group-example@googlegroups.com.
+        # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+    "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+    "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+    "id": "A String", # The ID of the access-control entry.
+    "entityId": "A String", # The ID for the entity, if any.
+    "email": "A String", # The email address associated with the entity, if any.
+    "selfLink": "A String", # The link to this access-control entry.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(bucket, ifMetagenerationMatch=None, ifMetagenerationNotMatch=None)</code>
+  <pre>Retrieves default object ACL entries on the specified bucket.
+
+Args:
+  bucket: string, Name of a bucket. (required)
+  ifMetagenerationMatch: string, Makes the operation conditional on whether the destination object's current metageneration matches the given value.
+  ifMetagenerationNotMatch: string, Makes the operation conditional on whether the destination object's current metageneration does not match the given value.
+
+Returns:
+  An object of the form:
+
+    { # An access-control list.
+    "items": [ # The list of items.
+      "",
+    ],
+    "kind": "storage#objectAccessControls", # The kind of item this is. For lists of object access control entries, this is always storage#objectAccessControls.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(bucket, entity, body)</code>
+  <pre>Updates a default object ACL entry on the specified bucket. This method supports patch semantics.
+
+Args:
+  bucket: string, Name of a bucket. (required)
+  entity: string, The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An access-control entry.
+  "domain": "A String", # The domain associated with the entity, if any.
+  "generation": "A String", # The content generation of the object.
+  "object": "A String", # The name of the object.
+  "bucket": "A String", # The name of the bucket.
+  "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+  "entity": "A String", # The entity holding the permission, in one of the following forms:
+      # - user-userId
+      # - user-email
+      # - group-groupId
+      # - group-email
+      # - domain-domain
+      # - allUsers
+      # - allAuthenticatedUsers Examples:
+      # - The user liz@example.com would be user-liz@example.com.
+      # - The group example@googlegroups.com would be group-example@googlegroups.com.
+      # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+  "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+  "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+  "id": "A String", # The ID of the access-control entry.
+  "entityId": "A String", # The ID for the entity, if any.
+  "email": "A String", # The email address associated with the entity, if any.
+  "selfLink": "A String", # The link to this access-control entry.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # An access-control entry.
+    "domain": "A String", # The domain associated with the entity, if any.
+    "generation": "A String", # The content generation of the object.
+    "object": "A String", # The name of the object.
+    "bucket": "A String", # The name of the bucket.
+    "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+    "entity": "A String", # The entity holding the permission, in one of the following forms:
+        # - user-userId
+        # - user-email
+        # - group-groupId
+        # - group-email
+        # - domain-domain
+        # - allUsers
+        # - allAuthenticatedUsers Examples:
+        # - The user liz@example.com would be user-liz@example.com.
+        # - The group example@googlegroups.com would be group-example@googlegroups.com.
+        # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+    "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+    "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+    "id": "A String", # The ID of the access-control entry.
+    "entityId": "A String", # The ID for the entity, if any.
+    "email": "A String", # The email address associated with the entity, if any.
+    "selfLink": "A String", # The link to this access-control entry.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(bucket, entity, body)</code>
+  <pre>Updates a default object ACL entry on the specified bucket.
+
+Args:
+  bucket: string, Name of a bucket. (required)
+  entity: string, The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An access-control entry.
+  "domain": "A String", # The domain associated with the entity, if any.
+  "generation": "A String", # The content generation of the object.
+  "object": "A String", # The name of the object.
+  "bucket": "A String", # The name of the bucket.
+  "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+  "entity": "A String", # The entity holding the permission, in one of the following forms:
+      # - user-userId
+      # - user-email
+      # - group-groupId
+      # - group-email
+      # - domain-domain
+      # - allUsers
+      # - allAuthenticatedUsers Examples:
+      # - The user liz@example.com would be user-liz@example.com.
+      # - The group example@googlegroups.com would be group-example@googlegroups.com.
+      # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+  "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+  "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+  "id": "A String", # The ID of the access-control entry.
+  "entityId": "A String", # The ID for the entity, if any.
+  "email": "A String", # The email address associated with the entity, if any.
+  "selfLink": "A String", # The link to this access-control entry.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # An access-control entry.
+    "domain": "A String", # The domain associated with the entity, if any.
+    "generation": "A String", # The content generation of the object.
+    "object": "A String", # The name of the object.
+    "bucket": "A String", # The name of the bucket.
+    "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+    "entity": "A String", # The entity holding the permission, in one of the following forms:
+        # - user-userId
+        # - user-email
+        # - group-groupId
+        # - group-email
+        # - domain-domain
+        # - allUsers
+        # - allAuthenticatedUsers Examples:
+        # - The user liz@example.com would be user-liz@example.com.
+        # - The group example@googlegroups.com would be group-example@googlegroups.com.
+        # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+    "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+    "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+    "id": "A String", # The ID of the access-control entry.
+    "entityId": "A String", # The ID for the entity, if any.
+    "email": "A String", # The email address associated with the entity, if any.
+    "selfLink": "A String", # The link to this access-control entry.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/storage_v1beta2.html b/docs/dyn/storage_v1beta2.html
new file mode 100644
index 0000000..31c606a
--- /dev/null
+++ b/docs/dyn/storage_v1beta2.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="storage_v1beta2.html">Cloud Storage API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="storage_v1beta2.bucketAccessControls.html">bucketAccessControls()</a></code>
+</p>
+<p class="firstline">Returns the bucketAccessControls Resource.</p>
+
+<p class="toc_element">
+  <code><a href="storage_v1beta2.buckets.html">buckets()</a></code>
+</p>
+<p class="firstline">Returns the buckets Resource.</p>
+
+<p class="toc_element">
+  <code><a href="storage_v1beta2.channels.html">channels()</a></code>
+</p>
+<p class="firstline">Returns the channels Resource.</p>
+
+<p class="toc_element">
+  <code><a href="storage_v1beta2.defaultObjectAccessControls.html">defaultObjectAccessControls()</a></code>
+</p>
+<p class="firstline">Returns the defaultObjectAccessControls Resource.</p>
+
+<p class="toc_element">
+  <code><a href="storage_v1beta2.objectAccessControls.html">objectAccessControls()</a></code>
+</p>
+<p class="firstline">Returns the objectAccessControls Resource.</p>
+
+<p class="toc_element">
+  <code><a href="storage_v1beta2.objects.html">objects()</a></code>
+</p>
+<p class="firstline">Returns the objects Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/storage_v1beta2.objectAccessControls.html b/docs/dyn/storage_v1beta2.objectAccessControls.html
new file mode 100644
index 0000000..85c5a08
--- /dev/null
+++ b/docs/dyn/storage_v1beta2.objectAccessControls.html
@@ -0,0 +1,367 @@
+<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="storage_v1beta2.html">Cloud Storage API</a> . <a href="storage_v1beta2.objectAccessControls.html">objectAccessControls</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(bucket, object, entity, generation=None)</a></code></p>
+<p class="firstline">Permanently deletes the ACL entry for the specified entity on the specified object.</p>
+<p class="toc_element">
+  <code><a href="#get">get(bucket, object, entity, generation=None)</a></code></p>
+<p class="firstline">Returns the ACL entry for the specified entity on the specified object.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(bucket, object, body, generation=None)</a></code></p>
+<p class="firstline">Creates a new ACL entry on the specified object.</p>
+<p class="toc_element">
+  <code><a href="#list">list(bucket, object, generation=None)</a></code></p>
+<p class="firstline">Retrieves ACL entries on the specified object.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(bucket, object, entity, body, generation=None)</a></code></p>
+<p class="firstline">Updates an ACL entry on the specified object. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(bucket, object, entity, body, generation=None)</a></code></p>
+<p class="firstline">Updates an ACL entry on the specified object.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(bucket, object, entity, generation=None)</code>
+  <pre>Permanently deletes the ACL entry for the specified entity on the specified object.
+
+Args:
+  bucket: string, Name of a bucket. (required)
+  object: string, Name of the object. (required)
+  entity: string, The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers. (required)
+  generation: string, If present, selects a specific revision of this object (as opposed to the latest version, the default).
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(bucket, object, entity, generation=None)</code>
+  <pre>Returns the ACL entry for the specified entity on the specified object.
+
+Args:
+  bucket: string, Name of a bucket. (required)
+  object: string, Name of the object. (required)
+  entity: string, The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers. (required)
+  generation: string, If present, selects a specific revision of this object (as opposed to the latest version, the default).
+
+Returns:
+  An object of the form:
+
+    { # An access-control entry.
+    "domain": "A String", # The domain associated with the entity, if any.
+    "generation": "A String", # The content generation of the object.
+    "object": "A String", # The name of the object.
+    "bucket": "A String", # The name of the bucket.
+    "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+    "entity": "A String", # The entity holding the permission, in one of the following forms:
+        # - user-userId
+        # - user-email
+        # - group-groupId
+        # - group-email
+        # - domain-domain
+        # - allUsers
+        # - allAuthenticatedUsers Examples:
+        # - The user liz@example.com would be user-liz@example.com.
+        # - The group example@googlegroups.com would be group-example@googlegroups.com.
+        # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+    "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+    "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+    "id": "A String", # The ID of the access-control entry.
+    "entityId": "A String", # The ID for the entity, if any.
+    "email": "A String", # The email address associated with the entity, if any.
+    "selfLink": "A String", # The link to this access-control entry.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(bucket, object, body, generation=None)</code>
+  <pre>Creates a new ACL entry on the specified object.
+
+Args:
+  bucket: string, Name of a bucket. (required)
+  object: string, Name of the object. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An access-control entry.
+  "domain": "A String", # The domain associated with the entity, if any.
+  "generation": "A String", # The content generation of the object.
+  "object": "A String", # The name of the object.
+  "bucket": "A String", # The name of the bucket.
+  "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+  "entity": "A String", # The entity holding the permission, in one of the following forms:
+      # - user-userId
+      # - user-email
+      # - group-groupId
+      # - group-email
+      # - domain-domain
+      # - allUsers
+      # - allAuthenticatedUsers Examples:
+      # - The user liz@example.com would be user-liz@example.com.
+      # - The group example@googlegroups.com would be group-example@googlegroups.com.
+      # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+  "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+  "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+  "id": "A String", # The ID of the access-control entry.
+  "entityId": "A String", # The ID for the entity, if any.
+  "email": "A String", # The email address associated with the entity, if any.
+  "selfLink": "A String", # The link to this access-control entry.
+}
+
+  generation: string, If present, selects a specific revision of this object (as opposed to the latest version, the default).
+
+Returns:
+  An object of the form:
+
+    { # An access-control entry.
+    "domain": "A String", # The domain associated with the entity, if any.
+    "generation": "A String", # The content generation of the object.
+    "object": "A String", # The name of the object.
+    "bucket": "A String", # The name of the bucket.
+    "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+    "entity": "A String", # The entity holding the permission, in one of the following forms:
+        # - user-userId
+        # - user-email
+        # - group-groupId
+        # - group-email
+        # - domain-domain
+        # - allUsers
+        # - allAuthenticatedUsers Examples:
+        # - The user liz@example.com would be user-liz@example.com.
+        # - The group example@googlegroups.com would be group-example@googlegroups.com.
+        # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+    "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+    "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+    "id": "A String", # The ID of the access-control entry.
+    "entityId": "A String", # The ID for the entity, if any.
+    "email": "A String", # The email address associated with the entity, if any.
+    "selfLink": "A String", # The link to this access-control entry.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(bucket, object, generation=None)</code>
+  <pre>Retrieves ACL entries on the specified object.
+
+Args:
+  bucket: string, Name of a bucket. (required)
+  object: string, Name of the object. (required)
+  generation: string, If present, selects a specific revision of this object (as opposed to the latest version, the default).
+
+Returns:
+  An object of the form:
+
+    { # An access-control list.
+    "items": [ # The list of items.
+      "",
+    ],
+    "kind": "storage#objectAccessControls", # The kind of item this is. For lists of object access control entries, this is always storage#objectAccessControls.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(bucket, object, entity, body, generation=None)</code>
+  <pre>Updates an ACL entry on the specified object. This method supports patch semantics.
+
+Args:
+  bucket: string, Name of a bucket. (required)
+  object: string, Name of the object. (required)
+  entity: string, The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An access-control entry.
+  "domain": "A String", # The domain associated with the entity, if any.
+  "generation": "A String", # The content generation of the object.
+  "object": "A String", # The name of the object.
+  "bucket": "A String", # The name of the bucket.
+  "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+  "entity": "A String", # The entity holding the permission, in one of the following forms:
+      # - user-userId
+      # - user-email
+      # - group-groupId
+      # - group-email
+      # - domain-domain
+      # - allUsers
+      # - allAuthenticatedUsers Examples:
+      # - The user liz@example.com would be user-liz@example.com.
+      # - The group example@googlegroups.com would be group-example@googlegroups.com.
+      # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+  "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+  "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+  "id": "A String", # The ID of the access-control entry.
+  "entityId": "A String", # The ID for the entity, if any.
+  "email": "A String", # The email address associated with the entity, if any.
+  "selfLink": "A String", # The link to this access-control entry.
+}
+
+  generation: string, If present, selects a specific revision of this object (as opposed to the latest version, the default).
+
+Returns:
+  An object of the form:
+
+    { # An access-control entry.
+    "domain": "A String", # The domain associated with the entity, if any.
+    "generation": "A String", # The content generation of the object.
+    "object": "A String", # The name of the object.
+    "bucket": "A String", # The name of the bucket.
+    "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+    "entity": "A String", # The entity holding the permission, in one of the following forms:
+        # - user-userId
+        # - user-email
+        # - group-groupId
+        # - group-email
+        # - domain-domain
+        # - allUsers
+        # - allAuthenticatedUsers Examples:
+        # - The user liz@example.com would be user-liz@example.com.
+        # - The group example@googlegroups.com would be group-example@googlegroups.com.
+        # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+    "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+    "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+    "id": "A String", # The ID of the access-control entry.
+    "entityId": "A String", # The ID for the entity, if any.
+    "email": "A String", # The email address associated with the entity, if any.
+    "selfLink": "A String", # The link to this access-control entry.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(bucket, object, entity, body, generation=None)</code>
+  <pre>Updates an ACL entry on the specified object.
+
+Args:
+  bucket: string, Name of a bucket. (required)
+  object: string, Name of the object. (required)
+  entity: string, The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An access-control entry.
+  "domain": "A String", # The domain associated with the entity, if any.
+  "generation": "A String", # The content generation of the object.
+  "object": "A String", # The name of the object.
+  "bucket": "A String", # The name of the bucket.
+  "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+  "entity": "A String", # The entity holding the permission, in one of the following forms:
+      # - user-userId
+      # - user-email
+      # - group-groupId
+      # - group-email
+      # - domain-domain
+      # - allUsers
+      # - allAuthenticatedUsers Examples:
+      # - The user liz@example.com would be user-liz@example.com.
+      # - The group example@googlegroups.com would be group-example@googlegroups.com.
+      # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+  "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+  "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+  "id": "A String", # The ID of the access-control entry.
+  "entityId": "A String", # The ID for the entity, if any.
+  "email": "A String", # The email address associated with the entity, if any.
+  "selfLink": "A String", # The link to this access-control entry.
+}
+
+  generation: string, If present, selects a specific revision of this object (as opposed to the latest version, the default).
+
+Returns:
+  An object of the form:
+
+    { # An access-control entry.
+    "domain": "A String", # The domain associated with the entity, if any.
+    "generation": "A String", # The content generation of the object.
+    "object": "A String", # The name of the object.
+    "bucket": "A String", # The name of the bucket.
+    "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+    "entity": "A String", # The entity holding the permission, in one of the following forms:
+        # - user-userId
+        # - user-email
+        # - group-groupId
+        # - group-email
+        # - domain-domain
+        # - allUsers
+        # - allAuthenticatedUsers Examples:
+        # - The user liz@example.com would be user-liz@example.com.
+        # - The group example@googlegroups.com would be group-example@googlegroups.com.
+        # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+    "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+    "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+    "id": "A String", # The ID of the access-control entry.
+    "entityId": "A String", # The ID for the entity, if any.
+    "email": "A String", # The email address associated with the entity, if any.
+    "selfLink": "A String", # The link to this access-control entry.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/storage_v1beta2.objects.html b/docs/dyn/storage_v1beta2.objects.html
new file mode 100644
index 0000000..cd957d7
--- /dev/null
+++ b/docs/dyn/storage_v1beta2.objects.html
@@ -0,0 +1,1436 @@
+<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="storage_v1beta2.html">Cloud Storage API</a> . <a href="storage_v1beta2.objects.html">objects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#compose">compose(destinationBucket, destinationObject, body, ifMetagenerationMatch=None, ifGenerationMatch=None)</a></code></p>
+<p class="firstline">Concatenates a list of existing objects into a new object in the same bucket.</p>
+<p class="toc_element">
+  <code><a href="#compose_media">compose_media(destinationBucket, destinationObject, body, ifMetagenerationMatch=None, ifGenerationMatch=None)</a></code></p>
+<p class="firstline">Concatenates a list of existing objects into a new object in the same bucket.</p>
+<p class="toc_element">
+  <code><a href="#copy">copy(sourceBucket, sourceObject, destinationBucket, destinationObject, body, projection=None, sourceGeneration=None, ifSourceGenerationNotMatch=None, ifSourceMetagenerationNotMatch=None, ifGenerationMatch=None, ifGenerationNotMatch=None, ifMetagenerationNotMatch=None, ifSourceGenerationMatch=None, ifSourceMetagenerationMatch=None, ifMetagenerationMatch=None)</a></code></p>
+<p class="firstline">Copies an object to a destination in the same location. Optionally overrides metadata.</p>
+<p class="toc_element">
+  <code><a href="#copy_media">copy_media(sourceBucket, sourceObject, destinationBucket, destinationObject, body, projection=None, sourceGeneration=None, ifSourceGenerationNotMatch=None, ifSourceMetagenerationNotMatch=None, ifGenerationMatch=None, ifGenerationNotMatch=None, ifMetagenerationNotMatch=None, ifSourceGenerationMatch=None, ifSourceMetagenerationMatch=None, ifMetagenerationMatch=None)</a></code></p>
+<p class="firstline">Copies an object to a destination in the same location. Optionally overrides metadata.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(bucket, object, ifGenerationNotMatch=None, generation=None, ifMetagenerationMatch=None, ifGenerationMatch=None, ifMetagenerationNotMatch=None)</a></code></p>
+<p class="firstline">Deletes data blobs and associated metadata. Deletions are permanent if versioning is not enabled for the bucket, or if the generation parameter is used.</p>
+<p class="toc_element">
+  <code><a href="#get">get(bucket, object, ifGenerationNotMatch=None, generation=None, ifMetagenerationMatch=None, ifGenerationMatch=None, ifMetagenerationNotMatch=None, projection=None)</a></code></p>
+<p class="firstline">Retrieves objects or their associated metadata.</p>
+<p class="toc_element">
+  <code><a href="#get_media">get_media(bucket, object, ifGenerationNotMatch=None, generation=None, ifMetagenerationMatch=None, ifGenerationMatch=None, ifMetagenerationNotMatch=None, projection=None)</a></code></p>
+<p class="firstline">Retrieves objects or their associated metadata.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(bucket, body=None, media_body=None, projection=None, ifMetagenerationMatch=None, name=None, ifGenerationMatch=None, ifMetagenerationNotMatch=None, ifGenerationNotMatch=None)</a></code></p>
+<p class="firstline">Stores new data blobs and associated metadata.</p>
+<p class="toc_element">
+  <code><a href="#insert_media">insert_media(bucket, body=None, media_body=None, projection=None, ifMetagenerationMatch=None, name=None, ifGenerationMatch=None, ifMetagenerationNotMatch=None, ifGenerationNotMatch=None)</a></code></p>
+<p class="firstline">Stores new data blobs and associated metadata.</p>
+<p class="toc_element">
+  <code><a href="#list">list(bucket, projection=None, versions=None, delimiter=None, maxResults=None, pageToken=None, prefix=None)</a></code></p>
+<p class="firstline">Retrieves a list of objects matching the criteria.</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, object, body, ifGenerationNotMatch=None, generation=None, ifMetagenerationMatch=None, ifGenerationMatch=None, ifMetagenerationNotMatch=None, projection=None)</a></code></p>
+<p class="firstline">Updates a data blob's associated metadata. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(bucket, object, body, ifGenerationNotMatch=None, generation=None, ifMetagenerationMatch=None, ifGenerationMatch=None, ifMetagenerationNotMatch=None, projection=None)</a></code></p>
+<p class="firstline">Updates a data blob's associated metadata.</p>
+<p class="toc_element">
+  <code><a href="#update_media">update_media(bucket, object, body, ifGenerationNotMatch=None, generation=None, ifMetagenerationMatch=None, ifGenerationMatch=None, ifMetagenerationNotMatch=None, projection=None)</a></code></p>
+<p class="firstline">Updates a data blob's associated metadata.</p>
+<p class="toc_element">
+  <code><a href="#watchAll">watchAll(bucket, body, projection=None, versions=None, delimiter=None, maxResults=None, pageToken=None, prefix=None)</a></code></p>
+<p class="firstline">Watch for changes on all objects in a bucket.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="compose">compose(destinationBucket, destinationObject, body, ifMetagenerationMatch=None, ifGenerationMatch=None)</code>
+  <pre>Concatenates a list of existing objects into a new object in the same bucket.
+
+Args:
+  destinationBucket: string, Name of the bucket in which to store the new object. (required)
+  destinationObject: string, Name of the new object. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A Compose request.
+    "kind": "storage#composeRequest", # The kind of item this is.
+    "destination": { # An object. # Properties of the resulting object
+        "generation": "A String", # The content generation of this object. Used for object versioning.
+        "componentCount": 42, # Number of underlying components that make up this object. Components are accumulated by compose operations and are limited to a count of 32.
+        "mediaLink": "A String", # Media download link.
+        "owner": { # The owner of the object. This will always be the uploader of the object.
+          "entityId": "A String", # The ID for the entity.
+          "entity": "A String", # The entity, in the form user-userId.
+        },
+        "cacheControl": "A String", # Cache-Control directive for the object data.
+        "acl": [ # Access controls on the object.
+          { # An access-control entry.
+            "domain": "A String", # The domain associated with the entity, if any.
+            "generation": "A String", # The content generation of the object.
+            "object": "A String", # The name of the object.
+            "bucket": "A String", # The name of the bucket.
+            "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+            "entity": "A String", # The entity holding the permission, in one of the following forms:
+                # - user-userId
+                # - user-email
+                # - group-groupId
+                # - group-email
+                # - domain-domain
+                # - allUsers
+                # - allAuthenticatedUsers Examples:
+                # - The user liz@example.com would be user-liz@example.com.
+                # - The group example@googlegroups.com would be group-example@googlegroups.com.
+                # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+            "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+            "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+            "id": "A String", # The ID of the access-control entry.
+            "entityId": "A String", # The ID for the entity, if any.
+            "email": "A String", # The email address associated with the entity, if any.
+            "selfLink": "A String", # The link to this access-control entry.
+          },
+        ],
+        "id": "A String", # The ID of the object.
+        "size": "A String", # Content-Length of the data in bytes.
+        "timeDeleted": "A String", # Deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.
+        "md5Hash": "A String", # MD5 hash of the data; encoded using base64.
+        "crc32c": "A String", # CRC32c checksum, as described in RFC 4960, Appendix B; encoded using base64.
+        "etag": "A String", # HTTP 1.1 Entity tag for the object.
+        "metadata": { # User-provided metadata, in key/value pairs.
+          "a_key": "A String", # An individual metadata entry.
+        },
+        "updated": "A String", # Modification time of the object metadata in RFC 3339 format.
+        "contentType": "A String", # Content-Type of the object data.
+        "contentDisposition": "A String", # Content-Disposition of the object data.
+        "contentLanguage": "A String", # Content-Language of the object data.
+        "metageneration": "A String", # The generation of the metadata for this object at this generation. Used for metadata versioning. Has no meaning outside of the context of this generation.
+        "kind": "storage#object", # The kind of item this is. For objects, this is always storage#object.
+        "name": "A String", # The name of this object. Required if not specified by URL parameter.
+        "bucket": "A String", # The bucket containing this object.
+        "contentEncoding": "A String", # Content-Encoding of the object data.
+        "storageClass": "A String", # Storage class of the object.
+        "selfLink": "A String", # The link to this object.
+      },
+    "sourceObjects": [ # The list of source objects that will be concatenated into a single object.
+      {
+        "generation": "A String", # The generation of this object to use as the source.
+        "name": "A String", # The source object's name. The source object's bucket is implicitly the destination bucket.
+        "objectPreconditions": { # Conditions that must be met for this operation to execute.
+          "ifGenerationMatch": "A String", # Only perform the composition if the generation of the source object that would be used matches this value. If this value and a generation are both specified, they must be the same value or the call will fail.
+        },
+      },
+    ],
+  }
+
+  ifMetagenerationMatch: string, Makes the operation conditional on whether the object's current metageneration matches the given value.
+  ifGenerationMatch: string, Makes the operation conditional on whether the object's current generation matches the given value.
+
+Returns:
+  An object of the form:
+
+    { # An object.
+      "generation": "A String", # The content generation of this object. Used for object versioning.
+      "componentCount": 42, # Number of underlying components that make up this object. Components are accumulated by compose operations and are limited to a count of 32.
+      "mediaLink": "A String", # Media download link.
+      "owner": { # The owner of the object. This will always be the uploader of the object.
+        "entityId": "A String", # The ID for the entity.
+        "entity": "A String", # The entity, in the form user-userId.
+      },
+      "cacheControl": "A String", # Cache-Control directive for the object data.
+      "acl": [ # Access controls on the object.
+        { # An access-control entry.
+          "domain": "A String", # The domain associated with the entity, if any.
+          "generation": "A String", # The content generation of the object.
+          "object": "A String", # The name of the object.
+          "bucket": "A String", # The name of the bucket.
+          "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+          "entity": "A String", # The entity holding the permission, in one of the following forms:
+              # - user-userId
+              # - user-email
+              # - group-groupId
+              # - group-email
+              # - domain-domain
+              # - allUsers
+              # - allAuthenticatedUsers Examples:
+              # - The user liz@example.com would be user-liz@example.com.
+              # - The group example@googlegroups.com would be group-example@googlegroups.com.
+              # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+          "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+          "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+          "id": "A String", # The ID of the access-control entry.
+          "entityId": "A String", # The ID for the entity, if any.
+          "email": "A String", # The email address associated with the entity, if any.
+          "selfLink": "A String", # The link to this access-control entry.
+        },
+      ],
+      "id": "A String", # The ID of the object.
+      "size": "A String", # Content-Length of the data in bytes.
+      "timeDeleted": "A String", # Deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.
+      "md5Hash": "A String", # MD5 hash of the data; encoded using base64.
+      "crc32c": "A String", # CRC32c checksum, as described in RFC 4960, Appendix B; encoded using base64.
+      "etag": "A String", # HTTP 1.1 Entity tag for the object.
+      "metadata": { # User-provided metadata, in key/value pairs.
+        "a_key": "A String", # An individual metadata entry.
+      },
+      "updated": "A String", # Modification time of the object metadata in RFC 3339 format.
+      "contentType": "A String", # Content-Type of the object data.
+      "contentDisposition": "A String", # Content-Disposition of the object data.
+      "contentLanguage": "A String", # Content-Language of the object data.
+      "metageneration": "A String", # The generation of the metadata for this object at this generation. Used for metadata versioning. Has no meaning outside of the context of this generation.
+      "kind": "storage#object", # The kind of item this is. For objects, this is always storage#object.
+      "name": "A String", # The name of this object. Required if not specified by URL parameter.
+      "bucket": "A String", # The bucket containing this object.
+      "contentEncoding": "A String", # Content-Encoding of the object data.
+      "storageClass": "A String", # Storage class of the object.
+      "selfLink": "A String", # The link to this object.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="compose_media">compose_media(destinationBucket, destinationObject, body, ifMetagenerationMatch=None, ifGenerationMatch=None)</code>
+  <pre>Concatenates a list of existing objects into a new object in the same bucket.
+
+Args:
+  destinationBucket: string, Name of the bucket in which to store the new object. (required)
+  destinationObject: string, Name of the new object. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A Compose request.
+    "kind": "storage#composeRequest", # The kind of item this is.
+    "destination": { # An object. # Properties of the resulting object
+        "generation": "A String", # The content generation of this object. Used for object versioning.
+        "componentCount": 42, # Number of underlying components that make up this object. Components are accumulated by compose operations and are limited to a count of 32.
+        "mediaLink": "A String", # Media download link.
+        "owner": { # The owner of the object. This will always be the uploader of the object.
+          "entityId": "A String", # The ID for the entity.
+          "entity": "A String", # The entity, in the form user-userId.
+        },
+        "cacheControl": "A String", # Cache-Control directive for the object data.
+        "acl": [ # Access controls on the object.
+          { # An access-control entry.
+            "domain": "A String", # The domain associated with the entity, if any.
+            "generation": "A String", # The content generation of the object.
+            "object": "A String", # The name of the object.
+            "bucket": "A String", # The name of the bucket.
+            "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+            "entity": "A String", # The entity holding the permission, in one of the following forms:
+                # - user-userId
+                # - user-email
+                # - group-groupId
+                # - group-email
+                # - domain-domain
+                # - allUsers
+                # - allAuthenticatedUsers Examples:
+                # - The user liz@example.com would be user-liz@example.com.
+                # - The group example@googlegroups.com would be group-example@googlegroups.com.
+                # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+            "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+            "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+            "id": "A String", # The ID of the access-control entry.
+            "entityId": "A String", # The ID for the entity, if any.
+            "email": "A String", # The email address associated with the entity, if any.
+            "selfLink": "A String", # The link to this access-control entry.
+          },
+        ],
+        "id": "A String", # The ID of the object.
+        "size": "A String", # Content-Length of the data in bytes.
+        "timeDeleted": "A String", # Deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.
+        "md5Hash": "A String", # MD5 hash of the data; encoded using base64.
+        "crc32c": "A String", # CRC32c checksum, as described in RFC 4960, Appendix B; encoded using base64.
+        "etag": "A String", # HTTP 1.1 Entity tag for the object.
+        "metadata": { # User-provided metadata, in key/value pairs.
+          "a_key": "A String", # An individual metadata entry.
+        },
+        "updated": "A String", # Modification time of the object metadata in RFC 3339 format.
+        "contentType": "A String", # Content-Type of the object data.
+        "contentDisposition": "A String", # Content-Disposition of the object data.
+        "contentLanguage": "A String", # Content-Language of the object data.
+        "metageneration": "A String", # The generation of the metadata for this object at this generation. Used for metadata versioning. Has no meaning outside of the context of this generation.
+        "kind": "storage#object", # The kind of item this is. For objects, this is always storage#object.
+        "name": "A String", # The name of this object. Required if not specified by URL parameter.
+        "bucket": "A String", # The bucket containing this object.
+        "contentEncoding": "A String", # Content-Encoding of the object data.
+        "storageClass": "A String", # Storage class of the object.
+        "selfLink": "A String", # The link to this object.
+      },
+    "sourceObjects": [ # The list of source objects that will be concatenated into a single object.
+      {
+        "generation": "A String", # The generation of this object to use as the source.
+        "name": "A String", # The source object's name. The source object's bucket is implicitly the destination bucket.
+        "objectPreconditions": { # Conditions that must be met for this operation to execute.
+          "ifGenerationMatch": "A String", # Only perform the composition if the generation of the source object that would be used matches this value. If this value and a generation are both specified, they must be the same value or the call will fail.
+        },
+      },
+    ],
+  }
+
+  ifMetagenerationMatch: string, Makes the operation conditional on whether the object's current metageneration matches the given value.
+  ifGenerationMatch: string, Makes the operation conditional on whether the object's current generation matches the given value.
+
+Returns:
+  The media object as a string.
+
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="copy">copy(sourceBucket, sourceObject, destinationBucket, destinationObject, body, projection=None, sourceGeneration=None, ifSourceGenerationNotMatch=None, ifSourceMetagenerationNotMatch=None, ifGenerationMatch=None, ifGenerationNotMatch=None, ifMetagenerationNotMatch=None, ifSourceGenerationMatch=None, ifSourceMetagenerationMatch=None, ifMetagenerationMatch=None)</code>
+  <pre>Copies an object to a destination in the same location. Optionally overrides metadata.
+
+Args:
+  sourceBucket: string, Name of the bucket in which to find the source object. (required)
+  sourceObject: string, Name of the source object. (required)
+  destinationBucket: string, Name of the bucket in which to store the new object. Overrides the provided object metadata's bucket value, if any. (required)
+  destinationObject: string, Name of the new object. Required when the object metadata is not otherwise provided. Overrides the object metadata's name value, if any. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An object.
+    "generation": "A String", # The content generation of this object. Used for object versioning.
+    "componentCount": 42, # Number of underlying components that make up this object. Components are accumulated by compose operations and are limited to a count of 32.
+    "mediaLink": "A String", # Media download link.
+    "owner": { # The owner of the object. This will always be the uploader of the object.
+      "entityId": "A String", # The ID for the entity.
+      "entity": "A String", # The entity, in the form user-userId.
+    },
+    "cacheControl": "A String", # Cache-Control directive for the object data.
+    "acl": [ # Access controls on the object.
+      { # An access-control entry.
+        "domain": "A String", # The domain associated with the entity, if any.
+        "generation": "A String", # The content generation of the object.
+        "object": "A String", # The name of the object.
+        "bucket": "A String", # The name of the bucket.
+        "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+        "entity": "A String", # The entity holding the permission, in one of the following forms:
+            # - user-userId
+            # - user-email
+            # - group-groupId
+            # - group-email
+            # - domain-domain
+            # - allUsers
+            # - allAuthenticatedUsers Examples:
+            # - The user liz@example.com would be user-liz@example.com.
+            # - The group example@googlegroups.com would be group-example@googlegroups.com.
+            # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+        "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+        "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+        "id": "A String", # The ID of the access-control entry.
+        "entityId": "A String", # The ID for the entity, if any.
+        "email": "A String", # The email address associated with the entity, if any.
+        "selfLink": "A String", # The link to this access-control entry.
+      },
+    ],
+    "id": "A String", # The ID of the object.
+    "size": "A String", # Content-Length of the data in bytes.
+    "timeDeleted": "A String", # Deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.
+    "md5Hash": "A String", # MD5 hash of the data; encoded using base64.
+    "crc32c": "A String", # CRC32c checksum, as described in RFC 4960, Appendix B; encoded using base64.
+    "etag": "A String", # HTTP 1.1 Entity tag for the object.
+    "metadata": { # User-provided metadata, in key/value pairs.
+      "a_key": "A String", # An individual metadata entry.
+    },
+    "updated": "A String", # Modification time of the object metadata in RFC 3339 format.
+    "contentType": "A String", # Content-Type of the object data.
+    "contentDisposition": "A String", # Content-Disposition of the object data.
+    "contentLanguage": "A String", # Content-Language of the object data.
+    "metageneration": "A String", # The generation of the metadata for this object at this generation. Used for metadata versioning. Has no meaning outside of the context of this generation.
+    "kind": "storage#object", # The kind of item this is. For objects, this is always storage#object.
+    "name": "A String", # The name of this object. Required if not specified by URL parameter.
+    "bucket": "A String", # The bucket containing this object.
+    "contentEncoding": "A String", # Content-Encoding of the object data.
+    "storageClass": "A String", # Storage class of the object.
+    "selfLink": "A String", # The link to this object.
+  }
+
+  projection: string, Set of properties to return. Defaults to noAcl, unless the object resource specifies the acl property, when it defaults to full.
+    Allowed values
+      full - Include all properties.
+      noAcl - Omit the acl property.
+  sourceGeneration: string, If present, selects a specific revision of the source object (as opposed to the latest version, the default).
+  ifSourceGenerationNotMatch: string, Makes the operation conditional on whether the source object's generation does not match the given value.
+  ifSourceMetagenerationNotMatch: string, Makes the operation conditional on whether the source object's current metageneration does not match the given value.
+  ifGenerationMatch: string, Makes the operation conditional on whether the destination object's current generation matches the given value.
+  ifGenerationNotMatch: string, Makes the operation conditional on whether the destination object's current generation does not match the given value.
+  ifMetagenerationNotMatch: string, Makes the operation conditional on whether the destination object's current metageneration does not match the given value.
+  ifSourceGenerationMatch: string, Makes the operation conditional on whether the source object's generation matches the given value.
+  ifSourceMetagenerationMatch: string, Makes the operation conditional on whether the source object's current metageneration matches the given value.
+  ifMetagenerationMatch: string, Makes the operation conditional on whether the destination object's current metageneration matches the given value.
+
+Returns:
+  An object of the form:
+
+    { # An object.
+      "generation": "A String", # The content generation of this object. Used for object versioning.
+      "componentCount": 42, # Number of underlying components that make up this object. Components are accumulated by compose operations and are limited to a count of 32.
+      "mediaLink": "A String", # Media download link.
+      "owner": { # The owner of the object. This will always be the uploader of the object.
+        "entityId": "A String", # The ID for the entity.
+        "entity": "A String", # The entity, in the form user-userId.
+      },
+      "cacheControl": "A String", # Cache-Control directive for the object data.
+      "acl": [ # Access controls on the object.
+        { # An access-control entry.
+          "domain": "A String", # The domain associated with the entity, if any.
+          "generation": "A String", # The content generation of the object.
+          "object": "A String", # The name of the object.
+          "bucket": "A String", # The name of the bucket.
+          "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+          "entity": "A String", # The entity holding the permission, in one of the following forms:
+              # - user-userId
+              # - user-email
+              # - group-groupId
+              # - group-email
+              # - domain-domain
+              # - allUsers
+              # - allAuthenticatedUsers Examples:
+              # - The user liz@example.com would be user-liz@example.com.
+              # - The group example@googlegroups.com would be group-example@googlegroups.com.
+              # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+          "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+          "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+          "id": "A String", # The ID of the access-control entry.
+          "entityId": "A String", # The ID for the entity, if any.
+          "email": "A String", # The email address associated with the entity, if any.
+          "selfLink": "A String", # The link to this access-control entry.
+        },
+      ],
+      "id": "A String", # The ID of the object.
+      "size": "A String", # Content-Length of the data in bytes.
+      "timeDeleted": "A String", # Deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.
+      "md5Hash": "A String", # MD5 hash of the data; encoded using base64.
+      "crc32c": "A String", # CRC32c checksum, as described in RFC 4960, Appendix B; encoded using base64.
+      "etag": "A String", # HTTP 1.1 Entity tag for the object.
+      "metadata": { # User-provided metadata, in key/value pairs.
+        "a_key": "A String", # An individual metadata entry.
+      },
+      "updated": "A String", # Modification time of the object metadata in RFC 3339 format.
+      "contentType": "A String", # Content-Type of the object data.
+      "contentDisposition": "A String", # Content-Disposition of the object data.
+      "contentLanguage": "A String", # Content-Language of the object data.
+      "metageneration": "A String", # The generation of the metadata for this object at this generation. Used for metadata versioning. Has no meaning outside of the context of this generation.
+      "kind": "storage#object", # The kind of item this is. For objects, this is always storage#object.
+      "name": "A String", # The name of this object. Required if not specified by URL parameter.
+      "bucket": "A String", # The bucket containing this object.
+      "contentEncoding": "A String", # Content-Encoding of the object data.
+      "storageClass": "A String", # Storage class of the object.
+      "selfLink": "A String", # The link to this object.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="copy_media">copy_media(sourceBucket, sourceObject, destinationBucket, destinationObject, body, projection=None, sourceGeneration=None, ifSourceGenerationNotMatch=None, ifSourceMetagenerationNotMatch=None, ifGenerationMatch=None, ifGenerationNotMatch=None, ifMetagenerationNotMatch=None, ifSourceGenerationMatch=None, ifSourceMetagenerationMatch=None, ifMetagenerationMatch=None)</code>
+  <pre>Copies an object to a destination in the same location. Optionally overrides metadata.
+
+Args:
+  sourceBucket: string, Name of the bucket in which to find the source object. (required)
+  sourceObject: string, Name of the source object. (required)
+  destinationBucket: string, Name of the bucket in which to store the new object. Overrides the provided object metadata's bucket value, if any. (required)
+  destinationObject: string, Name of the new object. Required when the object metadata is not otherwise provided. Overrides the object metadata's name value, if any. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An object.
+    "generation": "A String", # The content generation of this object. Used for object versioning.
+    "componentCount": 42, # Number of underlying components that make up this object. Components are accumulated by compose operations and are limited to a count of 32.
+    "mediaLink": "A String", # Media download link.
+    "owner": { # The owner of the object. This will always be the uploader of the object.
+      "entityId": "A String", # The ID for the entity.
+      "entity": "A String", # The entity, in the form user-userId.
+    },
+    "cacheControl": "A String", # Cache-Control directive for the object data.
+    "acl": [ # Access controls on the object.
+      { # An access-control entry.
+        "domain": "A String", # The domain associated with the entity, if any.
+        "generation": "A String", # The content generation of the object.
+        "object": "A String", # The name of the object.
+        "bucket": "A String", # The name of the bucket.
+        "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+        "entity": "A String", # The entity holding the permission, in one of the following forms:
+            # - user-userId
+            # - user-email
+            # - group-groupId
+            # - group-email
+            # - domain-domain
+            # - allUsers
+            # - allAuthenticatedUsers Examples:
+            # - The user liz@example.com would be user-liz@example.com.
+            # - The group example@googlegroups.com would be group-example@googlegroups.com.
+            # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+        "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+        "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+        "id": "A String", # The ID of the access-control entry.
+        "entityId": "A String", # The ID for the entity, if any.
+        "email": "A String", # The email address associated with the entity, if any.
+        "selfLink": "A String", # The link to this access-control entry.
+      },
+    ],
+    "id": "A String", # The ID of the object.
+    "size": "A String", # Content-Length of the data in bytes.
+    "timeDeleted": "A String", # Deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.
+    "md5Hash": "A String", # MD5 hash of the data; encoded using base64.
+    "crc32c": "A String", # CRC32c checksum, as described in RFC 4960, Appendix B; encoded using base64.
+    "etag": "A String", # HTTP 1.1 Entity tag for the object.
+    "metadata": { # User-provided metadata, in key/value pairs.
+      "a_key": "A String", # An individual metadata entry.
+    },
+    "updated": "A String", # Modification time of the object metadata in RFC 3339 format.
+    "contentType": "A String", # Content-Type of the object data.
+    "contentDisposition": "A String", # Content-Disposition of the object data.
+    "contentLanguage": "A String", # Content-Language of the object data.
+    "metageneration": "A String", # The generation of the metadata for this object at this generation. Used for metadata versioning. Has no meaning outside of the context of this generation.
+    "kind": "storage#object", # The kind of item this is. For objects, this is always storage#object.
+    "name": "A String", # The name of this object. Required if not specified by URL parameter.
+    "bucket": "A String", # The bucket containing this object.
+    "contentEncoding": "A String", # Content-Encoding of the object data.
+    "storageClass": "A String", # Storage class of the object.
+    "selfLink": "A String", # The link to this object.
+  }
+
+  projection: string, Set of properties to return. Defaults to noAcl, unless the object resource specifies the acl property, when it defaults to full.
+    Allowed values
+      full - Include all properties.
+      noAcl - Omit the acl property.
+  sourceGeneration: string, If present, selects a specific revision of the source object (as opposed to the latest version, the default).
+  ifSourceGenerationNotMatch: string, Makes the operation conditional on whether the source object's generation does not match the given value.
+  ifSourceMetagenerationNotMatch: string, Makes the operation conditional on whether the source object's current metageneration does not match the given value.
+  ifGenerationMatch: string, Makes the operation conditional on whether the destination object's current generation matches the given value.
+  ifGenerationNotMatch: string, Makes the operation conditional on whether the destination object's current generation does not match the given value.
+  ifMetagenerationNotMatch: string, Makes the operation conditional on whether the destination object's current metageneration does not match the given value.
+  ifSourceGenerationMatch: string, Makes the operation conditional on whether the source object's generation matches the given value.
+  ifSourceMetagenerationMatch: string, Makes the operation conditional on whether the source object's current metageneration matches the given value.
+  ifMetagenerationMatch: string, Makes the operation conditional on whether the destination object's current metageneration matches the given value.
+
+Returns:
+  The media object as a string.
+
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(bucket, object, ifGenerationNotMatch=None, generation=None, ifMetagenerationMatch=None, ifGenerationMatch=None, ifMetagenerationNotMatch=None)</code>
+  <pre>Deletes data blobs and associated metadata. Deletions are permanent if versioning is not enabled for the bucket, or if the generation parameter is used.
+
+Args:
+  bucket: string, Name of the bucket in which the object resides. (required)
+  object: string, Name of the object. (required)
+  ifGenerationNotMatch: string, Makes the operation conditional on whether the object's current generation does not match the given value.
+  generation: string, If present, permanently deletes a specific revision of this object (as opposed to the latest version, the default).
+  ifMetagenerationMatch: string, Makes the operation conditional on whether the object's current metageneration matches the given value.
+  ifGenerationMatch: string, Makes the operation conditional on whether the object's current generation matches the given value.
+  ifMetagenerationNotMatch: string, Makes the operation conditional on whether the object's current metageneration does not match the given value.
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(bucket, object, ifGenerationNotMatch=None, generation=None, ifMetagenerationMatch=None, ifGenerationMatch=None, ifMetagenerationNotMatch=None, projection=None)</code>
+  <pre>Retrieves objects or their associated metadata.
+
+Args:
+  bucket: string, Name of the bucket in which the object resides. (required)
+  object: string, Name of the object. (required)
+  ifGenerationNotMatch: string, Makes the operation conditional on whether the object's generation does not match the given value.
+  generation: string, If present, selects a specific revision of this object (as opposed to the latest version, the default).
+  ifMetagenerationMatch: string, Makes the operation conditional on whether the object's current metageneration matches the given value.
+  ifGenerationMatch: string, Makes the operation conditional on whether the object's generation matches the given value.
+  ifMetagenerationNotMatch: string, Makes the operation conditional on whether the object's current metageneration does not match the given value.
+  projection: string, Set of properties to return. Defaults to noAcl.
+    Allowed values
+      full - Include all properties.
+      noAcl - Omit the acl property.
+
+Returns:
+  An object of the form:
+
+    { # An object.
+      "generation": "A String", # The content generation of this object. Used for object versioning.
+      "componentCount": 42, # Number of underlying components that make up this object. Components are accumulated by compose operations and are limited to a count of 32.
+      "mediaLink": "A String", # Media download link.
+      "owner": { # The owner of the object. This will always be the uploader of the object.
+        "entityId": "A String", # The ID for the entity.
+        "entity": "A String", # The entity, in the form user-userId.
+      },
+      "cacheControl": "A String", # Cache-Control directive for the object data.
+      "acl": [ # Access controls on the object.
+        { # An access-control entry.
+          "domain": "A String", # The domain associated with the entity, if any.
+          "generation": "A String", # The content generation of the object.
+          "object": "A String", # The name of the object.
+          "bucket": "A String", # The name of the bucket.
+          "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+          "entity": "A String", # The entity holding the permission, in one of the following forms:
+              # - user-userId
+              # - user-email
+              # - group-groupId
+              # - group-email
+              # - domain-domain
+              # - allUsers
+              # - allAuthenticatedUsers Examples:
+              # - The user liz@example.com would be user-liz@example.com.
+              # - The group example@googlegroups.com would be group-example@googlegroups.com.
+              # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+          "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+          "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+          "id": "A String", # The ID of the access-control entry.
+          "entityId": "A String", # The ID for the entity, if any.
+          "email": "A String", # The email address associated with the entity, if any.
+          "selfLink": "A String", # The link to this access-control entry.
+        },
+      ],
+      "id": "A String", # The ID of the object.
+      "size": "A String", # Content-Length of the data in bytes.
+      "timeDeleted": "A String", # Deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.
+      "md5Hash": "A String", # MD5 hash of the data; encoded using base64.
+      "crc32c": "A String", # CRC32c checksum, as described in RFC 4960, Appendix B; encoded using base64.
+      "etag": "A String", # HTTP 1.1 Entity tag for the object.
+      "metadata": { # User-provided metadata, in key/value pairs.
+        "a_key": "A String", # An individual metadata entry.
+      },
+      "updated": "A String", # Modification time of the object metadata in RFC 3339 format.
+      "contentType": "A String", # Content-Type of the object data.
+      "contentDisposition": "A String", # Content-Disposition of the object data.
+      "contentLanguage": "A String", # Content-Language of the object data.
+      "metageneration": "A String", # The generation of the metadata for this object at this generation. Used for metadata versioning. Has no meaning outside of the context of this generation.
+      "kind": "storage#object", # The kind of item this is. For objects, this is always storage#object.
+      "name": "A String", # The name of this object. Required if not specified by URL parameter.
+      "bucket": "A String", # The bucket containing this object.
+      "contentEncoding": "A String", # Content-Encoding of the object data.
+      "storageClass": "A String", # Storage class of the object.
+      "selfLink": "A String", # The link to this object.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get_media">get_media(bucket, object, ifGenerationNotMatch=None, generation=None, ifMetagenerationMatch=None, ifGenerationMatch=None, ifMetagenerationNotMatch=None, projection=None)</code>
+  <pre>Retrieves objects or their associated metadata.
+
+Args:
+  bucket: string, Name of the bucket in which the object resides. (required)
+  object: string, Name of the object. (required)
+  ifGenerationNotMatch: string, Makes the operation conditional on whether the object's generation does not match the given value.
+  generation: string, If present, selects a specific revision of this object (as opposed to the latest version, the default).
+  ifMetagenerationMatch: string, Makes the operation conditional on whether the object's current metageneration matches the given value.
+  ifGenerationMatch: string, Makes the operation conditional on whether the object's generation matches the given value.
+  ifMetagenerationNotMatch: string, Makes the operation conditional on whether the object's current metageneration does not match the given value.
+  projection: string, Set of properties to return. Defaults to noAcl.
+    Allowed values
+      full - Include all properties.
+      noAcl - Omit the acl property.
+
+Returns:
+  The media object as a string.
+
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(bucket, body=None, media_body=None, projection=None, ifMetagenerationMatch=None, name=None, ifGenerationMatch=None, ifMetagenerationNotMatch=None, ifGenerationNotMatch=None)</code>
+  <pre>Stores new data blobs and associated metadata.
+
+Args:
+  bucket: string, Name of the bucket in which to store the new object. Overrides the provided object metadata's bucket value, if any. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # An object.
+    "generation": "A String", # The content generation of this object. Used for object versioning.
+    "componentCount": 42, # Number of underlying components that make up this object. Components are accumulated by compose operations and are limited to a count of 32.
+    "mediaLink": "A String", # Media download link.
+    "owner": { # The owner of the object. This will always be the uploader of the object.
+      "entityId": "A String", # The ID for the entity.
+      "entity": "A String", # The entity, in the form user-userId.
+    },
+    "cacheControl": "A String", # Cache-Control directive for the object data.
+    "acl": [ # Access controls on the object.
+      { # An access-control entry.
+        "domain": "A String", # The domain associated with the entity, if any.
+        "generation": "A String", # The content generation of the object.
+        "object": "A String", # The name of the object.
+        "bucket": "A String", # The name of the bucket.
+        "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+        "entity": "A String", # The entity holding the permission, in one of the following forms:
+            # - user-userId
+            # - user-email
+            # - group-groupId
+            # - group-email
+            # - domain-domain
+            # - allUsers
+            # - allAuthenticatedUsers Examples:
+            # - The user liz@example.com would be user-liz@example.com.
+            # - The group example@googlegroups.com would be group-example@googlegroups.com.
+            # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+        "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+        "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+        "id": "A String", # The ID of the access-control entry.
+        "entityId": "A String", # The ID for the entity, if any.
+        "email": "A String", # The email address associated with the entity, if any.
+        "selfLink": "A String", # The link to this access-control entry.
+      },
+    ],
+    "id": "A String", # The ID of the object.
+    "size": "A String", # Content-Length of the data in bytes.
+    "timeDeleted": "A String", # Deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.
+    "md5Hash": "A String", # MD5 hash of the data; encoded using base64.
+    "crc32c": "A String", # CRC32c checksum, as described in RFC 4960, Appendix B; encoded using base64.
+    "etag": "A String", # HTTP 1.1 Entity tag for the object.
+    "metadata": { # User-provided metadata, in key/value pairs.
+      "a_key": "A String", # An individual metadata entry.
+    },
+    "updated": "A String", # Modification time of the object metadata in RFC 3339 format.
+    "contentType": "A String", # Content-Type of the object data.
+    "contentDisposition": "A String", # Content-Disposition of the object data.
+    "contentLanguage": "A String", # Content-Language of the object data.
+    "metageneration": "A String", # The generation of the metadata for this object at this generation. Used for metadata versioning. Has no meaning outside of the context of this generation.
+    "kind": "storage#object", # The kind of item this is. For objects, this is always storage#object.
+    "name": "A String", # The name of this object. Required if not specified by URL parameter.
+    "bucket": "A String", # The bucket containing this object.
+    "contentEncoding": "A String", # Content-Encoding of the object data.
+    "storageClass": "A String", # Storage class of the object.
+    "selfLink": "A String", # The link to this object.
+  }
+
+  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
+  projection: string, Set of properties to return. Defaults to noAcl, unless the object resource specifies the acl property, when it defaults to full.
+    Allowed values
+      full - Include all properties.
+      noAcl - Omit the acl property.
+  ifMetagenerationMatch: string, Makes the operation conditional on whether the object's current metageneration matches the given value.
+  name: string, Name of the object. Required when the object metadata is not otherwise provided. Overrides the object metadata's name value, if any.
+  ifGenerationMatch: string, Makes the operation conditional on whether the object's current generation matches the given value.
+  ifMetagenerationNotMatch: string, Makes the operation conditional on whether the object's current metageneration does not match the given value.
+  ifGenerationNotMatch: string, Makes the operation conditional on whether the object's current generation does not match the given value.
+
+Returns:
+  An object of the form:
+
+    { # An object.
+      "generation": "A String", # The content generation of this object. Used for object versioning.
+      "componentCount": 42, # Number of underlying components that make up this object. Components are accumulated by compose operations and are limited to a count of 32.
+      "mediaLink": "A String", # Media download link.
+      "owner": { # The owner of the object. This will always be the uploader of the object.
+        "entityId": "A String", # The ID for the entity.
+        "entity": "A String", # The entity, in the form user-userId.
+      },
+      "cacheControl": "A String", # Cache-Control directive for the object data.
+      "acl": [ # Access controls on the object.
+        { # An access-control entry.
+          "domain": "A String", # The domain associated with the entity, if any.
+          "generation": "A String", # The content generation of the object.
+          "object": "A String", # The name of the object.
+          "bucket": "A String", # The name of the bucket.
+          "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+          "entity": "A String", # The entity holding the permission, in one of the following forms:
+              # - user-userId
+              # - user-email
+              # - group-groupId
+              # - group-email
+              # - domain-domain
+              # - allUsers
+              # - allAuthenticatedUsers Examples:
+              # - The user liz@example.com would be user-liz@example.com.
+              # - The group example@googlegroups.com would be group-example@googlegroups.com.
+              # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+          "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+          "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+          "id": "A String", # The ID of the access-control entry.
+          "entityId": "A String", # The ID for the entity, if any.
+          "email": "A String", # The email address associated with the entity, if any.
+          "selfLink": "A String", # The link to this access-control entry.
+        },
+      ],
+      "id": "A String", # The ID of the object.
+      "size": "A String", # Content-Length of the data in bytes.
+      "timeDeleted": "A String", # Deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.
+      "md5Hash": "A String", # MD5 hash of the data; encoded using base64.
+      "crc32c": "A String", # CRC32c checksum, as described in RFC 4960, Appendix B; encoded using base64.
+      "etag": "A String", # HTTP 1.1 Entity tag for the object.
+      "metadata": { # User-provided metadata, in key/value pairs.
+        "a_key": "A String", # An individual metadata entry.
+      },
+      "updated": "A String", # Modification time of the object metadata in RFC 3339 format.
+      "contentType": "A String", # Content-Type of the object data.
+      "contentDisposition": "A String", # Content-Disposition of the object data.
+      "contentLanguage": "A String", # Content-Language of the object data.
+      "metageneration": "A String", # The generation of the metadata for this object at this generation. Used for metadata versioning. Has no meaning outside of the context of this generation.
+      "kind": "storage#object", # The kind of item this is. For objects, this is always storage#object.
+      "name": "A String", # The name of this object. Required if not specified by URL parameter.
+      "bucket": "A String", # The bucket containing this object.
+      "contentEncoding": "A String", # Content-Encoding of the object data.
+      "storageClass": "A String", # Storage class of the object.
+      "selfLink": "A String", # The link to this object.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert_media">insert_media(bucket, body=None, media_body=None, projection=None, ifMetagenerationMatch=None, name=None, ifGenerationMatch=None, ifMetagenerationNotMatch=None, ifGenerationNotMatch=None)</code>
+  <pre>Stores new data blobs and associated metadata.
+
+Args:
+  bucket: string, Name of the bucket in which to store the new object. Overrides the provided object metadata's bucket value, if any. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # An object.
+    "generation": "A String", # The content generation of this object. Used for object versioning.
+    "componentCount": 42, # Number of underlying components that make up this object. Components are accumulated by compose operations and are limited to a count of 32.
+    "mediaLink": "A String", # Media download link.
+    "owner": { # The owner of the object. This will always be the uploader of the object.
+      "entityId": "A String", # The ID for the entity.
+      "entity": "A String", # The entity, in the form user-userId.
+    },
+    "cacheControl": "A String", # Cache-Control directive for the object data.
+    "acl": [ # Access controls on the object.
+      { # An access-control entry.
+        "domain": "A String", # The domain associated with the entity, if any.
+        "generation": "A String", # The content generation of the object.
+        "object": "A String", # The name of the object.
+        "bucket": "A String", # The name of the bucket.
+        "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+        "entity": "A String", # The entity holding the permission, in one of the following forms:
+            # - user-userId
+            # - user-email
+            # - group-groupId
+            # - group-email
+            # - domain-domain
+            # - allUsers
+            # - allAuthenticatedUsers Examples:
+            # - The user liz@example.com would be user-liz@example.com.
+            # - The group example@googlegroups.com would be group-example@googlegroups.com.
+            # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+        "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+        "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+        "id": "A String", # The ID of the access-control entry.
+        "entityId": "A String", # The ID for the entity, if any.
+        "email": "A String", # The email address associated with the entity, if any.
+        "selfLink": "A String", # The link to this access-control entry.
+      },
+    ],
+    "id": "A String", # The ID of the object.
+    "size": "A String", # Content-Length of the data in bytes.
+    "timeDeleted": "A String", # Deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.
+    "md5Hash": "A String", # MD5 hash of the data; encoded using base64.
+    "crc32c": "A String", # CRC32c checksum, as described in RFC 4960, Appendix B; encoded using base64.
+    "etag": "A String", # HTTP 1.1 Entity tag for the object.
+    "metadata": { # User-provided metadata, in key/value pairs.
+      "a_key": "A String", # An individual metadata entry.
+    },
+    "updated": "A String", # Modification time of the object metadata in RFC 3339 format.
+    "contentType": "A String", # Content-Type of the object data.
+    "contentDisposition": "A String", # Content-Disposition of the object data.
+    "contentLanguage": "A String", # Content-Language of the object data.
+    "metageneration": "A String", # The generation of the metadata for this object at this generation. Used for metadata versioning. Has no meaning outside of the context of this generation.
+    "kind": "storage#object", # The kind of item this is. For objects, this is always storage#object.
+    "name": "A String", # The name of this object. Required if not specified by URL parameter.
+    "bucket": "A String", # The bucket containing this object.
+    "contentEncoding": "A String", # Content-Encoding of the object data.
+    "storageClass": "A String", # Storage class of the object.
+    "selfLink": "A String", # The link to this object.
+  }
+
+  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
+  projection: string, Set of properties to return. Defaults to noAcl, unless the object resource specifies the acl property, when it defaults to full.
+    Allowed values
+      full - Include all properties.
+      noAcl - Omit the acl property.
+  ifMetagenerationMatch: string, Makes the operation conditional on whether the object's current metageneration matches the given value.
+  name: string, Name of the object. Required when the object metadata is not otherwise provided. Overrides the object metadata's name value, if any.
+  ifGenerationMatch: string, Makes the operation conditional on whether the object's current generation matches the given value.
+  ifMetagenerationNotMatch: string, Makes the operation conditional on whether the object's current metageneration does not match the given value.
+  ifGenerationNotMatch: string, Makes the operation conditional on whether the object's current generation does not match the given value.
+
+Returns:
+  The media object as a string.
+
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(bucket, projection=None, versions=None, delimiter=None, maxResults=None, pageToken=None, prefix=None)</code>
+  <pre>Retrieves a list of objects matching the criteria.
+
+Args:
+  bucket: string, Name of the bucket in which to look for objects. (required)
+  projection: string, Set of properties to return. Defaults to noAcl.
+    Allowed values
+      full - Include all properties.
+      noAcl - Omit the acl property.
+  versions: boolean, If true, lists all versions of a file as distinct results.
+  delimiter: string, Returns results in a directory-like mode. items will contain only objects whose names, aside from the prefix, do not contain delimiter. Objects whose names, aside from the prefix, contain delimiter will have their name, truncated after the delimiter, returned in prefixes. Duplicate prefixes are omitted.
+  maxResults: integer, Maximum number of items plus prefixes to return. As duplicate prefixes are omitted, fewer total results may be returned than requested.
+  pageToken: string, A previously-returned page token representing part of the larger set of results to view.
+  prefix: string, Filter results to objects whose names begin with this prefix.
+
+Returns:
+  An object of the form:
+
+    { # A list of objects.
+    "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": [ # The list of items.
+      { # An object.
+          "generation": "A String", # The content generation of this object. Used for object versioning.
+          "componentCount": 42, # Number of underlying components that make up this object. Components are accumulated by compose operations and are limited to a count of 32.
+          "mediaLink": "A String", # Media download link.
+          "owner": { # The owner of the object. This will always be the uploader of the object.
+            "entityId": "A String", # The ID for the entity.
+            "entity": "A String", # The entity, in the form user-userId.
+          },
+          "cacheControl": "A String", # Cache-Control directive for the object data.
+          "acl": [ # Access controls on the object.
+            { # An access-control entry.
+              "domain": "A String", # The domain associated with the entity, if any.
+              "generation": "A String", # The content generation of the object.
+              "object": "A String", # The name of the object.
+              "bucket": "A String", # The name of the bucket.
+              "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+              "entity": "A String", # The entity holding the permission, in one of the following forms:
+                  # - user-userId
+                  # - user-email
+                  # - group-groupId
+                  # - group-email
+                  # - domain-domain
+                  # - allUsers
+                  # - allAuthenticatedUsers Examples:
+                  # - The user liz@example.com would be user-liz@example.com.
+                  # - The group example@googlegroups.com would be group-example@googlegroups.com.
+                  # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+              "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+              "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+              "id": "A String", # The ID of the access-control entry.
+              "entityId": "A String", # The ID for the entity, if any.
+              "email": "A String", # The email address associated with the entity, if any.
+              "selfLink": "A String", # The link to this access-control entry.
+            },
+          ],
+          "id": "A String", # The ID of the object.
+          "size": "A String", # Content-Length of the data in bytes.
+          "timeDeleted": "A String", # Deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.
+          "md5Hash": "A String", # MD5 hash of the data; encoded using base64.
+          "crc32c": "A String", # CRC32c checksum, as described in RFC 4960, Appendix B; encoded using base64.
+          "etag": "A String", # HTTP 1.1 Entity tag for the object.
+          "metadata": { # User-provided metadata, in key/value pairs.
+            "a_key": "A String", # An individual metadata entry.
+          },
+          "updated": "A String", # Modification time of the object metadata in RFC 3339 format.
+          "contentType": "A String", # Content-Type of the object data.
+          "contentDisposition": "A String", # Content-Disposition of the object data.
+          "contentLanguage": "A String", # Content-Language of the object data.
+          "metageneration": "A String", # The generation of the metadata for this object at this generation. Used for metadata versioning. Has no meaning outside of the context of this generation.
+          "kind": "storage#object", # The kind of item this is. For objects, this is always storage#object.
+          "name": "A String", # The name of this object. Required if not specified by URL parameter.
+          "bucket": "A String", # The bucket containing this object.
+          "contentEncoding": "A String", # Content-Encoding of the object data.
+          "storageClass": "A String", # Storage class of the object.
+          "selfLink": "A String", # The link to this object.
+        },
+    ],
+    "kind": "storage#objects", # The kind of item this is. For lists of objects, this is always storage#objects.
+    "prefixes": [ # The list of prefixes of objects matching-but-not-listed up to and including the requested delimiter.
+      "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(bucket, object, body, ifGenerationNotMatch=None, generation=None, ifMetagenerationMatch=None, ifGenerationMatch=None, ifMetagenerationNotMatch=None, projection=None)</code>
+  <pre>Updates a data blob's associated metadata. This method supports patch semantics.
+
+Args:
+  bucket: string, Name of the bucket in which the object resides. (required)
+  object: string, Name of the object. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An object.
+    "generation": "A String", # The content generation of this object. Used for object versioning.
+    "componentCount": 42, # Number of underlying components that make up this object. Components are accumulated by compose operations and are limited to a count of 32.
+    "mediaLink": "A String", # Media download link.
+    "owner": { # The owner of the object. This will always be the uploader of the object.
+      "entityId": "A String", # The ID for the entity.
+      "entity": "A String", # The entity, in the form user-userId.
+    },
+    "cacheControl": "A String", # Cache-Control directive for the object data.
+    "acl": [ # Access controls on the object.
+      { # An access-control entry.
+        "domain": "A String", # The domain associated with the entity, if any.
+        "generation": "A String", # The content generation of the object.
+        "object": "A String", # The name of the object.
+        "bucket": "A String", # The name of the bucket.
+        "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+        "entity": "A String", # The entity holding the permission, in one of the following forms:
+            # - user-userId
+            # - user-email
+            # - group-groupId
+            # - group-email
+            # - domain-domain
+            # - allUsers
+            # - allAuthenticatedUsers Examples:
+            # - The user liz@example.com would be user-liz@example.com.
+            # - The group example@googlegroups.com would be group-example@googlegroups.com.
+            # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+        "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+        "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+        "id": "A String", # The ID of the access-control entry.
+        "entityId": "A String", # The ID for the entity, if any.
+        "email": "A String", # The email address associated with the entity, if any.
+        "selfLink": "A String", # The link to this access-control entry.
+      },
+    ],
+    "id": "A String", # The ID of the object.
+    "size": "A String", # Content-Length of the data in bytes.
+    "timeDeleted": "A String", # Deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.
+    "md5Hash": "A String", # MD5 hash of the data; encoded using base64.
+    "crc32c": "A String", # CRC32c checksum, as described in RFC 4960, Appendix B; encoded using base64.
+    "etag": "A String", # HTTP 1.1 Entity tag for the object.
+    "metadata": { # User-provided metadata, in key/value pairs.
+      "a_key": "A String", # An individual metadata entry.
+    },
+    "updated": "A String", # Modification time of the object metadata in RFC 3339 format.
+    "contentType": "A String", # Content-Type of the object data.
+    "contentDisposition": "A String", # Content-Disposition of the object data.
+    "contentLanguage": "A String", # Content-Language of the object data.
+    "metageneration": "A String", # The generation of the metadata for this object at this generation. Used for metadata versioning. Has no meaning outside of the context of this generation.
+    "kind": "storage#object", # The kind of item this is. For objects, this is always storage#object.
+    "name": "A String", # The name of this object. Required if not specified by URL parameter.
+    "bucket": "A String", # The bucket containing this object.
+    "contentEncoding": "A String", # Content-Encoding of the object data.
+    "storageClass": "A String", # Storage class of the object.
+    "selfLink": "A String", # The link to this object.
+  }
+
+  ifGenerationNotMatch: string, Makes the operation conditional on whether the object's current generation does not match the given value.
+  generation: string, If present, selects a specific revision of this object (as opposed to the latest version, the default).
+  ifMetagenerationMatch: string, Makes the operation conditional on whether the object's current metageneration matches the given value.
+  ifGenerationMatch: string, Makes the operation conditional on whether the object's current generation matches the given value.
+  ifMetagenerationNotMatch: string, Makes the operation conditional on whether the object's current metageneration does not match the given value.
+  projection: string, Set of properties to return. Defaults to full.
+    Allowed values
+      full - Include all properties.
+      noAcl - Omit the acl property.
+
+Returns:
+  An object of the form:
+
+    { # An object.
+      "generation": "A String", # The content generation of this object. Used for object versioning.
+      "componentCount": 42, # Number of underlying components that make up this object. Components are accumulated by compose operations and are limited to a count of 32.
+      "mediaLink": "A String", # Media download link.
+      "owner": { # The owner of the object. This will always be the uploader of the object.
+        "entityId": "A String", # The ID for the entity.
+        "entity": "A String", # The entity, in the form user-userId.
+      },
+      "cacheControl": "A String", # Cache-Control directive for the object data.
+      "acl": [ # Access controls on the object.
+        { # An access-control entry.
+          "domain": "A String", # The domain associated with the entity, if any.
+          "generation": "A String", # The content generation of the object.
+          "object": "A String", # The name of the object.
+          "bucket": "A String", # The name of the bucket.
+          "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+          "entity": "A String", # The entity holding the permission, in one of the following forms:
+              # - user-userId
+              # - user-email
+              # - group-groupId
+              # - group-email
+              # - domain-domain
+              # - allUsers
+              # - allAuthenticatedUsers Examples:
+              # - The user liz@example.com would be user-liz@example.com.
+              # - The group example@googlegroups.com would be group-example@googlegroups.com.
+              # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+          "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+          "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+          "id": "A String", # The ID of the access-control entry.
+          "entityId": "A String", # The ID for the entity, if any.
+          "email": "A String", # The email address associated with the entity, if any.
+          "selfLink": "A String", # The link to this access-control entry.
+        },
+      ],
+      "id": "A String", # The ID of the object.
+      "size": "A String", # Content-Length of the data in bytes.
+      "timeDeleted": "A String", # Deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.
+      "md5Hash": "A String", # MD5 hash of the data; encoded using base64.
+      "crc32c": "A String", # CRC32c checksum, as described in RFC 4960, Appendix B; encoded using base64.
+      "etag": "A String", # HTTP 1.1 Entity tag for the object.
+      "metadata": { # User-provided metadata, in key/value pairs.
+        "a_key": "A String", # An individual metadata entry.
+      },
+      "updated": "A String", # Modification time of the object metadata in RFC 3339 format.
+      "contentType": "A String", # Content-Type of the object data.
+      "contentDisposition": "A String", # Content-Disposition of the object data.
+      "contentLanguage": "A String", # Content-Language of the object data.
+      "metageneration": "A String", # The generation of the metadata for this object at this generation. Used for metadata versioning. Has no meaning outside of the context of this generation.
+      "kind": "storage#object", # The kind of item this is. For objects, this is always storage#object.
+      "name": "A String", # The name of this object. Required if not specified by URL parameter.
+      "bucket": "A String", # The bucket containing this object.
+      "contentEncoding": "A String", # Content-Encoding of the object data.
+      "storageClass": "A String", # Storage class of the object.
+      "selfLink": "A String", # The link to this object.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(bucket, object, body, ifGenerationNotMatch=None, generation=None, ifMetagenerationMatch=None, ifGenerationMatch=None, ifMetagenerationNotMatch=None, projection=None)</code>
+  <pre>Updates a data blob's associated metadata.
+
+Args:
+  bucket: string, Name of the bucket in which the object resides. (required)
+  object: string, Name of the object. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An object.
+    "generation": "A String", # The content generation of this object. Used for object versioning.
+    "componentCount": 42, # Number of underlying components that make up this object. Components are accumulated by compose operations and are limited to a count of 32.
+    "mediaLink": "A String", # Media download link.
+    "owner": { # The owner of the object. This will always be the uploader of the object.
+      "entityId": "A String", # The ID for the entity.
+      "entity": "A String", # The entity, in the form user-userId.
+    },
+    "cacheControl": "A String", # Cache-Control directive for the object data.
+    "acl": [ # Access controls on the object.
+      { # An access-control entry.
+        "domain": "A String", # The domain associated with the entity, if any.
+        "generation": "A String", # The content generation of the object.
+        "object": "A String", # The name of the object.
+        "bucket": "A String", # The name of the bucket.
+        "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+        "entity": "A String", # The entity holding the permission, in one of the following forms:
+            # - user-userId
+            # - user-email
+            # - group-groupId
+            # - group-email
+            # - domain-domain
+            # - allUsers
+            # - allAuthenticatedUsers Examples:
+            # - The user liz@example.com would be user-liz@example.com.
+            # - The group example@googlegroups.com would be group-example@googlegroups.com.
+            # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+        "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+        "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+        "id": "A String", # The ID of the access-control entry.
+        "entityId": "A String", # The ID for the entity, if any.
+        "email": "A String", # The email address associated with the entity, if any.
+        "selfLink": "A String", # The link to this access-control entry.
+      },
+    ],
+    "id": "A String", # The ID of the object.
+    "size": "A String", # Content-Length of the data in bytes.
+    "timeDeleted": "A String", # Deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.
+    "md5Hash": "A String", # MD5 hash of the data; encoded using base64.
+    "crc32c": "A String", # CRC32c checksum, as described in RFC 4960, Appendix B; encoded using base64.
+    "etag": "A String", # HTTP 1.1 Entity tag for the object.
+    "metadata": { # User-provided metadata, in key/value pairs.
+      "a_key": "A String", # An individual metadata entry.
+    },
+    "updated": "A String", # Modification time of the object metadata in RFC 3339 format.
+    "contentType": "A String", # Content-Type of the object data.
+    "contentDisposition": "A String", # Content-Disposition of the object data.
+    "contentLanguage": "A String", # Content-Language of the object data.
+    "metageneration": "A String", # The generation of the metadata for this object at this generation. Used for metadata versioning. Has no meaning outside of the context of this generation.
+    "kind": "storage#object", # The kind of item this is. For objects, this is always storage#object.
+    "name": "A String", # The name of this object. Required if not specified by URL parameter.
+    "bucket": "A String", # The bucket containing this object.
+    "contentEncoding": "A String", # Content-Encoding of the object data.
+    "storageClass": "A String", # Storage class of the object.
+    "selfLink": "A String", # The link to this object.
+  }
+
+  ifGenerationNotMatch: string, Makes the operation conditional on whether the object's current generation does not match the given value.
+  generation: string, If present, selects a specific revision of this object (as opposed to the latest version, the default).
+  ifMetagenerationMatch: string, Makes the operation conditional on whether the object's current metageneration matches the given value.
+  ifGenerationMatch: string, Makes the operation conditional on whether the object's current generation matches the given value.
+  ifMetagenerationNotMatch: string, Makes the operation conditional on whether the object's current metageneration does not match the given value.
+  projection: string, Set of properties to return. Defaults to full.
+    Allowed values
+      full - Include all properties.
+      noAcl - Omit the acl property.
+
+Returns:
+  An object of the form:
+
+    { # An object.
+      "generation": "A String", # The content generation of this object. Used for object versioning.
+      "componentCount": 42, # Number of underlying components that make up this object. Components are accumulated by compose operations and are limited to a count of 32.
+      "mediaLink": "A String", # Media download link.
+      "owner": { # The owner of the object. This will always be the uploader of the object.
+        "entityId": "A String", # The ID for the entity.
+        "entity": "A String", # The entity, in the form user-userId.
+      },
+      "cacheControl": "A String", # Cache-Control directive for the object data.
+      "acl": [ # Access controls on the object.
+        { # An access-control entry.
+          "domain": "A String", # The domain associated with the entity, if any.
+          "generation": "A String", # The content generation of the object.
+          "object": "A String", # The name of the object.
+          "bucket": "A String", # The name of the bucket.
+          "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+          "entity": "A String", # The entity holding the permission, in one of the following forms:
+              # - user-userId
+              # - user-email
+              # - group-groupId
+              # - group-email
+              # - domain-domain
+              # - allUsers
+              # - allAuthenticatedUsers Examples:
+              # - The user liz@example.com would be user-liz@example.com.
+              # - The group example@googlegroups.com would be group-example@googlegroups.com.
+              # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+          "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+          "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+          "id": "A String", # The ID of the access-control entry.
+          "entityId": "A String", # The ID for the entity, if any.
+          "email": "A String", # The email address associated with the entity, if any.
+          "selfLink": "A String", # The link to this access-control entry.
+        },
+      ],
+      "id": "A String", # The ID of the object.
+      "size": "A String", # Content-Length of the data in bytes.
+      "timeDeleted": "A String", # Deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.
+      "md5Hash": "A String", # MD5 hash of the data; encoded using base64.
+      "crc32c": "A String", # CRC32c checksum, as described in RFC 4960, Appendix B; encoded using base64.
+      "etag": "A String", # HTTP 1.1 Entity tag for the object.
+      "metadata": { # User-provided metadata, in key/value pairs.
+        "a_key": "A String", # An individual metadata entry.
+      },
+      "updated": "A String", # Modification time of the object metadata in RFC 3339 format.
+      "contentType": "A String", # Content-Type of the object data.
+      "contentDisposition": "A String", # Content-Disposition of the object data.
+      "contentLanguage": "A String", # Content-Language of the object data.
+      "metageneration": "A String", # The generation of the metadata for this object at this generation. Used for metadata versioning. Has no meaning outside of the context of this generation.
+      "kind": "storage#object", # The kind of item this is. For objects, this is always storage#object.
+      "name": "A String", # The name of this object. Required if not specified by URL parameter.
+      "bucket": "A String", # The bucket containing this object.
+      "contentEncoding": "A String", # Content-Encoding of the object data.
+      "storageClass": "A String", # Storage class of the object.
+      "selfLink": "A String", # The link to this object.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update_media">update_media(bucket, object, body, ifGenerationNotMatch=None, generation=None, ifMetagenerationMatch=None, ifGenerationMatch=None, ifMetagenerationNotMatch=None, projection=None)</code>
+  <pre>Updates a data blob's associated metadata.
+
+Args:
+  bucket: string, Name of the bucket in which the object resides. (required)
+  object: string, Name of the object. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An object.
+    "generation": "A String", # The content generation of this object. Used for object versioning.
+    "componentCount": 42, # Number of underlying components that make up this object. Components are accumulated by compose operations and are limited to a count of 32.
+    "mediaLink": "A String", # Media download link.
+    "owner": { # The owner of the object. This will always be the uploader of the object.
+      "entityId": "A String", # The ID for the entity.
+      "entity": "A String", # The entity, in the form user-userId.
+    },
+    "cacheControl": "A String", # Cache-Control directive for the object data.
+    "acl": [ # Access controls on the object.
+      { # An access-control entry.
+        "domain": "A String", # The domain associated with the entity, if any.
+        "generation": "A String", # The content generation of the object.
+        "object": "A String", # The name of the object.
+        "bucket": "A String", # The name of the bucket.
+        "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
+        "entity": "A String", # The entity holding the permission, in one of the following forms:
+            # - user-userId
+            # - user-email
+            # - group-groupId
+            # - group-email
+            # - domain-domain
+            # - allUsers
+            # - allAuthenticatedUsers Examples:
+            # - The user liz@example.com would be user-liz@example.com.
+            # - The group example@googlegroups.com would be group-example@googlegroups.com.
+            # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
+        "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
+        "role": "A String", # The access permission for the entity. Can be READER or OWNER.
+        "id": "A String", # The ID of the access-control entry.
+        "entityId": "A String", # The ID for the entity, if any.
+        "email": "A String", # The email address associated with the entity, if any.
+        "selfLink": "A String", # The link to this access-control entry.
+      },
+    ],
+    "id": "A String", # The ID of the object.
+    "size": "A String", # Content-Length of the data in bytes.
+    "timeDeleted": "A String", # Deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.
+    "md5Hash": "A String", # MD5 hash of the data; encoded using base64.
+    "crc32c": "A String", # CRC32c checksum, as described in RFC 4960, Appendix B; encoded using base64.
+    "etag": "A String", # HTTP 1.1 Entity tag for the object.
+    "metadata": { # User-provided metadata, in key/value pairs.
+      "a_key": "A String", # An individual metadata entry.
+    },
+    "updated": "A String", # Modification time of the object metadata in RFC 3339 format.
+    "contentType": "A String", # Content-Type of the object data.
+    "contentDisposition": "A String", # Content-Disposition of the object data.
+    "contentLanguage": "A String", # Content-Language of the object data.
+    "metageneration": "A String", # The generation of the metadata for this object at this generation. Used for metadata versioning. Has no meaning outside of the context of this generation.
+    "kind": "storage#object", # The kind of item this is. For objects, this is always storage#object.
+    "name": "A String", # The name of this object. Required if not specified by URL parameter.
+    "bucket": "A String", # The bucket containing this object.
+    "contentEncoding": "A String", # Content-Encoding of the object data.
+    "storageClass": "A String", # Storage class of the object.
+    "selfLink": "A String", # The link to this object.
+  }
+
+  ifGenerationNotMatch: string, Makes the operation conditional on whether the object's current generation does not match the given value.
+  generation: string, If present, selects a specific revision of this object (as opposed to the latest version, the default).
+  ifMetagenerationMatch: string, Makes the operation conditional on whether the object's current metageneration matches the given value.
+  ifGenerationMatch: string, Makes the operation conditional on whether the object's current generation matches the given value.
+  ifMetagenerationNotMatch: string, Makes the operation conditional on whether the object's current metageneration does not match the given value.
+  projection: string, Set of properties to return. Defaults to full.
+    Allowed values
+      full - Include all properties.
+      noAcl - Omit the acl property.
+
+Returns:
+  The media object as a string.
+
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="watchAll">watchAll(bucket, body, projection=None, versions=None, delimiter=None, maxResults=None, pageToken=None, prefix=None)</code>
+  <pre>Watch for changes on all objects in a bucket.
+
+Args:
+  bucket: string, Name of the bucket in which to look for objects. (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, Set of properties to return. Defaults to noAcl.
+    Allowed values
+      full - Include all properties.
+      noAcl - Omit the acl property.
+  versions: boolean, If true, lists all versions of a file as distinct results.
+  delimiter: string, Returns results in a directory-like mode. items will contain only objects whose names, aside from the prefix, do not contain delimiter. Objects whose names, aside from the prefix, contain delimiter will have their name, truncated after the delimiter, returned in prefixes. Duplicate prefixes are omitted.
+  maxResults: integer, Maximum number of items plus prefixes to return. As duplicate prefixes are omitted, fewer total results may be returned than requested.
+  pageToken: string, A previously-returned page token representing part of the larger set of results to view.
+  prefix: string, Filter results to objects whose names begin with this prefix.
+
+Returns:
+  An object of the form:
+
+    { # 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.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/taskqueue_v1beta2.html b/docs/dyn/taskqueue_v1beta2.html
new file mode 100644
index 0000000..243bcdf
--- /dev/null
+++ b/docs/dyn/taskqueue_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="taskqueue_v1beta2.html">TaskQueue API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="taskqueue_v1beta2.taskqueues.html">taskqueues()</a></code>
+</p>
+<p class="firstline">Returns the taskqueues Resource.</p>
+
+<p class="toc_element">
+  <code><a href="taskqueue_v1beta2.tasks.html">tasks()</a></code>
+</p>
+<p class="firstline">Returns the tasks Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/taskqueue_v1beta2.taskqueues.html b/docs/dyn/taskqueue_v1beta2.taskqueues.html
new file mode 100644
index 0000000..3b78252
--- /dev/null
+++ b/docs/dyn/taskqueue_v1beta2.taskqueues.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="taskqueue_v1beta2.html">TaskQueue API</a> . <a href="taskqueue_v1beta2.taskqueues.html">taskqueues</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(project, taskqueue, getStats=None)</a></code></p>
+<p class="firstline">Get detailed information about a TaskQueue.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(project, taskqueue, getStats=None)</code>
+  <pre>Get detailed information about a TaskQueue.
+
+Args:
+  project: string, The project under which the queue lies. (required)
+  taskqueue: string, The id of the taskqueue to get the properties of. (required)
+  getStats: boolean, Whether to get stats. Optional.
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "taskqueues#taskqueue", # The kind of REST object returned, in this case taskqueue.
+    "stats": { # Statistics for the TaskQueue object in question.
+      "oldestTask": "A String", # The timestamp (in seconds since the epoch) of the oldest unfinished task.
+      "leasedLastMinute": "A String", # Number of tasks leased in the last minute.
+      "totalTasks": 42, # Number of tasks in the queue.
+      "leasedLastHour": "A String", # Number of tasks leased in the last hour.
+    },
+    "id": "A String", # Name of the taskqueue.
+    "maxLeases": 42, # The number of times we should lease out tasks before giving up on them. If unset we lease them out forever until a worker deletes the task.
+    "acl": { # ACLs that are applicable to this TaskQueue object.
+      "consumerEmails": [ # Email addresses of users who can "consume" tasks from the TaskQueue. This means they can Dequeue and Delete tasks from the queue.
+        "A String",
+      ],
+      "producerEmails": [ # Email addresses of users who can "produce" tasks into the TaskQueue. This means they can Insert tasks into the queue.
+        "A String",
+      ],
+      "adminEmails": [ # Email addresses of users who are "admins" of the TaskQueue. This means they can control the queue, eg set ACLs for the queue.
+        "A String",
+      ],
+    },
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/taskqueue_v1beta2.tasks.html b/docs/dyn/taskqueue_v1beta2.tasks.html
new file mode 100644
index 0000000..c9fbb64
--- /dev/null
+++ b/docs/dyn/taskqueue_v1beta2.tasks.html
@@ -0,0 +1,309 @@
+<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="taskqueue_v1beta2.html">TaskQueue API</a> . <a href="taskqueue_v1beta2.tasks.html">tasks</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(project, taskqueue, task)</a></code></p>
+<p class="firstline">Delete a task from a TaskQueue.</p>
+<p class="toc_element">
+  <code><a href="#get">get(project, taskqueue, task)</a></code></p>
+<p class="firstline">Get a particular task from a TaskQueue.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(project, taskqueue, body)</a></code></p>
+<p class="firstline">Insert a new task in a TaskQueue</p>
+<p class="toc_element">
+  <code><a href="#lease">lease(project, taskqueue, numTasks, leaseSecs, groupByTag=None, tag=None)</a></code></p>
+<p class="firstline">Lease 1 or more tasks from a TaskQueue.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, taskqueue)</a></code></p>
+<p class="firstline">List Tasks in a TaskQueue</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(project, taskqueue, task, newLeaseSeconds, body)</a></code></p>
+<p class="firstline">Update tasks that are leased out of a TaskQueue. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(project, taskqueue, task, newLeaseSeconds, body)</a></code></p>
+<p class="firstline">Update tasks that are leased out of a TaskQueue.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(project, taskqueue, task)</code>
+  <pre>Delete a task from a TaskQueue.
+
+Args:
+  project: string, The project under which the queue lies. (required)
+  taskqueue: string, The taskqueue to delete a task from. (required)
+  task: string, The id of the task to delete. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, taskqueue, task)</code>
+  <pre>Get a particular task from a TaskQueue.
+
+Args:
+  project: string, The project under which the queue lies. (required)
+  taskqueue: string, The taskqueue in which the task belongs. (required)
+  task: string, The task to get properties of. (required)
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "taskqueues#task", # The kind of object returned, in this case set to task.
+      "leaseTimestamp": "A String", # Time (in seconds since the epoch) at which the task lease will expire. This value is 0 if the task isnt currently leased out to a worker.
+      "id": "A String", # Name of the task.
+      "retry_count": 42, # The number of leases applied to this task.
+      "tag": "A String", # Tag for the task, could be used later to lease tasks grouped by a specific tag.
+      "payloadBase64": "A String", # A bag of bytes which is the task payload. The payload on the JSON side is always Base64 encoded.
+      "queueName": "A String", # Name of the queue that the task is in.
+      "enqueueTimestamp": "A String", # Time (in seconds since the epoch) at which the task was enqueued.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(project, taskqueue, body)</code>
+  <pre>Insert a new task in a TaskQueue
+
+Args:
+  project: string, The project under which the queue lies (required)
+  taskqueue: string, The taskqueue to insert the task into (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "kind": "taskqueues#task", # The kind of object returned, in this case set to task.
+    "leaseTimestamp": "A String", # Time (in seconds since the epoch) at which the task lease will expire. This value is 0 if the task isnt currently leased out to a worker.
+    "id": "A String", # Name of the task.
+    "retry_count": 42, # The number of leases applied to this task.
+    "tag": "A String", # Tag for the task, could be used later to lease tasks grouped by a specific tag.
+    "payloadBase64": "A String", # A bag of bytes which is the task payload. The payload on the JSON side is always Base64 encoded.
+    "queueName": "A String", # Name of the queue that the task is in.
+    "enqueueTimestamp": "A String", # Time (in seconds since the epoch) at which the task was enqueued.
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "taskqueues#task", # The kind of object returned, in this case set to task.
+      "leaseTimestamp": "A String", # Time (in seconds since the epoch) at which the task lease will expire. This value is 0 if the task isnt currently leased out to a worker.
+      "id": "A String", # Name of the task.
+      "retry_count": 42, # The number of leases applied to this task.
+      "tag": "A String", # Tag for the task, could be used later to lease tasks grouped by a specific tag.
+      "payloadBase64": "A String", # A bag of bytes which is the task payload. The payload on the JSON side is always Base64 encoded.
+      "queueName": "A String", # Name of the queue that the task is in.
+      "enqueueTimestamp": "A String", # Time (in seconds since the epoch) at which the task was enqueued.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="lease">lease(project, taskqueue, numTasks, leaseSecs, groupByTag=None, tag=None)</code>
+  <pre>Lease 1 or more tasks from a TaskQueue.
+
+Args:
+  project: string, The project under which the queue lies. (required)
+  taskqueue: string, The taskqueue to lease a task from. (required)
+  numTasks: integer, The number of tasks to lease. (required)
+  leaseSecs: integer, The lease in seconds. (required)
+  groupByTag: boolean, When true, all returned tasks will have the same tag
+  tag: string, The tag allowed for tasks in the response. Must only be specified if group_by_tag is true. If group_by_tag is true and tag is not specified the tag will be that of the oldest task by eta, i.e. the first available tag
+
+Returns:
+  An object of the form:
+
+    {
+    "items": [ # The actual list of tasks returned as a result of the lease operation.
+      {
+          "kind": "taskqueues#task", # The kind of object returned, in this case set to task.
+          "leaseTimestamp": "A String", # Time (in seconds since the epoch) at which the task lease will expire. This value is 0 if the task isnt currently leased out to a worker.
+          "id": "A String", # Name of the task.
+          "retry_count": 42, # The number of leases applied to this task.
+          "tag": "A String", # Tag for the task, could be used later to lease tasks grouped by a specific tag.
+          "payloadBase64": "A String", # A bag of bytes which is the task payload. The payload on the JSON side is always Base64 encoded.
+          "queueName": "A String", # Name of the queue that the task is in.
+          "enqueueTimestamp": "A String", # Time (in seconds since the epoch) at which the task was enqueued.
+        },
+    ],
+    "kind": "taskqueue#tasks", # The kind of object returned, a list of tasks.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, taskqueue)</code>
+  <pre>List Tasks in a TaskQueue
+
+Args:
+  project: string, The project under which the queue lies. (required)
+  taskqueue: string, The id of the taskqueue to list tasks from. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "items": [ # The actual list of tasks currently active in the TaskQueue.
+      {
+          "kind": "taskqueues#task", # The kind of object returned, in this case set to task.
+          "leaseTimestamp": "A String", # Time (in seconds since the epoch) at which the task lease will expire. This value is 0 if the task isnt currently leased out to a worker.
+          "id": "A String", # Name of the task.
+          "retry_count": 42, # The number of leases applied to this task.
+          "tag": "A String", # Tag for the task, could be used later to lease tasks grouped by a specific tag.
+          "payloadBase64": "A String", # A bag of bytes which is the task payload. The payload on the JSON side is always Base64 encoded.
+          "queueName": "A String", # Name of the queue that the task is in.
+          "enqueueTimestamp": "A String", # Time (in seconds since the epoch) at which the task was enqueued.
+        },
+    ],
+    "kind": "taskqueues#tasks", # The kind of object returned, a list of tasks.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(project, taskqueue, task, newLeaseSeconds, body)</code>
+  <pre>Update tasks that are leased out of a TaskQueue. This method supports patch semantics.
+
+Args:
+  project: string, The project under which the queue lies. (required)
+  taskqueue: string, A parameter (required)
+  task: string, A parameter (required)
+  newLeaseSeconds: integer, The new lease in seconds. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "kind": "taskqueues#task", # The kind of object returned, in this case set to task.
+    "leaseTimestamp": "A String", # Time (in seconds since the epoch) at which the task lease will expire. This value is 0 if the task isnt currently leased out to a worker.
+    "id": "A String", # Name of the task.
+    "retry_count": 42, # The number of leases applied to this task.
+    "tag": "A String", # Tag for the task, could be used later to lease tasks grouped by a specific tag.
+    "payloadBase64": "A String", # A bag of bytes which is the task payload. The payload on the JSON side is always Base64 encoded.
+    "queueName": "A String", # Name of the queue that the task is in.
+    "enqueueTimestamp": "A String", # Time (in seconds since the epoch) at which the task was enqueued.
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "taskqueues#task", # The kind of object returned, in this case set to task.
+      "leaseTimestamp": "A String", # Time (in seconds since the epoch) at which the task lease will expire. This value is 0 if the task isnt currently leased out to a worker.
+      "id": "A String", # Name of the task.
+      "retry_count": 42, # The number of leases applied to this task.
+      "tag": "A String", # Tag for the task, could be used later to lease tasks grouped by a specific tag.
+      "payloadBase64": "A String", # A bag of bytes which is the task payload. The payload on the JSON side is always Base64 encoded.
+      "queueName": "A String", # Name of the queue that the task is in.
+      "enqueueTimestamp": "A String", # Time (in seconds since the epoch) at which the task was enqueued.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(project, taskqueue, task, newLeaseSeconds, body)</code>
+  <pre>Update tasks that are leased out of a TaskQueue.
+
+Args:
+  project: string, The project under which the queue lies. (required)
+  taskqueue: string, A parameter (required)
+  task: string, A parameter (required)
+  newLeaseSeconds: integer, The new lease in seconds. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "kind": "taskqueues#task", # The kind of object returned, in this case set to task.
+    "leaseTimestamp": "A String", # Time (in seconds since the epoch) at which the task lease will expire. This value is 0 if the task isnt currently leased out to a worker.
+    "id": "A String", # Name of the task.
+    "retry_count": 42, # The number of leases applied to this task.
+    "tag": "A String", # Tag for the task, could be used later to lease tasks grouped by a specific tag.
+    "payloadBase64": "A String", # A bag of bytes which is the task payload. The payload on the JSON side is always Base64 encoded.
+    "queueName": "A String", # Name of the queue that the task is in.
+    "enqueueTimestamp": "A String", # Time (in seconds since the epoch) at which the task was enqueued.
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "taskqueues#task", # The kind of object returned, in this case set to task.
+      "leaseTimestamp": "A String", # Time (in seconds since the epoch) at which the task lease will expire. This value is 0 if the task isnt currently leased out to a worker.
+      "id": "A String", # Name of the task.
+      "retry_count": 42, # The number of leases applied to this task.
+      "tag": "A String", # Tag for the task, could be used later to lease tasks grouped by a specific tag.
+      "payloadBase64": "A String", # A bag of bytes which is the task payload. The payload on the JSON side is always Base64 encoded.
+      "queueName": "A String", # Name of the queue that the task is in.
+      "enqueueTimestamp": "A String", # Time (in seconds since the epoch) at which the task was enqueued.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/tasks_v1.html b/docs/dyn/tasks_v1.html
new file mode 100644
index 0000000..5acf5d4
--- /dev/null
+++ b/docs/dyn/tasks_v1.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="tasks_v1.html">Tasks API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="tasks_v1.tasklists.html">tasklists()</a></code>
+</p>
+<p class="firstline">Returns the tasklists Resource.</p>
+
+<p class="toc_element">
+  <code><a href="tasks_v1.tasks.html">tasks()</a></code>
+</p>
+<p class="firstline">Returns the tasks Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/tasks_v1.tasklists.html b/docs/dyn/tasks_v1.tasklists.html
new file mode 100644
index 0000000..3e70ee3
--- /dev/null
+++ b/docs/dyn/tasks_v1.tasklists.html
@@ -0,0 +1,265 @@
+<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="tasks_v1.html">Tasks API</a> . <a href="tasks_v1.tasklists.html">tasklists</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(tasklist)</a></code></p>
+<p class="firstline">Deletes the authenticated user's specified task list.</p>
+<p class="toc_element">
+  <code><a href="#get">get(tasklist)</a></code></p>
+<p class="firstline">Returns the authenticated user's specified task list.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(body)</a></code></p>
+<p class="firstline">Creates a new task list and adds it to the authenticated user's task lists.</p>
+<p class="toc_element">
+  <code><a href="#list">list(pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Returns all the authenticated user's task lists.</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(tasklist, body)</a></code></p>
+<p class="firstline">Updates the authenticated user's specified task list. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(tasklist, body)</a></code></p>
+<p class="firstline">Updates the authenticated user's specified task list.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(tasklist)</code>
+  <pre>Deletes the authenticated user's specified task list.
+
+Args:
+  tasklist: string, Task list identifier. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(tasklist)</code>
+  <pre>Returns the authenticated user's specified task list.
+
+Args:
+  tasklist: string, Task list identifier. (required)
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "tasks#taskList", # Type of the resource. This is always "tasks#taskList".
+      "title": "A String", # Title of the task list.
+      "updated": "A String", # Last modification time of the task list (as a RFC 3339 timestamp).
+      "etag": "A String", # ETag of the resource.
+      "id": "A String", # Task list identifier.
+      "selfLink": "A String", # URL pointing to this task list. Used to retrieve, update, or delete this task list.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(body)</code>
+  <pre>Creates a new task list and adds it to the authenticated user's task lists.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "kind": "tasks#taskList", # Type of the resource. This is always "tasks#taskList".
+    "title": "A String", # Title of the task list.
+    "updated": "A String", # Last modification time of the task list (as a RFC 3339 timestamp).
+    "etag": "A String", # ETag of the resource.
+    "id": "A String", # Task list identifier.
+    "selfLink": "A String", # URL pointing to this task list. Used to retrieve, update, or delete this task list.
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "tasks#taskList", # Type of the resource. This is always "tasks#taskList".
+      "title": "A String", # Title of the task list.
+      "updated": "A String", # Last modification time of the task list (as a RFC 3339 timestamp).
+      "etag": "A String", # ETag of the resource.
+      "id": "A String", # Task list identifier.
+      "selfLink": "A String", # URL pointing to this task list. Used to retrieve, update, or delete this task list.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(pageToken=None, maxResults=None)</code>
+  <pre>Returns all the authenticated user's task lists.
+
+Args:
+  pageToken: string, Token specifying the result page to return. Optional.
+  maxResults: string, Maximum number of task lists returned on one page. Optional. The default is 100.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Token that can be used to request the next page of this result.
+    "items": [ # Collection of task lists.
+      {
+          "kind": "tasks#taskList", # Type of the resource. This is always "tasks#taskList".
+          "title": "A String", # Title of the task list.
+          "updated": "A String", # Last modification time of the task list (as a RFC 3339 timestamp).
+          "etag": "A String", # ETag of the resource.
+          "id": "A String", # Task list identifier.
+          "selfLink": "A String", # URL pointing to this task list. Used to retrieve, update, or delete this task list.
+        },
+    ],
+    "kind": "tasks#taskLists", # Type of the resource. This is always "tasks#taskLists".
+    "etag": "A String", # ETag of the resource.
+  }</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(tasklist, body)</code>
+  <pre>Updates the authenticated user's specified task list. This method supports patch semantics.
+
+Args:
+  tasklist: string, Task list identifier. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "kind": "tasks#taskList", # Type of the resource. This is always "tasks#taskList".
+    "title": "A String", # Title of the task list.
+    "updated": "A String", # Last modification time of the task list (as a RFC 3339 timestamp).
+    "etag": "A String", # ETag of the resource.
+    "id": "A String", # Task list identifier.
+    "selfLink": "A String", # URL pointing to this task list. Used to retrieve, update, or delete this task list.
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "tasks#taskList", # Type of the resource. This is always "tasks#taskList".
+      "title": "A String", # Title of the task list.
+      "updated": "A String", # Last modification time of the task list (as a RFC 3339 timestamp).
+      "etag": "A String", # ETag of the resource.
+      "id": "A String", # Task list identifier.
+      "selfLink": "A String", # URL pointing to this task list. Used to retrieve, update, or delete this task list.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(tasklist, body)</code>
+  <pre>Updates the authenticated user's specified task list.
+
+Args:
+  tasklist: string, Task list identifier. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "kind": "tasks#taskList", # Type of the resource. This is always "tasks#taskList".
+    "title": "A String", # Title of the task list.
+    "updated": "A String", # Last modification time of the task list (as a RFC 3339 timestamp).
+    "etag": "A String", # ETag of the resource.
+    "id": "A String", # Task list identifier.
+    "selfLink": "A String", # URL pointing to this task list. Used to retrieve, update, or delete this task list.
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "tasks#taskList", # Type of the resource. This is always "tasks#taskList".
+      "title": "A String", # Title of the task list.
+      "updated": "A String", # Last modification time of the task list (as a RFC 3339 timestamp).
+      "etag": "A String", # ETag of the resource.
+      "id": "A String", # Task list identifier.
+      "selfLink": "A String", # URL pointing to this task list. Used to retrieve, update, or delete this task list.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/tasks_v1.tasks.html b/docs/dyn/tasks_v1.tasks.html
new file mode 100644
index 0000000..d580833
--- /dev/null
+++ b/docs/dyn/tasks_v1.tasks.html
@@ -0,0 +1,454 @@
+<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="tasks_v1.html">Tasks API</a> . <a href="tasks_v1.tasks.html">tasks</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#clear">clear(tasklist)</a></code></p>
+<p class="firstline">Clears all completed tasks from the specified task list. The affected tasks will be marked as 'hidden' and no longer be returned by default when retrieving all tasks for a task list.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(tasklist, task)</a></code></p>
+<p class="firstline">Deletes the specified task from the task list.</p>
+<p class="toc_element">
+  <code><a href="#get">get(tasklist, task)</a></code></p>
+<p class="firstline">Returns the specified task.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(tasklist, body, parent=None, previous=None)</a></code></p>
+<p class="firstline">Creates a new task on the specified task list.</p>
+<p class="toc_element">
+  <code><a href="#list">list(tasklist, showCompleted=None, dueMin=None, dueMax=None, pageToken=None, updatedMin=None, showDeleted=None, completedMax=None, maxResults=None, completedMin=None, showHidden=None)</a></code></p>
+<p class="firstline">Returns all tasks in the specified task list.</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="#move">move(tasklist, task, parent=None, previous=None)</a></code></p>
+<p class="firstline">Moves the specified task to another position in the task list. This can include putting it as a child task under a new parent and/or move it to a different position among its sibling tasks.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(tasklist, task, body)</a></code></p>
+<p class="firstline">Updates the specified task. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(tasklist, task, body)</a></code></p>
+<p class="firstline">Updates the specified task.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="clear">clear(tasklist)</code>
+  <pre>Clears all completed tasks from the specified task list. The affected tasks will be marked as 'hidden' and no longer be returned by default when retrieving all tasks for a task list.
+
+Args:
+  tasklist: string, Task list identifier. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(tasklist, task)</code>
+  <pre>Deletes the specified task from the task list.
+
+Args:
+  tasklist: string, Task list identifier. (required)
+  task: string, Task identifier. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(tasklist, task)</code>
+  <pre>Returns the specified task.
+
+Args:
+  tasklist: string, Task list identifier. (required)
+  task: string, Task identifier. (required)
+
+Returns:
+  An object of the form:
+
+    {
+      "status": "A String", # Status of the task. This is either "needsAction" or "completed".
+      "kind": "tasks#task", # Type of the resource. This is always "tasks#task".
+      "updated": "A String", # Last modification time of the task (as a RFC 3339 timestamp).
+      "parent": "A String", # Parent task identifier. This field is omitted if it is a top-level task. This field is read-only. Use the "move" method to move the task under a different parent or to the top level.
+      "links": [ # Collection of links. This collection is read-only.
+        {
+          "type": "A String", # Type of the link, e.g. "email".
+          "link": "A String", # The URL.
+          "description": "A String", # The description. In HTML speak: Everything between <a> and </a>.
+        },
+      ],
+      "title": "A String", # Title of the task.
+      "deleted": True or False, # Flag indicating whether the task has been deleted. The default if False.
+      "completed": "A String", # Completion date of the task (as a RFC 3339 timestamp). This field is omitted if the task has not been completed.
+      "due": "A String", # Due date of the task (as a RFC 3339 timestamp). Optional.
+      "etag": "A String", # ETag of the resource.
+      "notes": "A String", # Notes describing the task. Optional.
+      "position": "A String", # String indicating the position of the task among its sibling tasks under the same parent task or at the top level. If this string is greater than another task's corresponding position string according to lexicographical ordering, the task is positioned after the other task under the same parent task (or at the top level). This field is read-only. Use the "move" method to move the task to another position.
+      "hidden": True or False, # Flag indicating whether the task is hidden. This is the case if the task had been marked completed when the task list was last cleared. The default is False. This field is read-only.
+      "id": "A String", # Task identifier.
+      "selfLink": "A String", # URL pointing to this task. Used to retrieve, update, or delete this task.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(tasklist, body, parent=None, previous=None)</code>
+  <pre>Creates a new task on the specified task list.
+
+Args:
+  tasklist: string, Task list identifier. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "status": "A String", # Status of the task. This is either "needsAction" or "completed".
+    "kind": "tasks#task", # Type of the resource. This is always "tasks#task".
+    "updated": "A String", # Last modification time of the task (as a RFC 3339 timestamp).
+    "parent": "A String", # Parent task identifier. This field is omitted if it is a top-level task. This field is read-only. Use the "move" method to move the task under a different parent or to the top level.
+    "links": [ # Collection of links. This collection is read-only.
+      {
+        "type": "A String", # Type of the link, e.g. "email".
+        "link": "A String", # The URL.
+        "description": "A String", # The description. In HTML speak: Everything between <a> and </a>.
+      },
+    ],
+    "title": "A String", # Title of the task.
+    "deleted": True or False, # Flag indicating whether the task has been deleted. The default if False.
+    "completed": "A String", # Completion date of the task (as a RFC 3339 timestamp). This field is omitted if the task has not been completed.
+    "due": "A String", # Due date of the task (as a RFC 3339 timestamp). Optional.
+    "etag": "A String", # ETag of the resource.
+    "notes": "A String", # Notes describing the task. Optional.
+    "position": "A String", # String indicating the position of the task among its sibling tasks under the same parent task or at the top level. If this string is greater than another task's corresponding position string according to lexicographical ordering, the task is positioned after the other task under the same parent task (or at the top level). This field is read-only. Use the "move" method to move the task to another position.
+    "hidden": True or False, # Flag indicating whether the task is hidden. This is the case if the task had been marked completed when the task list was last cleared. The default is False. This field is read-only.
+    "id": "A String", # Task identifier.
+    "selfLink": "A String", # URL pointing to this task. Used to retrieve, update, or delete this task.
+  }
+
+  parent: string, Parent task identifier. If the task is created at the top level, this parameter is omitted. Optional.
+  previous: string, Previous sibling task identifier. If the task is created at the first position among its siblings, this parameter is omitted. Optional.
+
+Returns:
+  An object of the form:
+
+    {
+      "status": "A String", # Status of the task. This is either "needsAction" or "completed".
+      "kind": "tasks#task", # Type of the resource. This is always "tasks#task".
+      "updated": "A String", # Last modification time of the task (as a RFC 3339 timestamp).
+      "parent": "A String", # Parent task identifier. This field is omitted if it is a top-level task. This field is read-only. Use the "move" method to move the task under a different parent or to the top level.
+      "links": [ # Collection of links. This collection is read-only.
+        {
+          "type": "A String", # Type of the link, e.g. "email".
+          "link": "A String", # The URL.
+          "description": "A String", # The description. In HTML speak: Everything between <a> and </a>.
+        },
+      ],
+      "title": "A String", # Title of the task.
+      "deleted": True or False, # Flag indicating whether the task has been deleted. The default if False.
+      "completed": "A String", # Completion date of the task (as a RFC 3339 timestamp). This field is omitted if the task has not been completed.
+      "due": "A String", # Due date of the task (as a RFC 3339 timestamp). Optional.
+      "etag": "A String", # ETag of the resource.
+      "notes": "A String", # Notes describing the task. Optional.
+      "position": "A String", # String indicating the position of the task among its sibling tasks under the same parent task or at the top level. If this string is greater than another task's corresponding position string according to lexicographical ordering, the task is positioned after the other task under the same parent task (or at the top level). This field is read-only. Use the "move" method to move the task to another position.
+      "hidden": True or False, # Flag indicating whether the task is hidden. This is the case if the task had been marked completed when the task list was last cleared. The default is False. This field is read-only.
+      "id": "A String", # Task identifier.
+      "selfLink": "A String", # URL pointing to this task. Used to retrieve, update, or delete this task.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(tasklist, showCompleted=None, dueMin=None, dueMax=None, pageToken=None, updatedMin=None, showDeleted=None, completedMax=None, maxResults=None, completedMin=None, showHidden=None)</code>
+  <pre>Returns all tasks in the specified task list.
+
+Args:
+  tasklist: string, Task list identifier. (required)
+  showCompleted: boolean, Flag indicating whether completed tasks are returned in the result. Optional. The default is True.
+  dueMin: string, Lower bound for a task's due date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by due date.
+  dueMax: string, Upper bound for a task's due date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by due date.
+  pageToken: string, Token specifying the result page to return. Optional.
+  updatedMin: string, Lower bound for a task's last modification time (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by last modification time.
+  showDeleted: boolean, Flag indicating whether deleted tasks are returned in the result. Optional. The default is False.
+  completedMax: string, Upper bound for a task's completion date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by completion date.
+  maxResults: string, Maximum number of task lists returned on one page. Optional. The default is 100.
+  completedMin: string, Lower bound for a task's completion date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by completion date.
+  showHidden: boolean, Flag indicating whether hidden tasks are returned in the result. Optional. The default is False.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # Token used to access the next page of this result.
+    "items": [ # Collection of tasks.
+      {
+          "status": "A String", # Status of the task. This is either "needsAction" or "completed".
+          "kind": "tasks#task", # Type of the resource. This is always "tasks#task".
+          "updated": "A String", # Last modification time of the task (as a RFC 3339 timestamp).
+          "parent": "A String", # Parent task identifier. This field is omitted if it is a top-level task. This field is read-only. Use the "move" method to move the task under a different parent or to the top level.
+          "links": [ # Collection of links. This collection is read-only.
+            {
+              "type": "A String", # Type of the link, e.g. "email".
+              "link": "A String", # The URL.
+              "description": "A String", # The description. In HTML speak: Everything between <a> and </a>.
+            },
+          ],
+          "title": "A String", # Title of the task.
+          "deleted": True or False, # Flag indicating whether the task has been deleted. The default if False.
+          "completed": "A String", # Completion date of the task (as a RFC 3339 timestamp). This field is omitted if the task has not been completed.
+          "due": "A String", # Due date of the task (as a RFC 3339 timestamp). Optional.
+          "etag": "A String", # ETag of the resource.
+          "notes": "A String", # Notes describing the task. Optional.
+          "position": "A String", # String indicating the position of the task among its sibling tasks under the same parent task or at the top level. If this string is greater than another task's corresponding position string according to lexicographical ordering, the task is positioned after the other task under the same parent task (or at the top level). This field is read-only. Use the "move" method to move the task to another position.
+          "hidden": True or False, # Flag indicating whether the task is hidden. This is the case if the task had been marked completed when the task list was last cleared. The default is False. This field is read-only.
+          "id": "A String", # Task identifier.
+          "selfLink": "A String", # URL pointing to this task. Used to retrieve, update, or delete this task.
+        },
+    ],
+    "kind": "tasks#tasks", # Type of the resource. This is always "tasks#tasks".
+    "etag": "A String", # ETag of the resource.
+  }</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="move">move(tasklist, task, parent=None, previous=None)</code>
+  <pre>Moves the specified task to another position in the task list. This can include putting it as a child task under a new parent and/or move it to a different position among its sibling tasks.
+
+Args:
+  tasklist: string, Task list identifier. (required)
+  task: string, Task identifier. (required)
+  parent: string, New parent task identifier. If the task is moved to the top level, this parameter is omitted. Optional.
+  previous: string, New previous sibling task identifier. If the task is moved to the first position among its siblings, this parameter is omitted. Optional.
+
+Returns:
+  An object of the form:
+
+    {
+      "status": "A String", # Status of the task. This is either "needsAction" or "completed".
+      "kind": "tasks#task", # Type of the resource. This is always "tasks#task".
+      "updated": "A String", # Last modification time of the task (as a RFC 3339 timestamp).
+      "parent": "A String", # Parent task identifier. This field is omitted if it is a top-level task. This field is read-only. Use the "move" method to move the task under a different parent or to the top level.
+      "links": [ # Collection of links. This collection is read-only.
+        {
+          "type": "A String", # Type of the link, e.g. "email".
+          "link": "A String", # The URL.
+          "description": "A String", # The description. In HTML speak: Everything between <a> and </a>.
+        },
+      ],
+      "title": "A String", # Title of the task.
+      "deleted": True or False, # Flag indicating whether the task has been deleted. The default if False.
+      "completed": "A String", # Completion date of the task (as a RFC 3339 timestamp). This field is omitted if the task has not been completed.
+      "due": "A String", # Due date of the task (as a RFC 3339 timestamp). Optional.
+      "etag": "A String", # ETag of the resource.
+      "notes": "A String", # Notes describing the task. Optional.
+      "position": "A String", # String indicating the position of the task among its sibling tasks under the same parent task or at the top level. If this string is greater than another task's corresponding position string according to lexicographical ordering, the task is positioned after the other task under the same parent task (or at the top level). This field is read-only. Use the "move" method to move the task to another position.
+      "hidden": True or False, # Flag indicating whether the task is hidden. This is the case if the task had been marked completed when the task list was last cleared. The default is False. This field is read-only.
+      "id": "A String", # Task identifier.
+      "selfLink": "A String", # URL pointing to this task. Used to retrieve, update, or delete this task.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(tasklist, task, body)</code>
+  <pre>Updates the specified task. This method supports patch semantics.
+
+Args:
+  tasklist: string, Task list identifier. (required)
+  task: string, Task identifier. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "status": "A String", # Status of the task. This is either "needsAction" or "completed".
+    "kind": "tasks#task", # Type of the resource. This is always "tasks#task".
+    "updated": "A String", # Last modification time of the task (as a RFC 3339 timestamp).
+    "parent": "A String", # Parent task identifier. This field is omitted if it is a top-level task. This field is read-only. Use the "move" method to move the task under a different parent or to the top level.
+    "links": [ # Collection of links. This collection is read-only.
+      {
+        "type": "A String", # Type of the link, e.g. "email".
+        "link": "A String", # The URL.
+        "description": "A String", # The description. In HTML speak: Everything between <a> and </a>.
+      },
+    ],
+    "title": "A String", # Title of the task.
+    "deleted": True or False, # Flag indicating whether the task has been deleted. The default if False.
+    "completed": "A String", # Completion date of the task (as a RFC 3339 timestamp). This field is omitted if the task has not been completed.
+    "due": "A String", # Due date of the task (as a RFC 3339 timestamp). Optional.
+    "etag": "A String", # ETag of the resource.
+    "notes": "A String", # Notes describing the task. Optional.
+    "position": "A String", # String indicating the position of the task among its sibling tasks under the same parent task or at the top level. If this string is greater than another task's corresponding position string according to lexicographical ordering, the task is positioned after the other task under the same parent task (or at the top level). This field is read-only. Use the "move" method to move the task to another position.
+    "hidden": True or False, # Flag indicating whether the task is hidden. This is the case if the task had been marked completed when the task list was last cleared. The default is False. This field is read-only.
+    "id": "A String", # Task identifier.
+    "selfLink": "A String", # URL pointing to this task. Used to retrieve, update, or delete this task.
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "status": "A String", # Status of the task. This is either "needsAction" or "completed".
+      "kind": "tasks#task", # Type of the resource. This is always "tasks#task".
+      "updated": "A String", # Last modification time of the task (as a RFC 3339 timestamp).
+      "parent": "A String", # Parent task identifier. This field is omitted if it is a top-level task. This field is read-only. Use the "move" method to move the task under a different parent or to the top level.
+      "links": [ # Collection of links. This collection is read-only.
+        {
+          "type": "A String", # Type of the link, e.g. "email".
+          "link": "A String", # The URL.
+          "description": "A String", # The description. In HTML speak: Everything between <a> and </a>.
+        },
+      ],
+      "title": "A String", # Title of the task.
+      "deleted": True or False, # Flag indicating whether the task has been deleted. The default if False.
+      "completed": "A String", # Completion date of the task (as a RFC 3339 timestamp). This field is omitted if the task has not been completed.
+      "due": "A String", # Due date of the task (as a RFC 3339 timestamp). Optional.
+      "etag": "A String", # ETag of the resource.
+      "notes": "A String", # Notes describing the task. Optional.
+      "position": "A String", # String indicating the position of the task among its sibling tasks under the same parent task or at the top level. If this string is greater than another task's corresponding position string according to lexicographical ordering, the task is positioned after the other task under the same parent task (or at the top level). This field is read-only. Use the "move" method to move the task to another position.
+      "hidden": True or False, # Flag indicating whether the task is hidden. This is the case if the task had been marked completed when the task list was last cleared. The default is False. This field is read-only.
+      "id": "A String", # Task identifier.
+      "selfLink": "A String", # URL pointing to this task. Used to retrieve, update, or delete this task.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(tasklist, task, body)</code>
+  <pre>Updates the specified task.
+
+Args:
+  tasklist: string, Task list identifier. (required)
+  task: string, Task identifier. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "status": "A String", # Status of the task. This is either "needsAction" or "completed".
+    "kind": "tasks#task", # Type of the resource. This is always "tasks#task".
+    "updated": "A String", # Last modification time of the task (as a RFC 3339 timestamp).
+    "parent": "A String", # Parent task identifier. This field is omitted if it is a top-level task. This field is read-only. Use the "move" method to move the task under a different parent or to the top level.
+    "links": [ # Collection of links. This collection is read-only.
+      {
+        "type": "A String", # Type of the link, e.g. "email".
+        "link": "A String", # The URL.
+        "description": "A String", # The description. In HTML speak: Everything between <a> and </a>.
+      },
+    ],
+    "title": "A String", # Title of the task.
+    "deleted": True or False, # Flag indicating whether the task has been deleted. The default if False.
+    "completed": "A String", # Completion date of the task (as a RFC 3339 timestamp). This field is omitted if the task has not been completed.
+    "due": "A String", # Due date of the task (as a RFC 3339 timestamp). Optional.
+    "etag": "A String", # ETag of the resource.
+    "notes": "A String", # Notes describing the task. Optional.
+    "position": "A String", # String indicating the position of the task among its sibling tasks under the same parent task or at the top level. If this string is greater than another task's corresponding position string according to lexicographical ordering, the task is positioned after the other task under the same parent task (or at the top level). This field is read-only. Use the "move" method to move the task to another position.
+    "hidden": True or False, # Flag indicating whether the task is hidden. This is the case if the task had been marked completed when the task list was last cleared. The default is False. This field is read-only.
+    "id": "A String", # Task identifier.
+    "selfLink": "A String", # URL pointing to this task. Used to retrieve, update, or delete this task.
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "status": "A String", # Status of the task. This is either "needsAction" or "completed".
+      "kind": "tasks#task", # Type of the resource. This is always "tasks#task".
+      "updated": "A String", # Last modification time of the task (as a RFC 3339 timestamp).
+      "parent": "A String", # Parent task identifier. This field is omitted if it is a top-level task. This field is read-only. Use the "move" method to move the task under a different parent or to the top level.
+      "links": [ # Collection of links. This collection is read-only.
+        {
+          "type": "A String", # Type of the link, e.g. "email".
+          "link": "A String", # The URL.
+          "description": "A String", # The description. In HTML speak: Everything between <a> and </a>.
+        },
+      ],
+      "title": "A String", # Title of the task.
+      "deleted": True or False, # Flag indicating whether the task has been deleted. The default if False.
+      "completed": "A String", # Completion date of the task (as a RFC 3339 timestamp). This field is omitted if the task has not been completed.
+      "due": "A String", # Due date of the task (as a RFC 3339 timestamp). Optional.
+      "etag": "A String", # ETag of the resource.
+      "notes": "A String", # Notes describing the task. Optional.
+      "position": "A String", # String indicating the position of the task among its sibling tasks under the same parent task or at the top level. If this string is greater than another task's corresponding position string according to lexicographical ordering, the task is positioned after the other task under the same parent task (or at the top level). This field is read-only. Use the "move" method to move the task to another position.
+      "hidden": True or False, # Flag indicating whether the task is hidden. This is the case if the task had been marked completed when the task list was last cleared. The default is False. This field is read-only.
+      "id": "A String", # Task identifier.
+      "selfLink": "A String", # URL pointing to this task. Used to retrieve, update, or delete this task.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/translate_v2.detections.html b/docs/dyn/translate_v2.detections.html
new file mode 100644
index 0000000..7c20f82
--- /dev/null
+++ b/docs/dyn/translate_v2.detections.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="translate_v2.html">Translate API</a> . <a href="translate_v2.detections.html">detections</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(q)</a></code></p>
+<p class="firstline">Detect the language of text.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(q)</code>
+  <pre>Detect the language of text.
+
+Args:
+  q: string, The text to detect (required) (repeated)
+
+Returns:
+  An object of the form:
+
+    {
+    "detections": [ # A detections contains detection results of several text
+      [ # An array of languages which we detect for the given text The most likely language list first.
+        {
+          "isReliable": True or False, # A boolean to indicate is the language detection result reliable.
+          "confidence": 3.14, # The confidence of the detection resul of this language.
+          "language": "A String", # The language we detect
+        },
+      ],
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/translate_v2.html b/docs/dyn/translate_v2.html
new file mode 100644
index 0000000..fbb90f7
--- /dev/null
+++ b/docs/dyn/translate_v2.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="translate_v2.html">Translate API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="translate_v2.detections.html">detections()</a></code>
+</p>
+<p class="firstline">Returns the detections Resource.</p>
+
+<p class="toc_element">
+  <code><a href="translate_v2.languages.html">languages()</a></code>
+</p>
+<p class="firstline">Returns the languages Resource.</p>
+
+<p class="toc_element">
+  <code><a href="translate_v2.translations.html">translations()</a></code>
+</p>
+<p class="firstline">Returns the translations Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/translate_v2.languages.html b/docs/dyn/translate_v2.languages.html
new file mode 100644
index 0000000..9bb4afd
--- /dev/null
+++ b/docs/dyn/translate_v2.languages.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="translate_v2.html">Translate API</a> . <a href="translate_v2.languages.html">languages</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(target=None)</a></code></p>
+<p class="firstline">List the source/target languages supported by the API</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(target=None)</code>
+  <pre>List the source/target languages supported by the API
+
+Args:
+  target: string, the language and collation in which the localized results should be returned
+
+Returns:
+  An object of the form:
+
+    {
+    "languages": [ # List of source/target languages supported by the translation API. If target parameter is unspecified, the list is sorted by the ASCII code point order of the language code. If target parameter is specified, the list is sorted by the collation order of the language name in the target language.
+      {
+        "name": "A String", # The localized name of the language if target parameter is given.
+        "language": "A String", # The language code.
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/translate_v2.translations.html b/docs/dyn/translate_v2.translations.html
new file mode 100644
index 0000000..1783dc6
--- /dev/null
+++ b/docs/dyn/translate_v2.translations.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="translate_v2.html">Translate API</a> . <a href="translate_v2.translations.html">translations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(q, target, format=None, cid=None, source=None)</a></code></p>
+<p class="firstline">Returns text translations from one language to another.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(q, target, format=None, cid=None, source=None)</code>
+  <pre>Returns text translations from one language to another.
+
+Args:
+  q: string, The text to translate (required) (repeated)
+  target: string, The target language into which the text should be translated (required)
+  format: string, The format of the text
+    Allowed values
+      html - Specifies the input is in HTML
+      text - Specifies the input is in plain textual format
+  cid: string, The customization id for translate (repeated)
+  source: string, The source language of the text
+
+Returns:
+  An object of the form:
+
+    {
+    "translations": [ # Translations contains list of translation results of given text
+      {
+        "detectedSourceLanguage": "A String", # Detected source language if source parameter is unspecified.
+        "translatedText": "A String", # The translation.
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/urlshortener_v1.html b/docs/dyn/urlshortener_v1.html
new file mode 100644
index 0000000..1ef8ccd
--- /dev/null
+++ b/docs/dyn/urlshortener_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="urlshortener_v1.html">URL Shortener API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="urlshortener_v1.url.html">url()</a></code>
+</p>
+<p class="firstline">Returns the url Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/urlshortener_v1.url.html b/docs/dyn/urlshortener_v1.url.html
new file mode 100644
index 0000000..bb004fc
--- /dev/null
+++ b/docs/dyn/urlshortener_v1.url.html
@@ -0,0 +1,739 @@
+<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="urlshortener_v1.html">URL Shortener API</a> . <a href="urlshortener_v1.url.html">url</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(shortUrl, projection=None)</a></code></p>
+<p class="firstline">Expands a short URL or gets creation time and analytics.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(body)</a></code></p>
+<p class="firstline">Creates a new short URL.</p>
+<p class="toc_element">
+  <code><a href="#list">list(start_token=None, projection=None)</a></code></p>
+<p class="firstline">Retrieves a list of URLs shortened by a user.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(shortUrl, projection=None)</code>
+  <pre>Expands a short URL or gets creation time and analytics.
+
+Args:
+  shortUrl: string, The short URL, including the protocol. (required)
+  projection: string, Additional information to return.
+    Allowed values
+      ANALYTICS_CLICKS - Returns only click counts.
+      ANALYTICS_TOP_STRINGS - Returns only top string counts.
+      FULL - Returns the creation timestamp and all available analytics.
+
+Returns:
+  An object of the form:
+
+    {
+      "status": "A String", # Status of the target URL. Possible values: "OK", "MALWARE", "PHISHING", or "REMOVED". A URL might be marked "REMOVED" if it was flagged as spam, for example.
+      "kind": "urlshortener#url", # The fixed string "urlshortener#url".
+      "created": "A String", # Time the short URL was created; ISO 8601 representation using the yyyy-MM-dd'T'HH:mm:ss.SSSZZ format, e.g. "2010-10-14T19:01:24.944+00:00".
+      "analytics": { # A summary of the click analytics for the short and long URL. Might not be present if not requested or currently unavailable.
+        "week": { # Click analytics over the last week.
+          "shortUrlClicks": "A String", # Number of clicks on this short URL.
+          "countries": [ # Top countries (expressed as country codes), e.g. "US" or "DE"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "platforms": [ # Top platforms or OSes, e.g. "Windows"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "browsers": [ # Top browsers, e.g. "Chrome"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "referrers": [ # Top referring hosts, e.g. "www.google.com"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "longUrlClicks": "A String", # Number of clicks on all goo.gl short URLs pointing to this long URL.
+        },
+        "allTime": { # Click analytics over all time.
+          "shortUrlClicks": "A String", # Number of clicks on this short URL.
+          "countries": [ # Top countries (expressed as country codes), e.g. "US" or "DE"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "platforms": [ # Top platforms or OSes, e.g. "Windows"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "browsers": [ # Top browsers, e.g. "Chrome"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "referrers": [ # Top referring hosts, e.g. "www.google.com"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "longUrlClicks": "A String", # Number of clicks on all goo.gl short URLs pointing to this long URL.
+        },
+        "twoHours": { # Click analytics over the last two hours.
+          "shortUrlClicks": "A String", # Number of clicks on this short URL.
+          "countries": [ # Top countries (expressed as country codes), e.g. "US" or "DE"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "platforms": [ # Top platforms or OSes, e.g. "Windows"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "browsers": [ # Top browsers, e.g. "Chrome"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "referrers": [ # Top referring hosts, e.g. "www.google.com"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "longUrlClicks": "A String", # Number of clicks on all goo.gl short URLs pointing to this long URL.
+        },
+        "day": { # Click analytics over the last day.
+          "shortUrlClicks": "A String", # Number of clicks on this short URL.
+          "countries": [ # Top countries (expressed as country codes), e.g. "US" or "DE"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "platforms": [ # Top platforms or OSes, e.g. "Windows"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "browsers": [ # Top browsers, e.g. "Chrome"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "referrers": [ # Top referring hosts, e.g. "www.google.com"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "longUrlClicks": "A String", # Number of clicks on all goo.gl short URLs pointing to this long URL.
+        },
+        "month": { # Click analytics over the last month.
+          "shortUrlClicks": "A String", # Number of clicks on this short URL.
+          "countries": [ # Top countries (expressed as country codes), e.g. "US" or "DE"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "platforms": [ # Top platforms or OSes, e.g. "Windows"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "browsers": [ # Top browsers, e.g. "Chrome"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "referrers": [ # Top referring hosts, e.g. "www.google.com"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "longUrlClicks": "A String", # Number of clicks on all goo.gl short URLs pointing to this long URL.
+        },
+      },
+      "longUrl": "A String", # Long URL, e.g. "http://www.google.com/". Might not be present if the status is "REMOVED".
+      "id": "A String", # Short URL, e.g. "http://goo.gl/l6MS".
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(body)</code>
+  <pre>Creates a new short URL.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "status": "A String", # Status of the target URL. Possible values: "OK", "MALWARE", "PHISHING", or "REMOVED". A URL might be marked "REMOVED" if it was flagged as spam, for example.
+    "kind": "urlshortener#url", # The fixed string "urlshortener#url".
+    "created": "A String", # Time the short URL was created; ISO 8601 representation using the yyyy-MM-dd'T'HH:mm:ss.SSSZZ format, e.g. "2010-10-14T19:01:24.944+00:00".
+    "analytics": { # A summary of the click analytics for the short and long URL. Might not be present if not requested or currently unavailable.
+      "week": { # Click analytics over the last week.
+        "shortUrlClicks": "A String", # Number of clicks on this short URL.
+        "countries": [ # Top countries (expressed as country codes), e.g. "US" or "DE"; sorted by (descending) click counts. Only present if this data is available.
+          {
+            "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+            "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+          },
+        ],
+        "platforms": [ # Top platforms or OSes, e.g. "Windows"; sorted by (descending) click counts. Only present if this data is available.
+          {
+            "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+            "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+          },
+        ],
+        "browsers": [ # Top browsers, e.g. "Chrome"; sorted by (descending) click counts. Only present if this data is available.
+          {
+            "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+            "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+          },
+        ],
+        "referrers": [ # Top referring hosts, e.g. "www.google.com"; sorted by (descending) click counts. Only present if this data is available.
+          {
+            "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+            "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+          },
+        ],
+        "longUrlClicks": "A String", # Number of clicks on all goo.gl short URLs pointing to this long URL.
+      },
+      "allTime": { # Click analytics over all time.
+        "shortUrlClicks": "A String", # Number of clicks on this short URL.
+        "countries": [ # Top countries (expressed as country codes), e.g. "US" or "DE"; sorted by (descending) click counts. Only present if this data is available.
+          {
+            "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+            "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+          },
+        ],
+        "platforms": [ # Top platforms or OSes, e.g. "Windows"; sorted by (descending) click counts. Only present if this data is available.
+          {
+            "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+            "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+          },
+        ],
+        "browsers": [ # Top browsers, e.g. "Chrome"; sorted by (descending) click counts. Only present if this data is available.
+          {
+            "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+            "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+          },
+        ],
+        "referrers": [ # Top referring hosts, e.g. "www.google.com"; sorted by (descending) click counts. Only present if this data is available.
+          {
+            "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+            "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+          },
+        ],
+        "longUrlClicks": "A String", # Number of clicks on all goo.gl short URLs pointing to this long URL.
+      },
+      "twoHours": { # Click analytics over the last two hours.
+        "shortUrlClicks": "A String", # Number of clicks on this short URL.
+        "countries": [ # Top countries (expressed as country codes), e.g. "US" or "DE"; sorted by (descending) click counts. Only present if this data is available.
+          {
+            "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+            "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+          },
+        ],
+        "platforms": [ # Top platforms or OSes, e.g. "Windows"; sorted by (descending) click counts. Only present if this data is available.
+          {
+            "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+            "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+          },
+        ],
+        "browsers": [ # Top browsers, e.g. "Chrome"; sorted by (descending) click counts. Only present if this data is available.
+          {
+            "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+            "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+          },
+        ],
+        "referrers": [ # Top referring hosts, e.g. "www.google.com"; sorted by (descending) click counts. Only present if this data is available.
+          {
+            "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+            "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+          },
+        ],
+        "longUrlClicks": "A String", # Number of clicks on all goo.gl short URLs pointing to this long URL.
+      },
+      "day": { # Click analytics over the last day.
+        "shortUrlClicks": "A String", # Number of clicks on this short URL.
+        "countries": [ # Top countries (expressed as country codes), e.g. "US" or "DE"; sorted by (descending) click counts. Only present if this data is available.
+          {
+            "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+            "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+          },
+        ],
+        "platforms": [ # Top platforms or OSes, e.g. "Windows"; sorted by (descending) click counts. Only present if this data is available.
+          {
+            "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+            "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+          },
+        ],
+        "browsers": [ # Top browsers, e.g. "Chrome"; sorted by (descending) click counts. Only present if this data is available.
+          {
+            "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+            "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+          },
+        ],
+        "referrers": [ # Top referring hosts, e.g. "www.google.com"; sorted by (descending) click counts. Only present if this data is available.
+          {
+            "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+            "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+          },
+        ],
+        "longUrlClicks": "A String", # Number of clicks on all goo.gl short URLs pointing to this long URL.
+      },
+      "month": { # Click analytics over the last month.
+        "shortUrlClicks": "A String", # Number of clicks on this short URL.
+        "countries": [ # Top countries (expressed as country codes), e.g. "US" or "DE"; sorted by (descending) click counts. Only present if this data is available.
+          {
+            "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+            "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+          },
+        ],
+        "platforms": [ # Top platforms or OSes, e.g. "Windows"; sorted by (descending) click counts. Only present if this data is available.
+          {
+            "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+            "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+          },
+        ],
+        "browsers": [ # Top browsers, e.g. "Chrome"; sorted by (descending) click counts. Only present if this data is available.
+          {
+            "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+            "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+          },
+        ],
+        "referrers": [ # Top referring hosts, e.g. "www.google.com"; sorted by (descending) click counts. Only present if this data is available.
+          {
+            "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+            "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+          },
+        ],
+        "longUrlClicks": "A String", # Number of clicks on all goo.gl short URLs pointing to this long URL.
+      },
+    },
+    "longUrl": "A String", # Long URL, e.g. "http://www.google.com/". Might not be present if the status is "REMOVED".
+    "id": "A String", # Short URL, e.g. "http://goo.gl/l6MS".
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "status": "A String", # Status of the target URL. Possible values: "OK", "MALWARE", "PHISHING", or "REMOVED". A URL might be marked "REMOVED" if it was flagged as spam, for example.
+      "kind": "urlshortener#url", # The fixed string "urlshortener#url".
+      "created": "A String", # Time the short URL was created; ISO 8601 representation using the yyyy-MM-dd'T'HH:mm:ss.SSSZZ format, e.g. "2010-10-14T19:01:24.944+00:00".
+      "analytics": { # A summary of the click analytics for the short and long URL. Might not be present if not requested or currently unavailable.
+        "week": { # Click analytics over the last week.
+          "shortUrlClicks": "A String", # Number of clicks on this short URL.
+          "countries": [ # Top countries (expressed as country codes), e.g. "US" or "DE"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "platforms": [ # Top platforms or OSes, e.g. "Windows"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "browsers": [ # Top browsers, e.g. "Chrome"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "referrers": [ # Top referring hosts, e.g. "www.google.com"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "longUrlClicks": "A String", # Number of clicks on all goo.gl short URLs pointing to this long URL.
+        },
+        "allTime": { # Click analytics over all time.
+          "shortUrlClicks": "A String", # Number of clicks on this short URL.
+          "countries": [ # Top countries (expressed as country codes), e.g. "US" or "DE"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "platforms": [ # Top platforms or OSes, e.g. "Windows"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "browsers": [ # Top browsers, e.g. "Chrome"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "referrers": [ # Top referring hosts, e.g. "www.google.com"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "longUrlClicks": "A String", # Number of clicks on all goo.gl short URLs pointing to this long URL.
+        },
+        "twoHours": { # Click analytics over the last two hours.
+          "shortUrlClicks": "A String", # Number of clicks on this short URL.
+          "countries": [ # Top countries (expressed as country codes), e.g. "US" or "DE"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "platforms": [ # Top platforms or OSes, e.g. "Windows"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "browsers": [ # Top browsers, e.g. "Chrome"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "referrers": [ # Top referring hosts, e.g. "www.google.com"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "longUrlClicks": "A String", # Number of clicks on all goo.gl short URLs pointing to this long URL.
+        },
+        "day": { # Click analytics over the last day.
+          "shortUrlClicks": "A String", # Number of clicks on this short URL.
+          "countries": [ # Top countries (expressed as country codes), e.g. "US" or "DE"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "platforms": [ # Top platforms or OSes, e.g. "Windows"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "browsers": [ # Top browsers, e.g. "Chrome"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "referrers": [ # Top referring hosts, e.g. "www.google.com"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "longUrlClicks": "A String", # Number of clicks on all goo.gl short URLs pointing to this long URL.
+        },
+        "month": { # Click analytics over the last month.
+          "shortUrlClicks": "A String", # Number of clicks on this short URL.
+          "countries": [ # Top countries (expressed as country codes), e.g. "US" or "DE"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "platforms": [ # Top platforms or OSes, e.g. "Windows"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "browsers": [ # Top browsers, e.g. "Chrome"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "referrers": [ # Top referring hosts, e.g. "www.google.com"; sorted by (descending) click counts. Only present if this data is available.
+            {
+              "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+              "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+            },
+          ],
+          "longUrlClicks": "A String", # Number of clicks on all goo.gl short URLs pointing to this long URL.
+        },
+      },
+      "longUrl": "A String", # Long URL, e.g. "http://www.google.com/". Might not be present if the status is "REMOVED".
+      "id": "A String", # Short URL, e.g. "http://goo.gl/l6MS".
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(start_token=None, projection=None)</code>
+  <pre>Retrieves a list of URLs shortened by a user.
+
+Args:
+  start_token: string, Token for requesting successive pages of results.
+  projection: string, Additional information to return.
+    Allowed values
+      ANALYTICS_CLICKS - Returns short URL click counts.
+      FULL - Returns short URL click counts.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # A token to provide to get the next page of results.
+    "items": [ # A list of URL resources.
+      {
+          "status": "A String", # Status of the target URL. Possible values: "OK", "MALWARE", "PHISHING", or "REMOVED". A URL might be marked "REMOVED" if it was flagged as spam, for example.
+          "kind": "urlshortener#url", # The fixed string "urlshortener#url".
+          "created": "A String", # Time the short URL was created; ISO 8601 representation using the yyyy-MM-dd'T'HH:mm:ss.SSSZZ format, e.g. "2010-10-14T19:01:24.944+00:00".
+          "analytics": { # A summary of the click analytics for the short and long URL. Might not be present if not requested or currently unavailable.
+            "week": { # Click analytics over the last week.
+              "shortUrlClicks": "A String", # Number of clicks on this short URL.
+              "countries": [ # Top countries (expressed as country codes), e.g. "US" or "DE"; sorted by (descending) click counts. Only present if this data is available.
+                {
+                  "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+                  "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+                },
+              ],
+              "platforms": [ # Top platforms or OSes, e.g. "Windows"; sorted by (descending) click counts. Only present if this data is available.
+                {
+                  "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+                  "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+                },
+              ],
+              "browsers": [ # Top browsers, e.g. "Chrome"; sorted by (descending) click counts. Only present if this data is available.
+                {
+                  "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+                  "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+                },
+              ],
+              "referrers": [ # Top referring hosts, e.g. "www.google.com"; sorted by (descending) click counts. Only present if this data is available.
+                {
+                  "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+                  "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+                },
+              ],
+              "longUrlClicks": "A String", # Number of clicks on all goo.gl short URLs pointing to this long URL.
+            },
+            "allTime": { # Click analytics over all time.
+              "shortUrlClicks": "A String", # Number of clicks on this short URL.
+              "countries": [ # Top countries (expressed as country codes), e.g. "US" or "DE"; sorted by (descending) click counts. Only present if this data is available.
+                {
+                  "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+                  "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+                },
+              ],
+              "platforms": [ # Top platforms or OSes, e.g. "Windows"; sorted by (descending) click counts. Only present if this data is available.
+                {
+                  "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+                  "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+                },
+              ],
+              "browsers": [ # Top browsers, e.g. "Chrome"; sorted by (descending) click counts. Only present if this data is available.
+                {
+                  "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+                  "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+                },
+              ],
+              "referrers": [ # Top referring hosts, e.g. "www.google.com"; sorted by (descending) click counts. Only present if this data is available.
+                {
+                  "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+                  "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+                },
+              ],
+              "longUrlClicks": "A String", # Number of clicks on all goo.gl short URLs pointing to this long URL.
+            },
+            "twoHours": { # Click analytics over the last two hours.
+              "shortUrlClicks": "A String", # Number of clicks on this short URL.
+              "countries": [ # Top countries (expressed as country codes), e.g. "US" or "DE"; sorted by (descending) click counts. Only present if this data is available.
+                {
+                  "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+                  "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+                },
+              ],
+              "platforms": [ # Top platforms or OSes, e.g. "Windows"; sorted by (descending) click counts. Only present if this data is available.
+                {
+                  "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+                  "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+                },
+              ],
+              "browsers": [ # Top browsers, e.g. "Chrome"; sorted by (descending) click counts. Only present if this data is available.
+                {
+                  "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+                  "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+                },
+              ],
+              "referrers": [ # Top referring hosts, e.g. "www.google.com"; sorted by (descending) click counts. Only present if this data is available.
+                {
+                  "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+                  "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+                },
+              ],
+              "longUrlClicks": "A String", # Number of clicks on all goo.gl short URLs pointing to this long URL.
+            },
+            "day": { # Click analytics over the last day.
+              "shortUrlClicks": "A String", # Number of clicks on this short URL.
+              "countries": [ # Top countries (expressed as country codes), e.g. "US" or "DE"; sorted by (descending) click counts. Only present if this data is available.
+                {
+                  "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+                  "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+                },
+              ],
+              "platforms": [ # Top platforms or OSes, e.g. "Windows"; sorted by (descending) click counts. Only present if this data is available.
+                {
+                  "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+                  "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+                },
+              ],
+              "browsers": [ # Top browsers, e.g. "Chrome"; sorted by (descending) click counts. Only present if this data is available.
+                {
+                  "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+                  "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+                },
+              ],
+              "referrers": [ # Top referring hosts, e.g. "www.google.com"; sorted by (descending) click counts. Only present if this data is available.
+                {
+                  "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+                  "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+                },
+              ],
+              "longUrlClicks": "A String", # Number of clicks on all goo.gl short URLs pointing to this long URL.
+            },
+            "month": { # Click analytics over the last month.
+              "shortUrlClicks": "A String", # Number of clicks on this short URL.
+              "countries": [ # Top countries (expressed as country codes), e.g. "US" or "DE"; sorted by (descending) click counts. Only present if this data is available.
+                {
+                  "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+                  "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+                },
+              ],
+              "platforms": [ # Top platforms or OSes, e.g. "Windows"; sorted by (descending) click counts. Only present if this data is available.
+                {
+                  "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+                  "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+                },
+              ],
+              "browsers": [ # Top browsers, e.g. "Chrome"; sorted by (descending) click counts. Only present if this data is available.
+                {
+                  "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+                  "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+                },
+              ],
+              "referrers": [ # Top referring hosts, e.g. "www.google.com"; sorted by (descending) click counts. Only present if this data is available.
+                {
+                  "count": "A String", # Number of clicks for this top entry, e.g. for this particular country or browser.
+                  "id": "A String", # Label assigned to this top entry, e.g. "US" or "Chrome".
+                },
+              ],
+              "longUrlClicks": "A String", # Number of clicks on all goo.gl short URLs pointing to this long URL.
+            },
+          },
+          "longUrl": "A String", # Long URL, e.g. "http://www.google.com/". Might not be present if the status is "REMOVED".
+          "id": "A String", # Short URL, e.g. "http://goo.gl/l6MS".
+        },
+    ],
+    "kind": "urlshortener#urlHistory", # The fixed string "urlshortener#urlHistory".
+    "itemsPerPage": 42, # Number of items returned with each full "page" of results. Note that the last page could have fewer items than the "itemsPerPage" value.
+    "totalItems": 42, # Total number of short URLs associated with this user (may be approximate).
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/webfonts_v1.html b/docs/dyn/webfonts_v1.html
new file mode 100644
index 0000000..2ae835b
--- /dev/null
+++ b/docs/dyn/webfonts_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="webfonts_v1.html">Google Fonts Developer API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="webfonts_v1.webfonts.html">webfonts()</a></code>
+</p>
+<p class="firstline">Returns the webfonts Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/webfonts_v1.webfonts.html b/docs/dyn/webfonts_v1.webfonts.html
new file mode 100644
index 0000000..5e04ae5
--- /dev/null
+++ b/docs/dyn/webfonts_v1.webfonts.html
@@ -0,0 +1,120 @@
+<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="webfonts_v1.html">Google Fonts Developer API</a> . <a href="webfonts_v1.webfonts.html">webfonts</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(sort=None)</a></code></p>
+<p class="firstline">Retrieves the list of fonts currently served by the Google Fonts Developer API</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(sort=None)</code>
+  <pre>Retrieves the list of fonts currently served by the Google Fonts Developer API
+
+Args:
+  sort: string, Enables sorting of the list
+    Allowed values
+      alpha - Sort alphabetically
+      date - Sort by date added
+      popularity - Sort by popularity
+      style - Sort by number of styles
+      trending - Sort by trending
+
+Returns:
+  An object of the form:
+
+    {
+    "items": [ # The list of fonts currently served by the Google Fonts API.
+      {
+        "category": "A String", # The category of the font.
+        "files": { # The font files (with all supported scripts) for each one of the available variants, as a key : value map.
+          "a_key": "A String", # The font file URL (value) for an specific variant (key).
+        },
+        "kind": "webfonts#webfont", # This kind represents a webfont object in the webfonts service.
+        "family": "A String", # The name of the font.
+        "subsets": [ # The scripts supported by the font.
+          "A String",
+        ],
+        "lastModified": "A String", # The date (format "yyyy-MM-dd") the font was modified for the last time.
+        "version": "A String", # The font version.
+        "variants": [ # The available variants for the font.
+          "A String",
+        ],
+      },
+    ],
+    "kind": "webfonts#webfontList", # This kind represents a list of webfont objects in the webfonts service.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/youtubeAnalytics_v1.batchReportDefinitions.html b/docs/dyn/youtubeAnalytics_v1.batchReportDefinitions.html
new file mode 100644
index 0000000..9f34031
--- /dev/null
+++ b/docs/dyn/youtubeAnalytics_v1.batchReportDefinitions.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="youtubeAnalytics_v1.html">YouTube Analytics API</a> . <a href="youtubeAnalytics_v1.batchReportDefinitions.html">batchReportDefinitions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(onBehalfOfContentOwner)</a></code></p>
+<p class="firstline">Retrieves a list of available batch report definitions.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(onBehalfOfContentOwner)</code>
+  <pre>Retrieves a list of available batch report definitions.
+
+Args:
+  onBehalfOfContentOwner: string, The onBehalfOfContentOwner parameter identifies the content owner that the user is acting on behalf of. (required)
+
+Returns:
+  An object of the form:
+
+    { # A paginated list of batchReportDefinition resources returned in response to a youtubeAnalytics.batchReportDefinitions.list request.
+    "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.
+          },
+        ],
+        "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.
+      },
+    ],
+    "kind": "youtubeAnalytics#batchReportDefinitionList", # This value specifies the type of data included in the API response. For the list method, the kind property value is youtubeAnalytics#batchReportDefinitionList.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/youtubeAnalytics_v1.batchReports.html b/docs/dyn/youtubeAnalytics_v1.batchReports.html
new file mode 100644
index 0000000..a43d960
--- /dev/null
+++ b/docs/dyn/youtubeAnalytics_v1.batchReports.html
@@ -0,0 +1,115 @@
+<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.batchReports.html">batchReports</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(batchReportDefinitionId, onBehalfOfContentOwner)</a></code></p>
+<p class="firstline">Retrieves a list of processed batch reports.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(batchReportDefinitionId, onBehalfOfContentOwner)</code>
+  <pre>Retrieves a list of processed batch reports.
+
+Args:
+  batchReportDefinitionId: string, The batchReportDefinitionId parameter specifies the ID of the batch reportort definition for which you are retrieving reports. (required)
+  onBehalfOfContentOwner: string, The onBehalfOfContentOwner parameter identifies the content owner that the user is acting on behalf of. (required)
+
+Returns:
+  An object of the form:
+
+    { # 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.
+        "outputs": [ # Report outputs.
+          {
+            "downloadUrl": "A String", # Cloud storage URL to download this report. This URL is valid for 30 minutes.
+            "type": "cloudStorageOutput", # Type of the output.
+            "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.
+        },
+        "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.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/youtubeAnalytics_v1.html b/docs/dyn/youtubeAnalytics_v1.html
new file mode 100644
index 0000000..09b5912
--- /dev/null
+++ b/docs/dyn/youtubeAnalytics_v1.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="youtubeAnalytics_v1.html">YouTube Analytics API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="youtubeAnalytics_v1.batchReportDefinitions.html">batchReportDefinitions()</a></code>
+</p>
+<p class="firstline">Returns the batchReportDefinitions Resource.</p>
+
+<p class="toc_element">
+  <code><a href="youtubeAnalytics_v1.batchReports.html">batchReports()</a></code>
+</p>
+<p class="firstline">Returns the batchReports 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>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/youtubeAnalytics_v1.reports.html b/docs/dyn/youtubeAnalytics_v1.reports.html
new file mode 100644
index 0000000..d389b5b
--- /dev/null
+++ b/docs/dyn/youtubeAnalytics_v1.reports.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="youtubeAnalytics_v1.html">YouTube Analytics API</a> . <a href="youtubeAnalytics_v1.reports.html">reports</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#query">query(ids=None, start_date, end_date, metrics, sort=None, dimensions=None, filters=None, max_results=None, start_index=None)</a></code></p>
+<p class="firstline">Retrieve your YouTube Analytics reports.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="query">query(ids=None, start_date, end_date, metrics, sort=None, dimensions=None, filters=None, max_results=None, start_index=None)</code>
+  <pre>Retrieve your YouTube Analytics reports.
+
+Args:
+  ids: string, Identifies the YouTube channel or content owner for which you are retrieving YouTube Analytics data.
+- To request data for a YouTube user, set the ids parameter value to channel==CHANNEL_ID, where CHANNEL_ID specifies the unique YouTube channel ID.
+- To request data for a YouTube CMS content owner, set the ids parameter value to contentOwner==OWNER_NAME, where OWNER_NAME is the CMS name of the content owner. (required)
+  start_date: string, The start date for fetching YouTube Analytics data. The value should be in YYYY-MM-DD format. (required)
+  end_date: string, The end date for fetching YouTube Analytics data. The value should be in YYYY-MM-DD format. (required)
+  metrics: string, A comma-separated list of YouTube Analytics metrics, such as views or likes,dislikes. See the Available Reports document for a list of the reports that you can retrieve and the metrics available in each report, and see the Metrics document for definitions of those metrics. (required)
+  sort: string, A comma-separated list of dimensions or metrics that determine the sort order for YouTube Analytics data. By default the sort order is ascending. The '-' prefix causes descending sort order.
+  dimensions: string, A comma-separated list of YouTube Analytics dimensions, such as views or ageGroup,gender. See the Available Reports document for a list of the reports that you can retrieve and the dimensions used for those reports. Also see the Dimensions document for definitions of those dimensions.
+  filters: string, A list of filters that should be applied when retrieving YouTube Analytics data. The Available Reports document identifies the dimensions that can be used to filter each report, and the Dimensions document defines those dimensions. If a request uses multiple filters, join them together with a semicolon (;), and the returned result table will satisfy both filters. For example, a filters parameter value of video==dMH0bHeiRNg;country==IT restricts the result set to include data for the given video in Italy.
+  max_results: integer, The maximum number of rows to include in the 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 (one-based, inclusive).
+
+Returns:
+  An object of the form:
+
+    { # Contains a single result table. The table is returned as an array of rows that contain the values for the cells of the table. Depending on the metric or dimension, the cell can contain a string (video ID, country code) or a number (number of views or number of likes).
+    "kind": "youtubeAnalytics#resultTable", # This value specifies the type of data included in the API response. For the query method, the kind property value will be youtubeAnalytics#resultTable.
+    "rows": [ # The list contains all rows of the result table. Each item in the list is an array that contains comma-delimited data corresponding to a single row of data. The order of the comma-delimited data fields will match the order of the columns listed in the columnHeaders field. If no data is available for the given query, the rows element will be omitted from the response. The response for a query with the day dimension will not contain rows for the most recent days.
+      [
+        "",
+      ],
+    ],
+    "columnHeaders": [ # This value specifies information about the data returned in the rows fields. Each item in the columnHeaders list identifies a field returned in the rows value, which contains a list of comma-delimited data. The columnHeaders list will begin with the dimensions specified in the API request, which will be followed by the metrics specified in the API request. The order of both dimensions and metrics will match the ordering in the API request. For example, if the API request contains the parameters dimensions=ageGroup,gender&metrics=viewerPercentage, the API response will return columns in this order: ageGroup,gender,viewerPercentage.
+      {
+        "dataType": "A String", # The type of the data in the column (STRING, INTEGER, FLOAT, etc.).
+        "columnType": "A String", # The type of the column (DIMENSION or METRIC).
+        "name": "A String", # The name of the dimension or metric.
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/youtube_v3.activities.html b/docs/dyn/youtube_v3.activities.html
new file mode 100644
index 0000000..c965e66
--- /dev/null
+++ b/docs/dyn/youtube_v3.activities.html
@@ -0,0 +1,600 @@
+<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="youtube_v3.html">YouTube Data API</a> . <a href="youtube_v3.activities.html">activities</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#insert">insert(part=None, body)</a></code></p>
+<p class="firstline">Posts a bulletin for a specific channel. (The user submitting the request must be authorized to act on the channel's behalf.)</p>
+<p class="toc_element">
+  <code><a href="#list">list(part=None, pageToken=None, publishedBefore=None, channelId=None, mine=None, maxResults=None, regionCode=None, home=None, publishedAfter=None)</a></code></p>
+<p class="firstline">Returns a list of channel activity events that match the request criteria. For example, you can retrieve events associated with a particular channel, events associated with the user's subscriptions and Google+ friends, or the YouTube home page feed, which is customized for each user.</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(part=None, body)</code>
+  <pre>Posts a bulletin for a specific channel. (The user submitting the request must be authorized to act on the channel's behalf.)
+
+Note: Even though an activity resource can contain information about actions like a user rating a video or marking a video as a favorite, you need to use other API methods to generate those activity resources. For example, you would use the API's videos.rate() method to rate a video and the playlistItems.insert() method to mark a video as a favorite.
+
+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 and contentDetails. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An activity resource contains information about an action that a particular channel, or user, has taken on YouTube.The actions reported in activity feeds include rating a video, sharing a video, marking a video as a favorite, commenting on a video, uploading a video, and so forth. Each activity resource identifies the type of action, the channel associated with the action, and the resource(s) associated with the action, such as the video that was rated or uploaded.
+    "snippet": { # Basic details about an activity, including title, description, thumbnails, activity type and group. # The snippet object contains basic details about the activity, including the activity's type and group ID.
+      "thumbnails": { # Internal representation of thumbnails for a YouTube resource. # A map of thumbnail images associated with the resource that is primarily associated with the activity. 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.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+      },
+      "title": "A String", # The title of the resource primarily associated with the activity.
+      "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel associated with the activity.
+      "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.
+      "channelTitle": "A String", # Channel title for the channel responsible for this activity
+      "type": "A String", # The type of activity that the resource describes.
+      "groupId": "A String", # The group ID associated with the activity. A group ID identifies user events that are associated with the same user and resource. For example, if a user rates a video and marks the same video as a favorite, the entries for those events would have the same group ID in the user's activity feed. In your user interface, you can avoid repetition by grouping events with the same groupId value.
+      "description": "A String", # The description of the resource primarily associated with the activity.
+    },
+    "contentDetails": { # Details about the content of an activity: the video that was shared, the channel that was subscribed to, etc. # The contentDetails object contains information about the content associated with the activity. For example, if the snippet.type value is videoRated, then the contentDetails object's content identifies the rated video.
+      "comment": { # Information about a resource that received a comment. # The comment object contains information about a resource that received a comment. This property is only present if the snippet.type is comment.
+        "resourceId": { # A resource id is a generic reference that points to another YouTube resource. # The resourceId object contains information that identifies the resource associated with the comment.
+          "kind": "A String", # The type of the API resource.
+          "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+          "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+          "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+        },
+      },
+      "playlistItem": { # Information about a new playlist item. # The playlistItem object contains information about a new playlist item. This property is only present if the snippet.type is playlistItem.
+        "resourceId": { # A resource id is a generic reference that points to another YouTube resource. # The resourceId object contains information about the resource that was added to the playlist.
+          "kind": "A String", # The type of the API resource.
+          "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+          "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+          "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+        },
+        "playlistId": "A String", # The value that YouTube uses to uniquely identify the playlist.
+        "playlistItemId": "A String", # ID of the item within the playlist.
+      },
+      "like": { # Information about a resource that received a positive (like) rating. # The like object contains information about a resource that received a positive (like) rating. This property is only present if the snippet.type is like.
+        "resourceId": { # A resource id is a generic reference that points to another YouTube resource. # The resourceId object contains information that identifies the rated resource.
+          "kind": "A String", # The type of the API resource.
+          "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+          "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+          "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+        },
+      },
+      "promotedItem": { # Details about a resource which is being promoted. # The promotedItem object contains details about a resource which is being promoted. This property is only present if the snippet.type is promotedItem.
+        "ctaType": "A String", # The type of call-to-action, a message to the user indicating action that can be taken.
+        "adTag": "A String", # The URL the client should fetch to request a promoted item.
+        "destinationUrl": "A String", # The URL the client should direct the user to, if the user chooses to visit the advertiser's website.
+        "forecastingUrl": [ # The list of forecasting URLs. The client should ping all of these URLs when a promoted item is not available, to indicate that a promoted item could have been shown.
+          "A String",
+        ],
+        "impressionUrl": [ # The list of impression URLs. The client should ping all of these URLs to indicate that the user was shown this promoted item.
+          "A String",
+        ],
+        "creativeViewUrl": "A String", # The URL the client should ping to indicate that the user was shown this promoted item.
+        "videoId": "A String", # The ID that YouTube uses to uniquely identify the promoted video.
+        "descriptionText": "A String", # The text description to accompany the promoted item.
+        "customCtaButtonText": "A String", # The custom call-to-action button text. If specified, it will override the default button text for the cta_type.
+        "clickTrackingUrl": "A String", # The URL the client should ping to indicate that the user clicked through on this promoted item.
+      },
+      "social": { # Details about a social network post. # The social object contains details about a social network post. This property is only present if the snippet.type is social.
+        "resourceId": { # A resource id is a generic reference that points to another YouTube resource. # The resourceId object encapsulates information that identifies the resource associated with a social network post.
+          "kind": "A String", # The type of the API resource.
+          "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+          "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+          "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+        },
+        "imageUrl": "A String", # An image of the post's author.
+        "type": "A String", # The name of the social network.
+        "referenceUrl": "A String", # The URL of the social network post.
+        "author": "A String", # The author of the social network post.
+      },
+      "favorite": { # Information about a video that was marked as a favorite video. # The favorite object contains information about a video that was marked as a favorite video. This property is only present if the snippet.type is favorite.
+        "resourceId": { # A resource id is a generic reference that points to another YouTube resource. # The resourceId object contains information that identifies the resource that was marked as a favorite.
+          "kind": "A String", # The type of the API resource.
+          "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+          "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+          "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+        },
+      },
+      "upload": { # Information about the uploaded video. # The upload object contains information about the uploaded video. This property is only present if the snippet.type is upload.
+        "videoId": "A String", # The ID that YouTube uses to uniquely identify the uploaded video.
+      },
+      "recommendation": { # Information that identifies the recommended resource. # The recommendation object contains information about a recommended resource. This property is only present if the snippet.type is recommendation.
+        "resourceId": { # A resource id is a generic reference that points to another YouTube resource. # The resourceId object contains information that identifies the recommended resource.
+          "kind": "A String", # The type of the API resource.
+          "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+          "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+          "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+        },
+        "reason": "A String", # The reason that the resource is recommended to the user.
+        "seedResourceId": { # A resource id is a generic reference that points to another YouTube resource. # The seedResourceId object contains information about the resource that caused the recommendation.
+          "kind": "A String", # The type of the API resource.
+          "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+          "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+          "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+        },
+      },
+      "subscription": { # Information about a channel that a user subscribed to. # The subscription object contains information about a channel that a user subscribed to. This property is only present if the snippet.type is subscription.
+        "resourceId": { # A resource id is a generic reference that points to another YouTube resource. # The resourceId object contains information that identifies the resource that the user subscribed to.
+          "kind": "A String", # The type of the API resource.
+          "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+          "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+          "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+        },
+      },
+      "bulletin": { # Details about a channel bulletin post. # The bulletin object contains details about a channel bulletin post. This object is only present if the snippet.type is bulletin.
+        "resourceId": { # A resource id is a generic reference that points to another YouTube resource. # The resourceId object contains information that identifies the resource associated with a bulletin post.
+          "kind": "A String", # The type of the API resource.
+          "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+          "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+          "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+        },
+      },
+      "channelItem": { # Details about a resource which was added to a channel. # The channelItem object contains details about a resource which was added to a channel. This property is only present if the snippet.type is channelItem.
+        "resourceId": { # A resource id is a generic reference that points to another YouTube resource. # The resourceId object contains information that identifies the resource that was added to the channel.
+          "kind": "A String", # The type of the API resource.
+          "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+          "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+          "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+        },
+      },
+    },
+    "kind": "youtube#activity", # Identifies what kind of resource this is. Value: the fixed string "youtube#activity".
+    "etag": "A String", # Etag of this resource.
+    "id": "A String", # The ID that YouTube uses to uniquely identify the activity.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An activity resource contains information about an action that a particular channel, or user, has taken on YouTube.The actions reported in activity feeds include rating a video, sharing a video, marking a video as a favorite, commenting on a video, uploading a video, and so forth. Each activity resource identifies the type of action, the channel associated with the action, and the resource(s) associated with the action, such as the video that was rated or uploaded.
+      "snippet": { # Basic details about an activity, including title, description, thumbnails, activity type and group. # The snippet object contains basic details about the activity, including the activity's type and group ID.
+        "thumbnails": { # Internal representation of thumbnails for a YouTube resource. # A map of thumbnail images associated with the resource that is primarily associated with the activity. 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.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+        },
+        "title": "A String", # The title of the resource primarily associated with the activity.
+        "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel associated with the activity.
+        "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.
+        "channelTitle": "A String", # Channel title for the channel responsible for this activity
+        "type": "A String", # The type of activity that the resource describes.
+        "groupId": "A String", # The group ID associated with the activity. A group ID identifies user events that are associated with the same user and resource. For example, if a user rates a video and marks the same video as a favorite, the entries for those events would have the same group ID in the user's activity feed. In your user interface, you can avoid repetition by grouping events with the same groupId value.
+        "description": "A String", # The description of the resource primarily associated with the activity.
+      },
+      "contentDetails": { # Details about the content of an activity: the video that was shared, the channel that was subscribed to, etc. # The contentDetails object contains information about the content associated with the activity. For example, if the snippet.type value is videoRated, then the contentDetails object's content identifies the rated video.
+        "comment": { # Information about a resource that received a comment. # The comment object contains information about a resource that received a comment. This property is only present if the snippet.type is comment.
+          "resourceId": { # A resource id is a generic reference that points to another YouTube resource. # The resourceId object contains information that identifies the resource associated with the comment.
+            "kind": "A String", # The type of the API resource.
+            "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+            "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+            "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+          },
+        },
+        "playlistItem": { # Information about a new playlist item. # The playlistItem object contains information about a new playlist item. This property is only present if the snippet.type is playlistItem.
+          "resourceId": { # A resource id is a generic reference that points to another YouTube resource. # The resourceId object contains information about the resource that was added to the playlist.
+            "kind": "A String", # The type of the API resource.
+            "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+            "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+            "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+          },
+          "playlistId": "A String", # The value that YouTube uses to uniquely identify the playlist.
+          "playlistItemId": "A String", # ID of the item within the playlist.
+        },
+        "like": { # Information about a resource that received a positive (like) rating. # The like object contains information about a resource that received a positive (like) rating. This property is only present if the snippet.type is like.
+          "resourceId": { # A resource id is a generic reference that points to another YouTube resource. # The resourceId object contains information that identifies the rated resource.
+            "kind": "A String", # The type of the API resource.
+            "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+            "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+            "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+          },
+        },
+        "promotedItem": { # Details about a resource which is being promoted. # The promotedItem object contains details about a resource which is being promoted. This property is only present if the snippet.type is promotedItem.
+          "ctaType": "A String", # The type of call-to-action, a message to the user indicating action that can be taken.
+          "adTag": "A String", # The URL the client should fetch to request a promoted item.
+          "destinationUrl": "A String", # The URL the client should direct the user to, if the user chooses to visit the advertiser's website.
+          "forecastingUrl": [ # The list of forecasting URLs. The client should ping all of these URLs when a promoted item is not available, to indicate that a promoted item could have been shown.
+            "A String",
+          ],
+          "impressionUrl": [ # The list of impression URLs. The client should ping all of these URLs to indicate that the user was shown this promoted item.
+            "A String",
+          ],
+          "creativeViewUrl": "A String", # The URL the client should ping to indicate that the user was shown this promoted item.
+          "videoId": "A String", # The ID that YouTube uses to uniquely identify the promoted video.
+          "descriptionText": "A String", # The text description to accompany the promoted item.
+          "customCtaButtonText": "A String", # The custom call-to-action button text. If specified, it will override the default button text for the cta_type.
+          "clickTrackingUrl": "A String", # The URL the client should ping to indicate that the user clicked through on this promoted item.
+        },
+        "social": { # Details about a social network post. # The social object contains details about a social network post. This property is only present if the snippet.type is social.
+          "resourceId": { # A resource id is a generic reference that points to another YouTube resource. # The resourceId object encapsulates information that identifies the resource associated with a social network post.
+            "kind": "A String", # The type of the API resource.
+            "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+            "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+            "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+          },
+          "imageUrl": "A String", # An image of the post's author.
+          "type": "A String", # The name of the social network.
+          "referenceUrl": "A String", # The URL of the social network post.
+          "author": "A String", # The author of the social network post.
+        },
+        "favorite": { # Information about a video that was marked as a favorite video. # The favorite object contains information about a video that was marked as a favorite video. This property is only present if the snippet.type is favorite.
+          "resourceId": { # A resource id is a generic reference that points to another YouTube resource. # The resourceId object contains information that identifies the resource that was marked as a favorite.
+            "kind": "A String", # The type of the API resource.
+            "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+            "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+            "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+          },
+        },
+        "upload": { # Information about the uploaded video. # The upload object contains information about the uploaded video. This property is only present if the snippet.type is upload.
+          "videoId": "A String", # The ID that YouTube uses to uniquely identify the uploaded video.
+        },
+        "recommendation": { # Information that identifies the recommended resource. # The recommendation object contains information about a recommended resource. This property is only present if the snippet.type is recommendation.
+          "resourceId": { # A resource id is a generic reference that points to another YouTube resource. # The resourceId object contains information that identifies the recommended resource.
+            "kind": "A String", # The type of the API resource.
+            "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+            "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+            "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+          },
+          "reason": "A String", # The reason that the resource is recommended to the user.
+          "seedResourceId": { # A resource id is a generic reference that points to another YouTube resource. # The seedResourceId object contains information about the resource that caused the recommendation.
+            "kind": "A String", # The type of the API resource.
+            "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+            "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+            "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+          },
+        },
+        "subscription": { # Information about a channel that a user subscribed to. # The subscription object contains information about a channel that a user subscribed to. This property is only present if the snippet.type is subscription.
+          "resourceId": { # A resource id is a generic reference that points to another YouTube resource. # The resourceId object contains information that identifies the resource that the user subscribed to.
+            "kind": "A String", # The type of the API resource.
+            "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+            "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+            "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+          },
+        },
+        "bulletin": { # Details about a channel bulletin post. # The bulletin object contains details about a channel bulletin post. This object is only present if the snippet.type is bulletin.
+          "resourceId": { # A resource id is a generic reference that points to another YouTube resource. # The resourceId object contains information that identifies the resource associated with a bulletin post.
+            "kind": "A String", # The type of the API resource.
+            "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+            "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+            "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+          },
+        },
+        "channelItem": { # Details about a resource which was added to a channel. # The channelItem object contains details about a resource which was added to a channel. This property is only present if the snippet.type is channelItem.
+          "resourceId": { # A resource id is a generic reference that points to another YouTube resource. # The resourceId object contains information that identifies the resource that was added to the channel.
+            "kind": "A String", # The type of the API resource.
+            "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+            "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+            "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+          },
+        },
+      },
+      "kind": "youtube#activity", # Identifies what kind of resource this is. Value: the fixed string "youtube#activity".
+      "etag": "A String", # Etag of this resource.
+      "id": "A String", # The ID that YouTube uses to uniquely identify the activity.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(part=None, pageToken=None, publishedBefore=None, channelId=None, mine=None, maxResults=None, regionCode=None, home=None, publishedAfter=None)</code>
+  <pre>Returns a list of channel activity events that match the request criteria. For example, you can retrieve events associated with a particular channel, events associated with the user's subscriptions and Google+ friends, or the YouTube home page feed, which is customized for each user.
+
+Args:
+  part: string, The part parameter specifies a comma-separated list of one or more activity resource properties that the API response will include. The part names that you can include in the parameter value are id, snippet, and contentDetails.
+
+If the parameter identifies a property that contains child properties, the child properties will be included in the response. For example, in a activity resource, the snippet property contains other properties that identify the type of activity, a display title for the activity, and so forth. If you set part=snippet, the API response will also contain all of those nested 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.
+  publishedBefore: string, The publishedBefore parameter specifies the date and time before which an activity must have occurred for that activity to be included in the API response. If the parameter value specifies a day, but not a time, then any activities that occurred that day will be excluded from the result set. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+  channelId: string, The channelId parameter specifies a unique YouTube channel ID. The API will then return a list of that channel's activities.
+  mine: boolean, Set this parameter's value to true to retrieve a feed of the authenticated user's activities.
+  maxResults: integer, The maxResults parameter specifies the maximum number of items that should be returned in the result set.
+  regionCode: string, The regionCode parameter instructs the API to return results for the specified country. The parameter value is an ISO 3166-1 alpha-2 country code. YouTube uses this value when the authorized user's previous activity on YouTube does not provide enough information to generate the activity feed.
+  home: boolean, Set this parameter's value to true to retrieve the activity feed that displays on the YouTube home page for the currently authenticated user.
+  publishedAfter: string, The publishedAfter parameter specifies the earliest date and time that an activity could have occurred for that activity to be included in the API response. If the parameter value specifies a day, but not a time, then any activities that occurred that day will be included in the result set. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+
+Returns:
+  An object of the form:
+
+    {
+    "eventId": "A String", # Serialized EventId of the request which produced this response.
+    "nextPageToken": "A String", # The token that can be used as the value of the pageToken parameter to retrieve the next page in the result set.
+    "kind": "youtube#activityListResponse", # Identifies what kind of resource this is. Value: the fixed string "youtube#activityListResponse".
+    "visitorId": "A String", # The visitorId identifies the visitor.
+    "items": [ # A list of activities, or events, that match the request criteria.
+      { # An activity resource contains information about an action that a particular channel, or user, has taken on YouTube.The actions reported in activity feeds include rating a video, sharing a video, marking a video as a favorite, commenting on a video, uploading a video, and so forth. Each activity resource identifies the type of action, the channel associated with the action, and the resource(s) associated with the action, such as the video that was rated or uploaded.
+          "snippet": { # Basic details about an activity, including title, description, thumbnails, activity type and group. # The snippet object contains basic details about the activity, including the activity's type and group ID.
+            "thumbnails": { # Internal representation of thumbnails for a YouTube resource. # A map of thumbnail images associated with the resource that is primarily associated with the activity. 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.
+                "width": 42, # (Optional) Width of the thumbnail image.
+                "height": 42, # (Optional) Height of the thumbnail image.
+              },
+              "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+                "url": "A String", # The thumbnail image's URL.
+                "width": 42, # (Optional) Width of the thumbnail image.
+                "height": 42, # (Optional) Height of the thumbnail image.
+              },
+              "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+                "url": "A String", # The thumbnail image's URL.
+                "width": 42, # (Optional) Width of the thumbnail image.
+                "height": 42, # (Optional) Height of the thumbnail image.
+              },
+              "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+                "url": "A String", # The thumbnail image's URL.
+                "width": 42, # (Optional) Width of the thumbnail image.
+                "height": 42, # (Optional) Height of the thumbnail image.
+              },
+              "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+                "url": "A String", # The thumbnail image's URL.
+                "width": 42, # (Optional) Width of the thumbnail image.
+                "height": 42, # (Optional) Height of the thumbnail image.
+              },
+            },
+            "title": "A String", # The title of the resource primarily associated with the activity.
+            "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel associated with the activity.
+            "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.
+            "channelTitle": "A String", # Channel title for the channel responsible for this activity
+            "type": "A String", # The type of activity that the resource describes.
+            "groupId": "A String", # The group ID associated with the activity. A group ID identifies user events that are associated with the same user and resource. For example, if a user rates a video and marks the same video as a favorite, the entries for those events would have the same group ID in the user's activity feed. In your user interface, you can avoid repetition by grouping events with the same groupId value.
+            "description": "A String", # The description of the resource primarily associated with the activity.
+          },
+          "contentDetails": { # Details about the content of an activity: the video that was shared, the channel that was subscribed to, etc. # The contentDetails object contains information about the content associated with the activity. For example, if the snippet.type value is videoRated, then the contentDetails object's content identifies the rated video.
+            "comment": { # Information about a resource that received a comment. # The comment object contains information about a resource that received a comment. This property is only present if the snippet.type is comment.
+              "resourceId": { # A resource id is a generic reference that points to another YouTube resource. # The resourceId object contains information that identifies the resource associated with the comment.
+                "kind": "A String", # The type of the API resource.
+                "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+                "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+                "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+              },
+            },
+            "playlistItem": { # Information about a new playlist item. # The playlistItem object contains information about a new playlist item. This property is only present if the snippet.type is playlistItem.
+              "resourceId": { # A resource id is a generic reference that points to another YouTube resource. # The resourceId object contains information about the resource that was added to the playlist.
+                "kind": "A String", # The type of the API resource.
+                "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+                "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+                "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+              },
+              "playlistId": "A String", # The value that YouTube uses to uniquely identify the playlist.
+              "playlistItemId": "A String", # ID of the item within the playlist.
+            },
+            "like": { # Information about a resource that received a positive (like) rating. # The like object contains information about a resource that received a positive (like) rating. This property is only present if the snippet.type is like.
+              "resourceId": { # A resource id is a generic reference that points to another YouTube resource. # The resourceId object contains information that identifies the rated resource.
+                "kind": "A String", # The type of the API resource.
+                "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+                "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+                "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+              },
+            },
+            "promotedItem": { # Details about a resource which is being promoted. # The promotedItem object contains details about a resource which is being promoted. This property is only present if the snippet.type is promotedItem.
+              "ctaType": "A String", # The type of call-to-action, a message to the user indicating action that can be taken.
+              "adTag": "A String", # The URL the client should fetch to request a promoted item.
+              "destinationUrl": "A String", # The URL the client should direct the user to, if the user chooses to visit the advertiser's website.
+              "forecastingUrl": [ # The list of forecasting URLs. The client should ping all of these URLs when a promoted item is not available, to indicate that a promoted item could have been shown.
+                "A String",
+              ],
+              "impressionUrl": [ # The list of impression URLs. The client should ping all of these URLs to indicate that the user was shown this promoted item.
+                "A String",
+              ],
+              "creativeViewUrl": "A String", # The URL the client should ping to indicate that the user was shown this promoted item.
+              "videoId": "A String", # The ID that YouTube uses to uniquely identify the promoted video.
+              "descriptionText": "A String", # The text description to accompany the promoted item.
+              "customCtaButtonText": "A String", # The custom call-to-action button text. If specified, it will override the default button text for the cta_type.
+              "clickTrackingUrl": "A String", # The URL the client should ping to indicate that the user clicked through on this promoted item.
+            },
+            "social": { # Details about a social network post. # The social object contains details about a social network post. This property is only present if the snippet.type is social.
+              "resourceId": { # A resource id is a generic reference that points to another YouTube resource. # The resourceId object encapsulates information that identifies the resource associated with a social network post.
+                "kind": "A String", # The type of the API resource.
+                "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+                "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+                "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+              },
+              "imageUrl": "A String", # An image of the post's author.
+              "type": "A String", # The name of the social network.
+              "referenceUrl": "A String", # The URL of the social network post.
+              "author": "A String", # The author of the social network post.
+            },
+            "favorite": { # Information about a video that was marked as a favorite video. # The favorite object contains information about a video that was marked as a favorite video. This property is only present if the snippet.type is favorite.
+              "resourceId": { # A resource id is a generic reference that points to another YouTube resource. # The resourceId object contains information that identifies the resource that was marked as a favorite.
+                "kind": "A String", # The type of the API resource.
+                "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+                "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+                "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+              },
+            },
+            "upload": { # Information about the uploaded video. # The upload object contains information about the uploaded video. This property is only present if the snippet.type is upload.
+              "videoId": "A String", # The ID that YouTube uses to uniquely identify the uploaded video.
+            },
+            "recommendation": { # Information that identifies the recommended resource. # The recommendation object contains information about a recommended resource. This property is only present if the snippet.type is recommendation.
+              "resourceId": { # A resource id is a generic reference that points to another YouTube resource. # The resourceId object contains information that identifies the recommended resource.
+                "kind": "A String", # The type of the API resource.
+                "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+                "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+                "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+              },
+              "reason": "A String", # The reason that the resource is recommended to the user.
+              "seedResourceId": { # A resource id is a generic reference that points to another YouTube resource. # The seedResourceId object contains information about the resource that caused the recommendation.
+                "kind": "A String", # The type of the API resource.
+                "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+                "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+                "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+              },
+            },
+            "subscription": { # Information about a channel that a user subscribed to. # The subscription object contains information about a channel that a user subscribed to. This property is only present if the snippet.type is subscription.
+              "resourceId": { # A resource id is a generic reference that points to another YouTube resource. # The resourceId object contains information that identifies the resource that the user subscribed to.
+                "kind": "A String", # The type of the API resource.
+                "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+                "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+                "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+              },
+            },
+            "bulletin": { # Details about a channel bulletin post. # The bulletin object contains details about a channel bulletin post. This object is only present if the snippet.type is bulletin.
+              "resourceId": { # A resource id is a generic reference that points to another YouTube resource. # The resourceId object contains information that identifies the resource associated with a bulletin post.
+                "kind": "A String", # The type of the API resource.
+                "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+                "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+                "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+              },
+            },
+            "channelItem": { # Details about a resource which was added to a channel. # The channelItem object contains details about a resource which was added to a channel. This property is only present if the snippet.type is channelItem.
+              "resourceId": { # A resource id is a generic reference that points to another YouTube resource. # The resourceId object contains information that identifies the resource that was added to the channel.
+                "kind": "A String", # The type of the API resource.
+                "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+                "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+                "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+              },
+            },
+          },
+          "kind": "youtube#activity", # Identifies what kind of resource this is. Value: the fixed string "youtube#activity".
+          "etag": "A String", # Etag of this resource.
+          "id": "A String", # The ID that YouTube uses to uniquely identify the activity.
+        },
+    ],
+    "tokenPagination": { # Stub token pagination template to suppress results.
+    },
+    "etag": "A String", # Etag of this resource.
+    "prevPageToken": "A String", # The token that can be used as the value of the pageToken parameter to retrieve the previous page in the result set.
+    "pageInfo": { # Paging details for lists of resources, including total number of items available and number of resources returned in a single page.
+      "totalResults": 42, # The total number of results in the result set.
+      "resultsPerPage": 42, # The number of results included in the API response.
+    },
+  }</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/youtube_v3.channelBanners.html b/docs/dyn/youtube_v3.channelBanners.html
new file mode 100644
index 0000000..029b80e
--- /dev/null
+++ b/docs/dyn/youtube_v3.channelBanners.html
@@ -0,0 +1,114 @@
+<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="youtube_v3.html">YouTube Data API</a> . <a href="youtube_v3.channelBanners.html">channelBanners</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#insert">insert(body=None, media_body=None, onBehalfOfContentOwner=None)</a></code></p>
+<p class="firstline">Uploads a channel banner image to YouTube. This method represents the first two steps in a three-step process to update the banner image for a channel:</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="insert">insert(body=None, media_body=None, onBehalfOfContentOwner=None)</code>
+  <pre>Uploads a channel banner image to YouTube. This method represents the first two steps in a three-step process to update the banner image for a channel:
+
+- Call the channelBanners.insert method to upload the binary image data to YouTube. The image must have a 16:9 aspect ratio and be at least 2120x1192 pixels.
+- Extract the url property's value from the response that the API returns for step 1.
+- Call the channels.update method to update the channel's branding settings. Set the brandingSettings.image.bannerExternalUrl property's value to the URL obtained in step 2.
+
+Args:
+  body: object, The request body.
+    The object takes the form of:
+
+{ # A channel banner returned as the response to a channel_banner.insert call.
+    "url": "A String", # The URL of this banner image.
+    "kind": "youtube#channelBannerResource", # Identifies what kind of resource this is. Value: the fixed string "youtube#channelBannerResource".
+    "etag": "A String", # Etag of this resource.
+  }
+
+  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
+  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 channel banner returned as the response to a channel_banner.insert call.
+      "url": "A String", # The URL of this banner image.
+      "kind": "youtube#channelBannerResource", # Identifies what kind of resource this is. Value: the fixed string "youtube#channelBannerResource".
+      "etag": "A String", # Etag of this resource.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/youtube_v3.channelSections.html b/docs/dyn/youtube_v3.channelSections.html
new file mode 100644
index 0000000..9fda7ae
--- /dev/null
+++ b/docs/dyn/youtube_v3.channelSections.html
@@ -0,0 +1,268 @@
+<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="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>
+<p class="firstline">Deletes a channelSection.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(part=None, body, onBehalfOfContentOwnerChannel=None)</a></code></p>
+<p class="firstline">Adds a channelSection for the authenticated user's channel.</p>
+<p class="toc_element">
+  <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>
+<p class="firstline">Update a channelSection.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(id)</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)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(part=None, body, onBehalfOfContentOwnerChannel=None)</code>
+  <pre>Adds a channelSection for the authenticated user's channel.
+
+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 and contentDetails. (required)
+  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.
+      "channels": [ # The channel ids for type multiple_channels.
+        "A String",
+      ],
+      "playlists": [ # The playlist ids for type single_playlist and multiple_playlists. For singlePlaylist, only one playlistId is allowed.
+        "A String",
+      ],
+    },
+    "kind": "youtube#channelSection", # Identifies what kind of resource this is. Value: the fixed string "youtube#channelSection".
+    "etag": "A String", # Etag of this resource.
+    "id": "A String", # The ID that YouTube uses to uniquely identify the ChannelSection.
+  }
+
+  onBehalfOfContentOwnerChannel: string, This parameter can only be used in a properly authorized request. Note: This parameter is intended exclusively for YouTube content partners.
+
+The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel ID of the channel to which a video is being added. This parameter is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it can only be used in conjunction with that parameter. In addition, the request must be authorized using a CMS account that is linked to the content owner that the onBehalfOfContentOwner parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value specifies must be linked to the content owner that the onBehalfOfContentOwner parameter specifies.
+
+This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and perform actions on behalf of the channel specified in the parameter value, without having to provide authentication credentials for each separate channel.
+
+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.
+        "channels": [ # The channel ids for type multiple_channels.
+          "A String",
+        ],
+        "playlists": [ # The playlist ids for type single_playlist and multiple_playlists. For singlePlaylist, only one playlistId is allowed.
+          "A String",
+        ],
+      },
+      "kind": "youtube#channelSection", # Identifies what kind of resource this is. Value: the fixed string "youtube#channelSection".
+      "etag": "A String", # Etag of this resource.
+      "id": "A String", # The ID that YouTube uses to uniquely identify the ChannelSection.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(part=None, onBehalfOfContentOwner=None, channelId=None, mine=None, id=None)</code>
+  <pre>Returns channelSection resources that match the API request criteria.
+
+Args:
+  part: string, The part parameter specifies a comma-separated list of one or more channelSection resource properties that the API response will include. The part names that you can include in the parameter value are id, snippet, and contentDetails.
+
+If the parameter identifies a property that contains child properties, the child properties will be included in the response. For example, in a channelSection resource, the snippet property contains other properties, such as a display title for the channelSection. If you set part=snippet, the API response will also contain all of those nested properties. (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.
+  channelId: string, The channelId parameter specifies a YouTube channel ID. The API will only return that channel's channelSections.
+  mine: boolean, Set this parameter's value to true to retrieve a feed of the authenticated user's channelSections.
+  id: string, The id parameter specifies a comma-separated list of the YouTube channelSection ID(s) for the resource(s) that are being retrieved. In a channelSection resource, the id property specifies the YouTube channelSection ID.
+
+Returns:
+  An object of the form:
+
+    {
+    "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.
+            "channels": [ # The channel ids for type multiple_channels.
+              "A String",
+            ],
+            "playlists": [ # The playlist ids for type single_playlist and multiple_playlists. For singlePlaylist, only one playlistId is allowed.
+              "A String",
+            ],
+          },
+          "kind": "youtube#channelSection", # Identifies what kind of resource this is. Value: the fixed string "youtube#channelSection".
+          "etag": "A String", # Etag of this resource.
+          "id": "A String", # The ID that YouTube uses to uniquely identify the ChannelSection.
+        },
+    ],
+    "kind": "youtube#channelSectionListResponse", # Identifies what kind of resource this is. Value: the fixed string "youtube#channelSectionListResponse".
+    "etag": "A String", # Etag of this resource.
+    "visitorId": "A String", # The visitorId identifies the visitor.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(part=None, body)</code>
+  <pre>Update a channelSection.
+
+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 and contentDetails. (required)
+  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.
+      "channels": [ # The channel ids for type multiple_channels.
+        "A String",
+      ],
+      "playlists": [ # The playlist ids for type single_playlist and multiple_playlists. For singlePlaylist, only one playlistId is allowed.
+        "A String",
+      ],
+    },
+    "kind": "youtube#channelSection", # Identifies what kind of resource this is. Value: the fixed string "youtube#channelSection".
+    "etag": "A String", # Etag of this resource.
+    "id": "A String", # The ID that YouTube uses to uniquely identify the ChannelSection.
+  }
+
+
+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.
+        "channels": [ # The channel ids for type multiple_channels.
+          "A String",
+        ],
+        "playlists": [ # The playlist ids for type single_playlist and multiple_playlists. For singlePlaylist, only one playlistId is allowed.
+          "A String",
+        ],
+      },
+      "kind": "youtube#channelSection", # Identifies what kind of resource this is. Value: the fixed string "youtube#channelSection".
+      "etag": "A String", # Etag of this resource.
+      "id": "A String", # The ID that YouTube uses to uniquely identify the ChannelSection.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/youtube_v3.channels.html b/docs/dyn/youtube_v3.channels.html
new file mode 100644
index 0000000..5797fcc
--- /dev/null
+++ b/docs/dyn/youtube_v3.channels.html
@@ -0,0 +1,767 @@
+<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="youtube_v3.html">YouTube Data API</a> . <a href="youtube_v3.channels.html">channels</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(part=None, managedByMe=None, onBehalfOfContentOwner=None, forUsername=None, pageToken=None, categoryId=None, maxResults=None, mine=None, mySubscribers=None, id=None)</a></code></p>
+<p class="firstline">Returns a collection of zero or more channel resources that match the request criteria.</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(part=None, body, onBehalfOfContentOwner=None)</a></code></p>
+<p class="firstline">Updates a channel's metadata.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(part=None, managedByMe=None, onBehalfOfContentOwner=None, forUsername=None, pageToken=None, categoryId=None, maxResults=None, mine=None, mySubscribers=None, id=None)</code>
+  <pre>Returns a collection of zero or more channel resources that match the request criteria.
+
+Args:
+  part: string, The part parameter specifies a comma-separated list of one or more channel resource properties that the API response will include. The part names that you can include in the parameter value are id, snippet, contentDetails, statistics, topicDetails, and invideoPromotion.
+
+If the parameter identifies a property that contains child properties, the child properties will be included in the response. For example, in a channel resource, the contentDetails property contains other properties, such as the uploads properties. As such, if you set part=contentDetails, the API response will also contain all of those nested properties. (required)
+  managedByMe: boolean, Set this parameter's value to true to instruct the API to only return channels managed by the content owner that the onBehalfOfContentOwner parameter specifies. The user must be authenticated as a CMS account linked to the specified content owner and onBehalfOfContentOwner must be provided.
+  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.
+  forUsername: string, The forUsername parameter specifies a YouTube username, thereby requesting the channel associated with that username.
+  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.
+  categoryId: string, The categoryId parameter specifies a YouTube guide category, thereby requesting YouTube channels associated with that category.
+  maxResults: integer, The maxResults parameter specifies the maximum number of items that should be returned in the result set.
+  mine: boolean, Set this parameter's value to true to instruct the API to only return channels owned by the authenticated user.
+  mySubscribers: boolean, Set this parameter's value to true to retrieve a list of channels that subscribed to the authenticated user's channel.
+  id: string, The id parameter specifies a comma-separated list of the YouTube channel ID(s) for the resource(s) that are being retrieved. In a channel resource, the id property specifies the channel's YouTube channel ID.
+
+Returns:
+  An object of the form:
+
+    {
+    "eventId": "A String", # Serialized EventId of the request which produced this response.
+    "nextPageToken": "A String", # The token that can be used as the value of the pageToken parameter to retrieve the next page in the result set.
+    "kind": "youtube#channelListResponse", # Identifies what kind of resource this is. Value: the fixed string "youtube#channelListResponse".
+    "visitorId": "A String", # The visitorId identifies the visitor.
+    "items": [ # A list of channels that match the request criteria.
+      { # A channel resource contains information about a YouTube channel.
+        "status": { # JSON template for the status part of a channel. # The status object encapsulates information about the privacy status of the channel.
+          "privacyStatus": "A String", # Privacy status of the channel.
+          "isLinked": True or False, # If true, then the user is linked to either a YouTube username or G+ account. Otherwise, the user doesn't have a public YouTube identity.
+        },
+        "invideoPromotion": { # Describes an invideo promotion campaign consisting of multiple promoted items. A campaign belongs to a single channel_id. # The invideoPromotion object encapsulates information about promotion campaign associated with the channel.
+          "defaultTiming": { # Describes a temporal position of a visual widget inside a video. # The default temporal position within the video where the promoted item will be displayed. Can be overriden by more specific timing in the item.
+            "offsetMs": "A String", # Defines the time at which the promotion will appear. Depending on the value of type the value of the offsetMs field will represent a time offset from the start or from the end of the video, expressed in milliseconds.
+            "type": "A String", # Describes a timing type. If the value is offsetFromStart, then the offsetMs field represents an offset from the start of the video. If the value is offsetFromEnd, then the offsetMs field represents an offset from the end of the video.
+            "durationMs": "A String", # Defines the duration in milliseconds for which the promotion should be displayed. If missing, the client should use the default.
+          },
+          "items": [ # List of promoted items in decreasing priority.
+            { # Describes a single promoted item.
+              "timing": { # Describes a temporal position of a visual widget inside a video. # The temporal position within the video where the promoted item will be displayed. If present, it overrides the default timing.
+                "offsetMs": "A String", # Defines the time at which the promotion will appear. Depending on the value of type the value of the offsetMs field will represent a time offset from the start or from the end of the video, expressed in milliseconds.
+                "type": "A String", # Describes a timing type. If the value is offsetFromStart, then the offsetMs field represents an offset from the start of the video. If the value is offsetFromEnd, then the offsetMs field represents an offset from the end of the video.
+                "durationMs": "A String", # Defines the duration in milliseconds for which the promotion should be displayed. If missing, the client should use the default.
+              },
+              "promotedByContentOwner": True or False, # If true, the content owner's name will be used when displaying the promotion. This field can only be set when the update is made on behalf of the content owner.
+              "customMessage": "A String", # A custom message to display for this promotion. This field is currently ignored unless the promoted item is a website.
+              "id": { # Describes a single promoted item id. It is a union of various possible types. # Identifies the promoted item.
+                "websiteUrl": "A String", # If the promoted item represents a website, this field represents the url pointing to the website. This field will be present only if type has the value website.
+                "recentlyUploadedBy": "A String", # If type is recentUpload, this field identifies the channel from which to take the recent upload. If missing, the channel is assumed to be the same channel for which the invideoPromotion is set.
+                "type": "A String", # Describes the type of the promoted item.
+                "videoId": "A String", # If the promoted item represents a video, this field represents the unique YouTube ID identifying it. This field will be present only if type has the value video.
+              },
+            },
+          ],
+          "position": { # Describes the spatial position of a visual widget inside a video. It is a union of various position types, out of which only will be set one. # The spatial position within the video where the promoted item will be displayed.
+            "cornerPosition": "A String", # Describes in which corner of the video the visual widget will appear.
+            "type": "A String", # Defines the position type.
+          },
+        },
+        "kind": "youtube#channel", # Identifies what kind of resource this is. Value: the fixed string "youtube#channel".
+        "statistics": { # Statistics about a channel: number of subscribers, number of videos in the channel, etc. # The statistics object encapsulates statistics for the channel.
+          "commentCount": "A String", # The number of comments for the channel.
+          "subscriberCount": "A String", # The number of subscribers that the channel has.
+          "videoCount": "A String", # The number of videos uploaded to the channel.
+          "hiddenSubscriberCount": True or False, # Whether or not the number of subscribers is shown for this user.
+          "viewCount": "A String", # The number of times the channel has been viewed.
+        },
+        "contentOwnerDetails": { # The contentOwnerDetails object encapsulates channel data that is relevant for YouTube Partners linked with the channel. # The contentOwnerDetails object encapsulates channel data that is relevant for YouTube Partners linked with the channel.
+          "contentOwner": "A String", # The ID of the content owner linked to the channel.
+          "timeLinked": "A String", # The date and time of when the channel was linked to the content owner. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+        },
+        "topicDetails": { # Freebase topic information related to the channel. # The topicDetails object encapsulates information about Freebase topics associated with the channel.
+          "topicIds": [ # A list of Freebase topic IDs associated with the channel. You can retrieve information about each topic using the Freebase Topic API.
+            "A String",
+          ],
+        },
+        "contentDetails": { # Details about the content of a channel. # The contentDetails object encapsulates information about the channel's content.
+          "relatedPlaylists": {
+            "watchLater": "A String", # The ID of the playlist that contains the channel"s watch later playlist. Use the playlistItems.insert and  playlistItems.delete to add or remove items from that list.
+            "watchHistory": "A String", # The ID of the playlist that contains the channel"s watch history. Use the  playlistItems.insert and  playlistItems.delete to add or remove items from that list.
+            "likes": "A String", # The ID of the playlist that contains the channel"s liked videos. Use the   playlistItems.insert and  playlistItems.delete to add or remove items from that list.
+            "favorites": "A String", # The ID of the playlist that contains the channel"s favorite videos. Use the  playlistItems.insert and  playlistItems.delete to add or remove items from that list.
+            "uploads": "A String", # The ID of the playlist that contains the channel"s uploaded videos. Use the  videos.insert method to upload new videos and the videos.delete method to delete previously uploaded videos.
+          },
+          "googlePlusUserId": "A String", # The googlePlusUserId object identifies the Google+ profile ID associated with this channel.
+        },
+        "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.
+                },
+              ],
+            },
+            "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.
+                },
+              ],
+            },
+            "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.
+                },
+              ],
+            },
+            "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.
+                },
+              ],
+            },
+            "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.
+                },
+              ],
+            },
+            "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.
+            "bannerTvMediumImageUrl": "A String", # Banner image. TV size medium resolution (1280x720).
+            "bannerMobileImageUrl": "A String", # Banner image. Mobile size (640x175).
+            "bannerTabletHdImageUrl": "A String", # Banner image. Tablet size high resolution (2276x377).
+            "bannerTvHighImageUrl": "A String", # Banner image. TV size high resolution (1920x1080).
+            "trackingImageUrl": "A String", # The URL for a 1px by 1px tracking pixel that can be used to collect statistics for views of the channel or video pages.
+            "bannerTabletLowImageUrl": "A String", # Banner image. Tablet size low resolution (1138x188).
+            "bannerMobileExtraHdImageUrl": "A String", # Banner image. Mobile size high resolution (1440x395).
+            "bannerTabletImageUrl": "A String", # Banner image. Tablet size (1707x283).
+            "bannerMobileLowImageUrl": "A String", # Banner image. Mobile size low resolution (320x88).
+            "bannerMobileMediumHdImageUrl": "A String", # Banner image. Mobile size medium/high resolution (960x263).
+            "bannerTabletExtraHdImageUrl": "A String", # Banner image. Tablet size extra high resolution (2560x424).
+            "bannerMobileHdImageUrl": "A String", # Banner image. Mobile size high resolution (1280x360).
+          },
+          "watch": { # Branding properties for the watch. # Branding properties for the watch page.
+            "textColor": "A String", # The background color for the video watch page's branded area.
+            "featuredPlaylistId": "A String", # An ID that uniquely identifies a playlist that displays next to the video player.
+            "backgroundColor": "A String", # The text color for the video watch page's branded area.
+          },
+          "channel": { # Branding properties for the channel view. # Branding properties for the channel view.
+            "description": "A String", # Specifies the channel description.
+            "title": "A String", # Specifies the channel title.
+            "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.
+            "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.
+            "defaultTab": "A String", # Which content tab users should see when viewing the channel.
+            "featuredChannelsUrls": [ # The list of featured channels.
+              "A String",
+            ],
+            "trackingAnalyticsAccountId": "A String", # The ID for a Google Analytics account to track and measure traffic to the channels.
+            "showRelatedChannels": True or False, # Whether related channels should be proposed.
+          },
+          "hints": [ # Additional experimental branding properties.
+            { # A pair Property / Value.
+              "property": "A String", # A property.
+              "value": "A String", # The property's value.
+            },
+          ],
+        },
+        "conversionPings": { # The conversionPings object encapsulates information about conversion pings that need to be respected by the channel. # The conversionPings object encapsulates information about conversion pings that need to be respected by the channel.
+          "pings": [ # Pings that the app shall fire (authenticated by biscotti cookie). Each ping has a context, in which the app must fire the ping, and a url identifying the ping.
+            { # Pings that the app shall fire (authenticated by biscotti cookie). Each ping has a context, in which the app must fire the ping, and a url identifying the ping.
+              "conversionUrl": "A String", # The url (without the schema) that the player shall send the ping to. It's at caller's descretion to decide which schema to use (http vs https) Example of a returned url: //googleads.g.doubleclick.net/pagead/ viewthroughconversion/962985656/?data=path%3DtHe_path%3Btype%3D cview%3Butuid%3DGISQtTNGYqaYl4sKxoVvKA&labe=default The caller must append biscotti authentication (ms param in case of mobile, for example) to this ping.
+              "context": "A String", # Defines the context of the ping.
+            },
+          ],
+        },
+        "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.
+              "width": 42, # (Optional) Width of the thumbnail image.
+              "height": 42, # (Optional) Height of the thumbnail image.
+            },
+            "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+              "url": "A String", # The thumbnail image's URL.
+              "width": 42, # (Optional) Width of the thumbnail image.
+              "height": 42, # (Optional) Height of the thumbnail image.
+            },
+            "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+              "url": "A String", # The thumbnail image's URL.
+              "width": 42, # (Optional) Width of the thumbnail image.
+              "height": 42, # (Optional) Height of the thumbnail image.
+            },
+            "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+              "url": "A String", # The thumbnail image's URL.
+              "width": 42, # (Optional) Width of the thumbnail image.
+              "height": 42, # (Optional) Height of the thumbnail image.
+            },
+            "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+              "url": "A String", # The thumbnail image's URL.
+              "width": 42, # (Optional) Width of the thumbnail image.
+              "height": 42, # (Optional) Height of the thumbnail image.
+            },
+          },
+        },
+        "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.
+          "contentIdClaimsGoodStanding": True or False, # Whether or not the channel has any unresolved claims.
+          "overallGoodStanding": True or False, # Describes the general state of the channel. This field will always show if there are any issues whatsoever with the channel. Currently this field represents the result of the logical and operation over the community guidelines good standing, the copyright strikes good standing and the content ID claims good standing, but this may change in the future.
+          "copyrightStrikesGoodStanding": True or False, # Whether or not the channel has any copyright strikes.
+        },
+        "etag": "A String", # Etag of this resource.
+        "id": "A String", # The ID that YouTube uses to uniquely identify the channel.
+      },
+    ],
+    "tokenPagination": { # Stub token pagination template to suppress results.
+    },
+    "etag": "A String", # Etag of this resource.
+    "prevPageToken": "A String", # The token that can be used as the value of the pageToken parameter to retrieve the previous page in the result set.
+    "pageInfo": { # Paging details for lists of resources, including total number of items available and number of resources returned in a single page.
+      "totalResults": 42, # The total number of results in the result set.
+      "resultsPerPage": 42, # The number of results included in the API response.
+    },
+  }</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(part=None, body, onBehalfOfContentOwner=None)</code>
+  <pre>Updates a channel's metadata.
+
+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 id and invideoPromotion.
+
+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. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A channel resource contains information about a YouTube channel.
+  "status": { # JSON template for the status part of a channel. # The status object encapsulates information about the privacy status of the channel.
+    "privacyStatus": "A String", # Privacy status of the channel.
+    "isLinked": True or False, # If true, then the user is linked to either a YouTube username or G+ account. Otherwise, the user doesn't have a public YouTube identity.
+  },
+  "invideoPromotion": { # Describes an invideo promotion campaign consisting of multiple promoted items. A campaign belongs to a single channel_id. # The invideoPromotion object encapsulates information about promotion campaign associated with the channel.
+    "defaultTiming": { # Describes a temporal position of a visual widget inside a video. # The default temporal position within the video where the promoted item will be displayed. Can be overriden by more specific timing in the item.
+      "offsetMs": "A String", # Defines the time at which the promotion will appear. Depending on the value of type the value of the offsetMs field will represent a time offset from the start or from the end of the video, expressed in milliseconds.
+      "type": "A String", # Describes a timing type. If the value is offsetFromStart, then the offsetMs field represents an offset from the start of the video. If the value is offsetFromEnd, then the offsetMs field represents an offset from the end of the video.
+      "durationMs": "A String", # Defines the duration in milliseconds for which the promotion should be displayed. If missing, the client should use the default.
+    },
+    "items": [ # List of promoted items in decreasing priority.
+      { # Describes a single promoted item.
+        "timing": { # Describes a temporal position of a visual widget inside a video. # The temporal position within the video where the promoted item will be displayed. If present, it overrides the default timing.
+          "offsetMs": "A String", # Defines the time at which the promotion will appear. Depending on the value of type the value of the offsetMs field will represent a time offset from the start or from the end of the video, expressed in milliseconds.
+          "type": "A String", # Describes a timing type. If the value is offsetFromStart, then the offsetMs field represents an offset from the start of the video. If the value is offsetFromEnd, then the offsetMs field represents an offset from the end of the video.
+          "durationMs": "A String", # Defines the duration in milliseconds for which the promotion should be displayed. If missing, the client should use the default.
+        },
+        "promotedByContentOwner": True or False, # If true, the content owner's name will be used when displaying the promotion. This field can only be set when the update is made on behalf of the content owner.
+        "customMessage": "A String", # A custom message to display for this promotion. This field is currently ignored unless the promoted item is a website.
+        "id": { # Describes a single promoted item id. It is a union of various possible types. # Identifies the promoted item.
+          "websiteUrl": "A String", # If the promoted item represents a website, this field represents the url pointing to the website. This field will be present only if type has the value website.
+          "recentlyUploadedBy": "A String", # If type is recentUpload, this field identifies the channel from which to take the recent upload. If missing, the channel is assumed to be the same channel for which the invideoPromotion is set.
+          "type": "A String", # Describes the type of the promoted item.
+          "videoId": "A String", # If the promoted item represents a video, this field represents the unique YouTube ID identifying it. This field will be present only if type has the value video.
+        },
+      },
+    ],
+    "position": { # Describes the spatial position of a visual widget inside a video. It is a union of various position types, out of which only will be set one. # The spatial position within the video where the promoted item will be displayed.
+      "cornerPosition": "A String", # Describes in which corner of the video the visual widget will appear.
+      "type": "A String", # Defines the position type.
+    },
+  },
+  "kind": "youtube#channel", # Identifies what kind of resource this is. Value: the fixed string "youtube#channel".
+  "statistics": { # Statistics about a channel: number of subscribers, number of videos in the channel, etc. # The statistics object encapsulates statistics for the channel.
+    "commentCount": "A String", # The number of comments for the channel.
+    "subscriberCount": "A String", # The number of subscribers that the channel has.
+    "videoCount": "A String", # The number of videos uploaded to the channel.
+    "hiddenSubscriberCount": True or False, # Whether or not the number of subscribers is shown for this user.
+    "viewCount": "A String", # The number of times the channel has been viewed.
+  },
+  "contentOwnerDetails": { # The contentOwnerDetails object encapsulates channel data that is relevant for YouTube Partners linked with the channel. # The contentOwnerDetails object encapsulates channel data that is relevant for YouTube Partners linked with the channel.
+    "contentOwner": "A String", # The ID of the content owner linked to the channel.
+    "timeLinked": "A String", # The date and time of when the channel was linked to the content owner. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+  },
+  "topicDetails": { # Freebase topic information related to the channel. # The topicDetails object encapsulates information about Freebase topics associated with the channel.
+    "topicIds": [ # A list of Freebase topic IDs associated with the channel. You can retrieve information about each topic using the Freebase Topic API.
+      "A String",
+    ],
+  },
+  "contentDetails": { # Details about the content of a channel. # The contentDetails object encapsulates information about the channel's content.
+    "relatedPlaylists": {
+      "watchLater": "A String", # The ID of the playlist that contains the channel"s watch later playlist. Use the playlistItems.insert and  playlistItems.delete to add or remove items from that list.
+      "watchHistory": "A String", # The ID of the playlist that contains the channel"s watch history. Use the  playlistItems.insert and  playlistItems.delete to add or remove items from that list.
+      "likes": "A String", # The ID of the playlist that contains the channel"s liked videos. Use the   playlistItems.insert and  playlistItems.delete to add or remove items from that list.
+      "favorites": "A String", # The ID of the playlist that contains the channel"s favorite videos. Use the  playlistItems.insert and  playlistItems.delete to add or remove items from that list.
+      "uploads": "A String", # The ID of the playlist that contains the channel"s uploaded videos. Use the  videos.insert method to upload new videos and the videos.delete method to delete previously uploaded videos.
+    },
+    "googlePlusUserId": "A String", # The googlePlusUserId object identifies the Google+ profile ID associated with this channel.
+  },
+  "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.
+          },
+        ],
+      },
+      "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.
+          },
+        ],
+      },
+      "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.
+          },
+        ],
+      },
+      "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.
+          },
+        ],
+      },
+      "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.
+          },
+        ],
+      },
+      "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.
+      "bannerTvMediumImageUrl": "A String", # Banner image. TV size medium resolution (1280x720).
+      "bannerMobileImageUrl": "A String", # Banner image. Mobile size (640x175).
+      "bannerTabletHdImageUrl": "A String", # Banner image. Tablet size high resolution (2276x377).
+      "bannerTvHighImageUrl": "A String", # Banner image. TV size high resolution (1920x1080).
+      "trackingImageUrl": "A String", # The URL for a 1px by 1px tracking pixel that can be used to collect statistics for views of the channel or video pages.
+      "bannerTabletLowImageUrl": "A String", # Banner image. Tablet size low resolution (1138x188).
+      "bannerMobileExtraHdImageUrl": "A String", # Banner image. Mobile size high resolution (1440x395).
+      "bannerTabletImageUrl": "A String", # Banner image. Tablet size (1707x283).
+      "bannerMobileLowImageUrl": "A String", # Banner image. Mobile size low resolution (320x88).
+      "bannerMobileMediumHdImageUrl": "A String", # Banner image. Mobile size medium/high resolution (960x263).
+      "bannerTabletExtraHdImageUrl": "A String", # Banner image. Tablet size extra high resolution (2560x424).
+      "bannerMobileHdImageUrl": "A String", # Banner image. Mobile size high resolution (1280x360).
+    },
+    "watch": { # Branding properties for the watch. # Branding properties for the watch page.
+      "textColor": "A String", # The background color for the video watch page's branded area.
+      "featuredPlaylistId": "A String", # An ID that uniquely identifies a playlist that displays next to the video player.
+      "backgroundColor": "A String", # The text color for the video watch page's branded area.
+    },
+    "channel": { # Branding properties for the channel view. # Branding properties for the channel view.
+      "description": "A String", # Specifies the channel description.
+      "title": "A String", # Specifies the channel title.
+      "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.
+      "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.
+      "defaultTab": "A String", # Which content tab users should see when viewing the channel.
+      "featuredChannelsUrls": [ # The list of featured channels.
+        "A String",
+      ],
+      "trackingAnalyticsAccountId": "A String", # The ID for a Google Analytics account to track and measure traffic to the channels.
+      "showRelatedChannels": True or False, # Whether related channels should be proposed.
+    },
+    "hints": [ # Additional experimental branding properties.
+      { # A pair Property / Value.
+        "property": "A String", # A property.
+        "value": "A String", # The property's value.
+      },
+    ],
+  },
+  "conversionPings": { # The conversionPings object encapsulates information about conversion pings that need to be respected by the channel. # The conversionPings object encapsulates information about conversion pings that need to be respected by the channel.
+    "pings": [ # Pings that the app shall fire (authenticated by biscotti cookie). Each ping has a context, in which the app must fire the ping, and a url identifying the ping.
+      { # Pings that the app shall fire (authenticated by biscotti cookie). Each ping has a context, in which the app must fire the ping, and a url identifying the ping.
+        "conversionUrl": "A String", # The url (without the schema) that the player shall send the ping to. It's at caller's descretion to decide which schema to use (http vs https) Example of a returned url: //googleads.g.doubleclick.net/pagead/ viewthroughconversion/962985656/?data=path%3DtHe_path%3Btype%3D cview%3Butuid%3DGISQtTNGYqaYl4sKxoVvKA&labe=default The caller must append biscotti authentication (ms param in case of mobile, for example) to this ping.
+        "context": "A String", # Defines the context of the ping.
+      },
+    ],
+  },
+  "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.
+        "width": 42, # (Optional) Width of the thumbnail image.
+        "height": 42, # (Optional) Height of the thumbnail image.
+      },
+      "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+        "url": "A String", # The thumbnail image's URL.
+        "width": 42, # (Optional) Width of the thumbnail image.
+        "height": 42, # (Optional) Height of the thumbnail image.
+      },
+      "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+        "url": "A String", # The thumbnail image's URL.
+        "width": 42, # (Optional) Width of the thumbnail image.
+        "height": 42, # (Optional) Height of the thumbnail image.
+      },
+      "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+        "url": "A String", # The thumbnail image's URL.
+        "width": 42, # (Optional) Width of the thumbnail image.
+        "height": 42, # (Optional) Height of the thumbnail image.
+      },
+      "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+        "url": "A String", # The thumbnail image's URL.
+        "width": 42, # (Optional) Width of the thumbnail image.
+        "height": 42, # (Optional) Height of the thumbnail image.
+      },
+    },
+  },
+  "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.
+    "contentIdClaimsGoodStanding": True or False, # Whether or not the channel has any unresolved claims.
+    "overallGoodStanding": True or False, # Describes the general state of the channel. This field will always show if there are any issues whatsoever with the channel. Currently this field represents the result of the logical and operation over the community guidelines good standing, the copyright strikes good standing and the content ID claims good standing, but this may change in the future.
+    "copyrightStrikesGoodStanding": True or False, # Whether or not the channel has any copyright strikes.
+  },
+  "etag": "A String", # Etag of this resource.
+  "id": "A String", # The ID that YouTube uses to uniquely identify the channel.
+}
+
+  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.
+
+Returns:
+  An object of the form:
+
+    { # A channel resource contains information about a YouTube channel.
+    "status": { # JSON template for the status part of a channel. # The status object encapsulates information about the privacy status of the channel.
+      "privacyStatus": "A String", # Privacy status of the channel.
+      "isLinked": True or False, # If true, then the user is linked to either a YouTube username or G+ account. Otherwise, the user doesn't have a public YouTube identity.
+    },
+    "invideoPromotion": { # Describes an invideo promotion campaign consisting of multiple promoted items. A campaign belongs to a single channel_id. # The invideoPromotion object encapsulates information about promotion campaign associated with the channel.
+      "defaultTiming": { # Describes a temporal position of a visual widget inside a video. # The default temporal position within the video where the promoted item will be displayed. Can be overriden by more specific timing in the item.
+        "offsetMs": "A String", # Defines the time at which the promotion will appear. Depending on the value of type the value of the offsetMs field will represent a time offset from the start or from the end of the video, expressed in milliseconds.
+        "type": "A String", # Describes a timing type. If the value is offsetFromStart, then the offsetMs field represents an offset from the start of the video. If the value is offsetFromEnd, then the offsetMs field represents an offset from the end of the video.
+        "durationMs": "A String", # Defines the duration in milliseconds for which the promotion should be displayed. If missing, the client should use the default.
+      },
+      "items": [ # List of promoted items in decreasing priority.
+        { # Describes a single promoted item.
+          "timing": { # Describes a temporal position of a visual widget inside a video. # The temporal position within the video where the promoted item will be displayed. If present, it overrides the default timing.
+            "offsetMs": "A String", # Defines the time at which the promotion will appear. Depending on the value of type the value of the offsetMs field will represent a time offset from the start or from the end of the video, expressed in milliseconds.
+            "type": "A String", # Describes a timing type. If the value is offsetFromStart, then the offsetMs field represents an offset from the start of the video. If the value is offsetFromEnd, then the offsetMs field represents an offset from the end of the video.
+            "durationMs": "A String", # Defines the duration in milliseconds for which the promotion should be displayed. If missing, the client should use the default.
+          },
+          "promotedByContentOwner": True or False, # If true, the content owner's name will be used when displaying the promotion. This field can only be set when the update is made on behalf of the content owner.
+          "customMessage": "A String", # A custom message to display for this promotion. This field is currently ignored unless the promoted item is a website.
+          "id": { # Describes a single promoted item id. It is a union of various possible types. # Identifies the promoted item.
+            "websiteUrl": "A String", # If the promoted item represents a website, this field represents the url pointing to the website. This field will be present only if type has the value website.
+            "recentlyUploadedBy": "A String", # If type is recentUpload, this field identifies the channel from which to take the recent upload. If missing, the channel is assumed to be the same channel for which the invideoPromotion is set.
+            "type": "A String", # Describes the type of the promoted item.
+            "videoId": "A String", # If the promoted item represents a video, this field represents the unique YouTube ID identifying it. This field will be present only if type has the value video.
+          },
+        },
+      ],
+      "position": { # Describes the spatial position of a visual widget inside a video. It is a union of various position types, out of which only will be set one. # The spatial position within the video where the promoted item will be displayed.
+        "cornerPosition": "A String", # Describes in which corner of the video the visual widget will appear.
+        "type": "A String", # Defines the position type.
+      },
+    },
+    "kind": "youtube#channel", # Identifies what kind of resource this is. Value: the fixed string "youtube#channel".
+    "statistics": { # Statistics about a channel: number of subscribers, number of videos in the channel, etc. # The statistics object encapsulates statistics for the channel.
+      "commentCount": "A String", # The number of comments for the channel.
+      "subscriberCount": "A String", # The number of subscribers that the channel has.
+      "videoCount": "A String", # The number of videos uploaded to the channel.
+      "hiddenSubscriberCount": True or False, # Whether or not the number of subscribers is shown for this user.
+      "viewCount": "A String", # The number of times the channel has been viewed.
+    },
+    "contentOwnerDetails": { # The contentOwnerDetails object encapsulates channel data that is relevant for YouTube Partners linked with the channel. # The contentOwnerDetails object encapsulates channel data that is relevant for YouTube Partners linked with the channel.
+      "contentOwner": "A String", # The ID of the content owner linked to the channel.
+      "timeLinked": "A String", # The date and time of when the channel was linked to the content owner. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+    },
+    "topicDetails": { # Freebase topic information related to the channel. # The topicDetails object encapsulates information about Freebase topics associated with the channel.
+      "topicIds": [ # A list of Freebase topic IDs associated with the channel. You can retrieve information about each topic using the Freebase Topic API.
+        "A String",
+      ],
+    },
+    "contentDetails": { # Details about the content of a channel. # The contentDetails object encapsulates information about the channel's content.
+      "relatedPlaylists": {
+        "watchLater": "A String", # The ID of the playlist that contains the channel"s watch later playlist. Use the playlistItems.insert and  playlistItems.delete to add or remove items from that list.
+        "watchHistory": "A String", # The ID of the playlist that contains the channel"s watch history. Use the  playlistItems.insert and  playlistItems.delete to add or remove items from that list.
+        "likes": "A String", # The ID of the playlist that contains the channel"s liked videos. Use the   playlistItems.insert and  playlistItems.delete to add or remove items from that list.
+        "favorites": "A String", # The ID of the playlist that contains the channel"s favorite videos. Use the  playlistItems.insert and  playlistItems.delete to add or remove items from that list.
+        "uploads": "A String", # The ID of the playlist that contains the channel"s uploaded videos. Use the  videos.insert method to upload new videos and the videos.delete method to delete previously uploaded videos.
+      },
+      "googlePlusUserId": "A String", # The googlePlusUserId object identifies the Google+ profile ID associated with this channel.
+    },
+    "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.
+            },
+          ],
+        },
+        "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.
+            },
+          ],
+        },
+        "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.
+            },
+          ],
+        },
+        "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.
+            },
+          ],
+        },
+        "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.
+            },
+          ],
+        },
+        "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.
+        "bannerTvMediumImageUrl": "A String", # Banner image. TV size medium resolution (1280x720).
+        "bannerMobileImageUrl": "A String", # Banner image. Mobile size (640x175).
+        "bannerTabletHdImageUrl": "A String", # Banner image. Tablet size high resolution (2276x377).
+        "bannerTvHighImageUrl": "A String", # Banner image. TV size high resolution (1920x1080).
+        "trackingImageUrl": "A String", # The URL for a 1px by 1px tracking pixel that can be used to collect statistics for views of the channel or video pages.
+        "bannerTabletLowImageUrl": "A String", # Banner image. Tablet size low resolution (1138x188).
+        "bannerMobileExtraHdImageUrl": "A String", # Banner image. Mobile size high resolution (1440x395).
+        "bannerTabletImageUrl": "A String", # Banner image. Tablet size (1707x283).
+        "bannerMobileLowImageUrl": "A String", # Banner image. Mobile size low resolution (320x88).
+        "bannerMobileMediumHdImageUrl": "A String", # Banner image. Mobile size medium/high resolution (960x263).
+        "bannerTabletExtraHdImageUrl": "A String", # Banner image. Tablet size extra high resolution (2560x424).
+        "bannerMobileHdImageUrl": "A String", # Banner image. Mobile size high resolution (1280x360).
+      },
+      "watch": { # Branding properties for the watch. # Branding properties for the watch page.
+        "textColor": "A String", # The background color for the video watch page's branded area.
+        "featuredPlaylistId": "A String", # An ID that uniquely identifies a playlist that displays next to the video player.
+        "backgroundColor": "A String", # The text color for the video watch page's branded area.
+      },
+      "channel": { # Branding properties for the channel view. # Branding properties for the channel view.
+        "description": "A String", # Specifies the channel description.
+        "title": "A String", # Specifies the channel title.
+        "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.
+        "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.
+        "defaultTab": "A String", # Which content tab users should see when viewing the channel.
+        "featuredChannelsUrls": [ # The list of featured channels.
+          "A String",
+        ],
+        "trackingAnalyticsAccountId": "A String", # The ID for a Google Analytics account to track and measure traffic to the channels.
+        "showRelatedChannels": True or False, # Whether related channels should be proposed.
+      },
+      "hints": [ # Additional experimental branding properties.
+        { # A pair Property / Value.
+          "property": "A String", # A property.
+          "value": "A String", # The property's value.
+        },
+      ],
+    },
+    "conversionPings": { # The conversionPings object encapsulates information about conversion pings that need to be respected by the channel. # The conversionPings object encapsulates information about conversion pings that need to be respected by the channel.
+      "pings": [ # Pings that the app shall fire (authenticated by biscotti cookie). Each ping has a context, in which the app must fire the ping, and a url identifying the ping.
+        { # Pings that the app shall fire (authenticated by biscotti cookie). Each ping has a context, in which the app must fire the ping, and a url identifying the ping.
+          "conversionUrl": "A String", # The url (without the schema) that the player shall send the ping to. It's at caller's descretion to decide which schema to use (http vs https) Example of a returned url: //googleads.g.doubleclick.net/pagead/ viewthroughconversion/962985656/?data=path%3DtHe_path%3Btype%3D cview%3Butuid%3DGISQtTNGYqaYl4sKxoVvKA&labe=default The caller must append biscotti authentication (ms param in case of mobile, for example) to this ping.
+          "context": "A String", # Defines the context of the ping.
+        },
+      ],
+    },
+    "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.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+      },
+    },
+    "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.
+      "contentIdClaimsGoodStanding": True or False, # Whether or not the channel has any unresolved claims.
+      "overallGoodStanding": True or False, # Describes the general state of the channel. This field will always show if there are any issues whatsoever with the channel. Currently this field represents the result of the logical and operation over the community guidelines good standing, the copyright strikes good standing and the content ID claims good standing, but this may change in the future.
+      "copyrightStrikesGoodStanding": True or False, # Whether or not the channel has any copyright strikes.
+    },
+    "etag": "A String", # Etag of this resource.
+    "id": "A String", # The ID that YouTube uses to uniquely identify the channel.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/youtube_v3.guideCategories.html b/docs/dyn/youtube_v3.guideCategories.html
new file mode 100644
index 0000000..68a4d1d
--- /dev/null
+++ b/docs/dyn/youtube_v3.guideCategories.html
@@ -0,0 +1,123 @@
+<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="youtube_v3.html">YouTube Data API</a> . <a href="youtube_v3.guideCategories.html">guideCategories</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(part=None, regionCode=None, hl=None, id=None)</a></code></p>
+<p class="firstline">Returns a list of categories that can be associated with YouTube channels.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(part=None, regionCode=None, hl=None, id=None)</code>
+  <pre>Returns a list of categories that can be associated with YouTube channels.
+
+Args:
+  part: string, The part parameter specifies a comma-separated list of one or more guideCategory resource properties that the API response will include. The part names that you can include in the parameter value are id and snippet.
+
+If the parameter identifies a property that contains child properties, the child properties will be included in the response. For example, in a guideCategory resource, the snippet property contains other properties, such as the category's title. If you set part=snippet, the API response will also contain all of those nested properties. (required)
+  regionCode: string, The regionCode parameter instructs the API to return the list of guide categories available in the specified country. The parameter value is an ISO 3166-1 alpha-2 country code.
+  hl: string, The hl parameter specifies the language that will be used for text values in the API response.
+  id: string, The id parameter specifies a comma-separated list of the YouTube channel category ID(s) for the resource(s) that are being retrieved. In a guideCategory resource, the id property specifies the YouTube channel category ID.
+
+Returns:
+  An object of the form:
+
+    {
+    "eventId": "A String", # Serialized EventId of the request which produced this response.
+    "nextPageToken": "A String", # The token that can be used as the value of the pageToken parameter to retrieve the next page in the result set.
+    "kind": "youtube#guideCategoryListResponse", # Identifies what kind of resource this is. Value: the fixed string "youtube#guideCategoryListResponse".
+    "visitorId": "A String", # The visitorId identifies the visitor.
+    "items": [ # A list of categories that can be associated with YouTube channels. In this map, the category ID is the map key, and its value is the corresponding guideCategory resource.
+      { # A guideCategory resource identifies a category that YouTube algorithmically assigns based on a channel's content or other indicators, such as the channel's popularity. The list is similar to video categories, with the difference being that a video's uploader can assign a video category but only YouTube can assign a channel category.
+        "snippet": { # Basic details about a guide category. # The snippet object contains basic details about the category, such as its title.
+          "channelId": "UCBR8-60-B28hp2BmDPdntcQ",
+          "title": "A String", # Description of the guide category.
+        },
+        "kind": "youtube#guideCategory", # Identifies what kind of resource this is. Value: the fixed string "youtube#guideCategory".
+        "etag": "A String", # Etag of this resource.
+        "id": "A String", # The ID that YouTube uses to uniquely identify the guide category.
+      },
+    ],
+    "tokenPagination": { # Stub token pagination template to suppress results.
+    },
+    "etag": "A String", # Etag of this resource.
+    "prevPageToken": "A String", # The token that can be used as the value of the pageToken parameter to retrieve the previous page in the result set.
+    "pageInfo": { # Paging details for lists of resources, including total number of items available and number of resources returned in a single page.
+      "totalResults": 42, # The total number of results in the result set.
+      "resultsPerPage": 42, # The number of results included in the API response.
+    },
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/youtube_v3.html b/docs/dyn/youtube_v3.html
new file mode 100644
index 0000000..b69a986
--- /dev/null
+++ b/docs/dyn/youtube_v3.html
@@ -0,0 +1,162 @@
+<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="youtube_v3.html">YouTube Data API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="youtube_v3.activities.html">activities()</a></code>
+</p>
+<p class="firstline">Returns the activities Resource.</p>
+
+<p class="toc_element">
+  <code><a href="youtube_v3.channelBanners.html">channelBanners()</a></code>
+</p>
+<p class="firstline">Returns the channelBanners Resource.</p>
+
+<p class="toc_element">
+  <code><a href="youtube_v3.channelSections.html">channelSections()</a></code>
+</p>
+<p class="firstline">Returns the channelSections Resource.</p>
+
+<p class="toc_element">
+  <code><a href="youtube_v3.channels.html">channels()</a></code>
+</p>
+<p class="firstline">Returns the channels Resource.</p>
+
+<p class="toc_element">
+  <code><a href="youtube_v3.guideCategories.html">guideCategories()</a></code>
+</p>
+<p class="firstline">Returns the guideCategories Resource.</p>
+
+<p class="toc_element">
+  <code><a href="youtube_v3.i18nLanguages.html">i18nLanguages()</a></code>
+</p>
+<p class="firstline">Returns the i18nLanguages Resource.</p>
+
+<p class="toc_element">
+  <code><a href="youtube_v3.i18nRegions.html">i18nRegions()</a></code>
+</p>
+<p class="firstline">Returns the i18nRegions Resource.</p>
+
+<p class="toc_element">
+  <code><a href="youtube_v3.liveBroadcasts.html">liveBroadcasts()</a></code>
+</p>
+<p class="firstline">Returns the liveBroadcasts Resource.</p>
+
+<p class="toc_element">
+  <code><a href="youtube_v3.liveStreams.html">liveStreams()</a></code>
+</p>
+<p class="firstline">Returns the liveStreams Resource.</p>
+
+<p class="toc_element">
+  <code><a href="youtube_v3.playlistItems.html">playlistItems()</a></code>
+</p>
+<p class="firstline">Returns the playlistItems Resource.</p>
+
+<p class="toc_element">
+  <code><a href="youtube_v3.playlists.html">playlists()</a></code>
+</p>
+<p class="firstline">Returns the playlists Resource.</p>
+
+<p class="toc_element">
+  <code><a href="youtube_v3.search.html">search()</a></code>
+</p>
+<p class="firstline">Returns the search Resource.</p>
+
+<p class="toc_element">
+  <code><a href="youtube_v3.subscriptions.html">subscriptions()</a></code>
+</p>
+<p class="firstline">Returns the subscriptions Resource.</p>
+
+<p class="toc_element">
+  <code><a href="youtube_v3.thumbnails.html">thumbnails()</a></code>
+</p>
+<p class="firstline">Returns the thumbnails Resource.</p>
+
+<p class="toc_element">
+  <code><a href="youtube_v3.videoCategories.html">videoCategories()</a></code>
+</p>
+<p class="firstline">Returns the videoCategories Resource.</p>
+
+<p class="toc_element">
+  <code><a href="youtube_v3.videos.html">videos()</a></code>
+</p>
+<p class="firstline">Returns the videos Resource.</p>
+
+<p class="toc_element">
+  <code><a href="youtube_v3.watermarks.html">watermarks()</a></code>
+</p>
+<p class="firstline">Returns the watermarks Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/youtube_v3.i18nLanguages.html b/docs/dyn/youtube_v3.i18nLanguages.html
new file mode 100644
index 0000000..41d29f3
--- /dev/null
+++ b/docs/dyn/youtube_v3.i18nLanguages.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="youtube_v3.html">YouTube Data API</a> . <a href="youtube_v3.i18nLanguages.html">i18nLanguages</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(part, hl=None)</a></code></p>
+<p class="firstline">Returns a list of supported languages.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(part, hl=None)</code>
+  <pre>Returns a list of supported languages.
+
+Args:
+  part: string, The part parameter specifies a comma-separated list of one or more i18nLanguage resource properties that the API response will include. The part names that you can include in the parameter value are id and snippet. (required)
+  hl: string, The hl parameter specifies the language that should be used for text values in the API response.
+
+Returns:
+  An object of the form:
+
+    {
+    "eventId": "A String", # Serialized EventId of the request which produced this response.
+    "items": [ # A list of supported i18n languages. In this map, the i18n language ID is the map key, and its value is the corresponding i18nLanguage resource.
+      { # An i18nLanguage resource identifies a UI language currently supported by YouTube.
+        "snippet": { # Basic details about an i18n language, such as language code and human-readable name. # The snippet object contains basic details about the i18n language, such as language code and human-readable name.
+          "name": "A String", # The human-readable name of the language in the language itself.
+          "hl": "A String", # A short BCP-47 code that uniquely identifies a language.
+        },
+        "kind": "youtube#i18nLanguage", # Identifies what kind of resource this is. Value: the fixed string "youtube#i18nLanguage".
+        "etag": "A String", # Etag of this resource.
+        "id": "A String", # The ID that YouTube uses to uniquely identify the i18n language.
+      },
+    ],
+    "kind": "youtube#i18nLanguageListResponse", # Identifies what kind of resource this is. Value: the fixed string "youtube#i18nLanguageListResponse".
+    "etag": "A String", # Etag of this resource.
+    "visitorId": "A String", # The visitorId identifies the visitor.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/youtube_v3.i18nRegions.html b/docs/dyn/youtube_v3.i18nRegions.html
new file mode 100644
index 0000000..6537a23
--- /dev/null
+++ b/docs/dyn/youtube_v3.i18nRegions.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="youtube_v3.html">YouTube Data API</a> . <a href="youtube_v3.i18nRegions.html">i18nRegions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(part, hl=None)</a></code></p>
+<p class="firstline">Returns a list of supported regions.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(part, hl=None)</code>
+  <pre>Returns a list of supported regions.
+
+Args:
+  part: string, The part parameter specifies a comma-separated list of one or more i18nRegion resource properties that the API response will include. The part names that you can include in the parameter value are id and snippet. (required)
+  hl: string, The hl parameter specifies the language that should be used for text values in the API response.
+
+Returns:
+  An object of the form:
+
+    {
+    "eventId": "A String", # Serialized EventId of the request which produced this response.
+    "items": [ # A list of regions where YouTube is available. In this map, the i18n region ID is the map key, and its value is the corresponding i18nRegion resource.
+      { # A i18nRegion resource identifies a region where YouTube is available.
+        "snippet": { # Basic details about an i18n region, such as region code and human-readable name. # The snippet object contains basic details about the i18n region, such as region code and human-readable name.
+          "gl": "A String", # The region code as a 2-letter ISO country code.
+          "name": "A String", # The human-readable name of the region.
+        },
+        "kind": "youtube#i18nRegion", # Identifies what kind of resource this is. Value: the fixed string "youtube#i18nRegion".
+        "etag": "A String", # Etag of this resource.
+        "id": "A String", # The ID that YouTube uses to uniquely identify the i18n region.
+      },
+    ],
+    "kind": "youtube#i18nRegionListResponse", # Identifies what kind of resource this is. Value: the fixed string "youtube#i18nRegionListResponse".
+    "etag": "A String", # Etag of this resource.
+    "visitorId": "A String", # The visitorId identifies the visitor.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/youtube_v3.liveBroadcasts.html b/docs/dyn/youtube_v3.liveBroadcasts.html
new file mode 100644
index 0000000..c6248be
--- /dev/null
+++ b/docs/dyn/youtube_v3.liveBroadcasts.html
@@ -0,0 +1,893 @@
+<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="youtube_v3.html">YouTube Data API</a> . <a href="youtube_v3.liveBroadcasts.html">liveBroadcasts</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#bind">bind(id, part, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None, streamId=None)</a></code></p>
+<p class="firstline">Binds a YouTube broadcast to a stream or removes an existing binding between a broadcast and a stream. A broadcast can only be bound to one video stream.</p>
+<p class="toc_element">
+  <code><a href="#control">control(id, part, onBehalfOfContentOwner=None, displaySlate=None, onBehalfOfContentOwnerChannel=None, offsetTimeMs=None, walltime=None)</a></code></p>
+<p class="firstline">Controls the settings for a slate that can be displayed in the broadcast stream.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(id, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</a></code></p>
+<p class="firstline">Deletes a broadcast.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(part=None, body, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</a></code></p>
+<p class="firstline">Creates a broadcast.</p>
+<p class="toc_element">
+  <code><a href="#list">list(part, broadcastStatus=None, onBehalfOfContentOwner=None, pageToken=None, onBehalfOfContentOwnerChannel=None, maxResults=None, mine=None, id=None)</a></code></p>
+<p class="firstline">Returns a list of YouTube broadcasts 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>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#transition">transition(broadcastStatus, id, part, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</a></code></p>
+<p class="firstline">Changes the status of a YouTube live broadcast and initiates any processes associated with the new status. For example, when you transition a broadcast's status to testing, YouTube starts to transmit video to that broadcast's monitor stream. Before calling this method, you should confirm that the value of the status.streamStatus property for the stream bound to your broadcast is active.</p>
+<p class="toc_element">
+  <code><a href="#update">update(part=None, body, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</a></code></p>
+<p class="firstline">Updates a broadcast. For example, you could modify the broadcast settings defined in the liveBroadcast resource's contentDetails object.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="bind">bind(id, part, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None, streamId=None)</code>
+  <pre>Binds a YouTube broadcast to a stream or removes an existing binding between a broadcast and a stream. A broadcast can only be bound to one video stream.
+
+Args:
+  id: string, The id parameter specifies the unique ID of the broadcast that is being bound to a video stream. (required)
+  part: string, The part parameter specifies a comma-separated list of one or more liveBroadcast resource properties that the API response will include. The part names that you can include in the parameter value are id, snippet, contentDetails, and status. (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.
+  onBehalfOfContentOwnerChannel: string, This parameter can only be used in a properly authorized request. Note: This parameter is intended exclusively for YouTube content partners.
+
+The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel ID of the channel to which a video is being added. This parameter is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it can only be used in conjunction with that parameter. In addition, the request must be authorized using a CMS account that is linked to the content owner that the onBehalfOfContentOwner parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value specifies must be linked to the content owner that the onBehalfOfContentOwner parameter specifies.
+
+This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and perform actions on behalf of the channel specified in the parameter value, without having to provide authentication credentials for each separate channel.
+  streamId: string, The streamId parameter specifies the unique ID of the video stream that is being bound to a broadcast. If this parameter is omitted, the API will remove any existing binding between the broadcast and a video stream.
+
+Returns:
+  An object of the form:
+
+    { # A liveBroadcast resource represents an event that will be streamed, via live video, on YouTube.
+    "status": { # The status object contains information about the event's status.
+      "recordingStatus": "A String", # The broadcast's recording status.
+      "privacyStatus": "A String", # The broadcast's privacy status. Note that the broadcast represents exactly one YouTube video, so the privacy settings are identical to those supported for videos. In addition, you can set this field by modifying the broadcast resource or by setting the privacyStatus field of the corresponding video resource.
+      "lifeCycleStatus": "A String", # The broadcast's status. The status can be updated using the API's liveBroadcasts.transition method.
+    },
+    "kind": "youtube#liveBroadcast", # Identifies what kind of resource this is. Value: the fixed string "youtube#liveBroadcast".
+    "contentDetails": { # Detailed settings of a broadcast. # The contentDetails object contains information about the event's video content, such as whether the content can be shown in an embedded video player or if it will be archived and therefore available for viewing after the event has concluded.
+      "startWithSlate": True or False, # This setting indicates whether the broadcast should automatically begin with an in-stream slate when you update the broadcast's status to live. After updating the status, you then need to send a liveCuepoints.insert request that sets the cuepoint's eventState to end to remove the in-stream slate and make your broadcast stream visible to viewers.
+      "boundStreamId": "A String", # This value uniquely identifies the live stream bound to the broadcast.
+      "enableEmbed": True or False, # This setting indicates whether the broadcast video can be played in an embedded player. If you choose to archive the video (using the enableArchive property), this setting will also apply to the archived video.
+      "enableClosedCaptions": True or False, # This setting indicates whether closed captioning is enabled for this broadcast. The ingestion URL of the closed captions is returned through the liveStreams API.
+      "enableContentEncryption": True or False, # This setting indicates whether YouTube should enable content encryption for the broadcast.
+      "recordFromStart": True or False, # Automatically start recording after the event goes live. The default value for this property is true.
+          #
+          #
+          #
+          # Important: You must also set the enableDvr property's value to true if you want the playback to be available immediately after the broadcast ends. If you set this property's value to true but do not also set the enableDvr property to true, there may be a delay of around one day before the archived video will be available for playback.
+      "enableDvr": True or False, # This setting determines whether viewers can access DVR controls while watching the video. DVR controls enable the viewer to control the video playback experience by pausing, rewinding, or fast forwarding content. The default value for this property is true.
+          #
+          #
+          #
+          # Important: You must set the value to true and also set the enableArchive property's value to true if you want to make playback available immediately after the broadcast ends.
+      "monitorStream": { # Settings and Info of the monitor stream # The monitorStream object contains information about the monitor stream, which the broadcaster can use to review the event content before the broadcast stream is shown publicly.
+        "broadcastStreamDelayMs": 42, # If you have set the enableMonitorStream property to true, then this property determines the length of the live broadcast delay.
+        "embedHtml": "A String", # HTML code that embeds a player that plays the monitor stream.
+        "enableMonitorStream": True or False, # This value determines whether the monitor stream is enabled for the broadcast. If the monitor stream is enabled, then YouTube will broadcast the event content on a special stream intended only for the broadcaster's consumption. The broadcaster can use the stream to review the event content and also to identify the optimal times to insert cuepoints.
+            #
+            # You need to set this value to true if you intend to have a broadcast delay for your event.
+            #
+            # Note: This property cannot be updated once the broadcast is in the testing or live state.
+      },
+    },
+    "snippet": { # The snippet object contains basic details about the event, including its title, description, start time, and end time.
+      "actualEndTime": "A String", # The date and time that the broadcast actually ended. This information is only available once the broadcast's state is complete. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+      "description": "A String", # The broadcast's description. As with the title, you can set this field by modifying the broadcast resource or by setting the description field of the corresponding video resource.
+      "title": "A String", # The broadcast's title. Note that the broadcast represents exactly one YouTube video. You can set this field by modifying the broadcast resource or by setting the title field of the corresponding video resource.
+      "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that is publishing the broadcast.
+      "publishedAt": "A String", # The date and time that the broadcast was added to YouTube's live broadcast schedule. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+      "scheduledStartTime": "A String", # The date and time that the broadcast is scheduled to start. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+      "actualStartTime": "A String", # The date and time that the broadcast actually started. This information is only available once the broadcast's state is live. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+      "scheduledEndTime": "A String", # The date and time that the broadcast is scheduled to end. 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 broadcast. For each nested object in this object, 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.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+      },
+    },
+    "etag": "A String", # Etag of this resource.
+    "id": "A String", # The ID that YouTube assigns to uniquely identify the broadcast.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="control">control(id, part, onBehalfOfContentOwner=None, displaySlate=None, onBehalfOfContentOwnerChannel=None, offsetTimeMs=None, walltime=None)</code>
+  <pre>Controls the settings for a slate that can be displayed in the broadcast stream.
+
+Args:
+  id: string, The id parameter specifies the YouTube live broadcast ID that uniquely identifies the broadcast in which the slate is being updated. (required)
+  part: string, The part parameter specifies a comma-separated list of one or more liveBroadcast resource properties that the API response will include. The part names that you can include in the parameter value are id, snippet, contentDetails, and status. (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.
+  displaySlate: boolean, The displaySlate parameter specifies whether the slate is being enabled or disabled.
+  onBehalfOfContentOwnerChannel: string, This parameter can only be used in a properly authorized request. Note: This parameter is intended exclusively for YouTube content partners.
+
+The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel ID of the channel to which a video is being added. This parameter is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it can only be used in conjunction with that parameter. In addition, the request must be authorized using a CMS account that is linked to the content owner that the onBehalfOfContentOwner parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value specifies must be linked to the content owner that the onBehalfOfContentOwner parameter specifies.
+
+This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and perform actions on behalf of the channel specified in the parameter value, without having to provide authentication credentials for each separate channel.
+  offsetTimeMs: string, The offsetTimeMs parameter specifies a positive time offset when the specified slate change will occur. The value is measured in milliseconds from the beginning of the broadcast's monitor stream, which is the time that the testing phase for the broadcast began. Even though it is specified in milliseconds, the value is actually an approximation, and YouTube completes the requested action as closely as possible to that time.
+
+If you do not specify a value for this parameter, then YouTube performs the action as soon as possible. See the Getting started guide for more details.
+
+Important: You should only specify a value for this parameter if your broadcast stream is delayed.
+  walltime: string, The walltime parameter specifies the wall clock time at which the specified slate change will occur.
+
+Returns:
+  An object of the form:
+
+    { # A liveBroadcast resource represents an event that will be streamed, via live video, on YouTube.
+    "status": { # The status object contains information about the event's status.
+      "recordingStatus": "A String", # The broadcast's recording status.
+      "privacyStatus": "A String", # The broadcast's privacy status. Note that the broadcast represents exactly one YouTube video, so the privacy settings are identical to those supported for videos. In addition, you can set this field by modifying the broadcast resource or by setting the privacyStatus field of the corresponding video resource.
+      "lifeCycleStatus": "A String", # The broadcast's status. The status can be updated using the API's liveBroadcasts.transition method.
+    },
+    "kind": "youtube#liveBroadcast", # Identifies what kind of resource this is. Value: the fixed string "youtube#liveBroadcast".
+    "contentDetails": { # Detailed settings of a broadcast. # The contentDetails object contains information about the event's video content, such as whether the content can be shown in an embedded video player or if it will be archived and therefore available for viewing after the event has concluded.
+      "startWithSlate": True or False, # This setting indicates whether the broadcast should automatically begin with an in-stream slate when you update the broadcast's status to live. After updating the status, you then need to send a liveCuepoints.insert request that sets the cuepoint's eventState to end to remove the in-stream slate and make your broadcast stream visible to viewers.
+      "boundStreamId": "A String", # This value uniquely identifies the live stream bound to the broadcast.
+      "enableEmbed": True or False, # This setting indicates whether the broadcast video can be played in an embedded player. If you choose to archive the video (using the enableArchive property), this setting will also apply to the archived video.
+      "enableClosedCaptions": True or False, # This setting indicates whether closed captioning is enabled for this broadcast. The ingestion URL of the closed captions is returned through the liveStreams API.
+      "enableContentEncryption": True or False, # This setting indicates whether YouTube should enable content encryption for the broadcast.
+      "recordFromStart": True or False, # Automatically start recording after the event goes live. The default value for this property is true.
+          #
+          #
+          #
+          # Important: You must also set the enableDvr property's value to true if you want the playback to be available immediately after the broadcast ends. If you set this property's value to true but do not also set the enableDvr property to true, there may be a delay of around one day before the archived video will be available for playback.
+      "enableDvr": True or False, # This setting determines whether viewers can access DVR controls while watching the video. DVR controls enable the viewer to control the video playback experience by pausing, rewinding, or fast forwarding content. The default value for this property is true.
+          #
+          #
+          #
+          # Important: You must set the value to true and also set the enableArchive property's value to true if you want to make playback available immediately after the broadcast ends.
+      "monitorStream": { # Settings and Info of the monitor stream # The monitorStream object contains information about the monitor stream, which the broadcaster can use to review the event content before the broadcast stream is shown publicly.
+        "broadcastStreamDelayMs": 42, # If you have set the enableMonitorStream property to true, then this property determines the length of the live broadcast delay.
+        "embedHtml": "A String", # HTML code that embeds a player that plays the monitor stream.
+        "enableMonitorStream": True or False, # This value determines whether the monitor stream is enabled for the broadcast. If the monitor stream is enabled, then YouTube will broadcast the event content on a special stream intended only for the broadcaster's consumption. The broadcaster can use the stream to review the event content and also to identify the optimal times to insert cuepoints.
+            #
+            # You need to set this value to true if you intend to have a broadcast delay for your event.
+            #
+            # Note: This property cannot be updated once the broadcast is in the testing or live state.
+      },
+    },
+    "snippet": { # The snippet object contains basic details about the event, including its title, description, start time, and end time.
+      "actualEndTime": "A String", # The date and time that the broadcast actually ended. This information is only available once the broadcast's state is complete. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+      "description": "A String", # The broadcast's description. As with the title, you can set this field by modifying the broadcast resource or by setting the description field of the corresponding video resource.
+      "title": "A String", # The broadcast's title. Note that the broadcast represents exactly one YouTube video. You can set this field by modifying the broadcast resource or by setting the title field of the corresponding video resource.
+      "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that is publishing the broadcast.
+      "publishedAt": "A String", # The date and time that the broadcast was added to YouTube's live broadcast schedule. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+      "scheduledStartTime": "A String", # The date and time that the broadcast is scheduled to start. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+      "actualStartTime": "A String", # The date and time that the broadcast actually started. This information is only available once the broadcast's state is live. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+      "scheduledEndTime": "A String", # The date and time that the broadcast is scheduled to end. 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 broadcast. For each nested object in this object, 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.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+      },
+    },
+    "etag": "A String", # Etag of this resource.
+    "id": "A String", # The ID that YouTube assigns to uniquely identify the broadcast.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(id, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</code>
+  <pre>Deletes a broadcast.
+
+Args:
+  id: string, The id parameter specifies the YouTube live broadcast ID for the resource 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.
+  onBehalfOfContentOwnerChannel: string, This parameter can only be used in a properly authorized request. Note: This parameter is intended exclusively for YouTube content partners.
+
+The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel ID of the channel to which a video is being added. This parameter is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it can only be used in conjunction with that parameter. In addition, the request must be authorized using a CMS account that is linked to the content owner that the onBehalfOfContentOwner parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value specifies must be linked to the content owner that the onBehalfOfContentOwner parameter specifies.
+
+This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and perform actions on behalf of the channel specified in the parameter value, without having to provide authentication credentials for each separate channel.
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(part=None, body, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</code>
+  <pre>Creates a broadcast.
+
+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 properties that you can include in the parameter value are id, snippet, contentDetails, and status. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A liveBroadcast resource represents an event that will be streamed, via live video, on YouTube.
+  "status": { # The status object contains information about the event's status.
+    "recordingStatus": "A String", # The broadcast's recording status.
+    "privacyStatus": "A String", # The broadcast's privacy status. Note that the broadcast represents exactly one YouTube video, so the privacy settings are identical to those supported for videos. In addition, you can set this field by modifying the broadcast resource or by setting the privacyStatus field of the corresponding video resource.
+    "lifeCycleStatus": "A String", # The broadcast's status. The status can be updated using the API's liveBroadcasts.transition method.
+  },
+  "kind": "youtube#liveBroadcast", # Identifies what kind of resource this is. Value: the fixed string "youtube#liveBroadcast".
+  "contentDetails": { # Detailed settings of a broadcast. # The contentDetails object contains information about the event's video content, such as whether the content can be shown in an embedded video player or if it will be archived and therefore available for viewing after the event has concluded.
+    "startWithSlate": True or False, # This setting indicates whether the broadcast should automatically begin with an in-stream slate when you update the broadcast's status to live. After updating the status, you then need to send a liveCuepoints.insert request that sets the cuepoint's eventState to end to remove the in-stream slate and make your broadcast stream visible to viewers.
+    "boundStreamId": "A String", # This value uniquely identifies the live stream bound to the broadcast.
+    "enableEmbed": True or False, # This setting indicates whether the broadcast video can be played in an embedded player. If you choose to archive the video (using the enableArchive property), this setting will also apply to the archived video.
+    "enableClosedCaptions": True or False, # This setting indicates whether closed captioning is enabled for this broadcast. The ingestion URL of the closed captions is returned through the liveStreams API.
+    "enableContentEncryption": True or False, # This setting indicates whether YouTube should enable content encryption for the broadcast.
+    "recordFromStart": True or False, # Automatically start recording after the event goes live. The default value for this property is true.
+        #
+        #
+        #
+        # Important: You must also set the enableDvr property's value to true if you want the playback to be available immediately after the broadcast ends. If you set this property's value to true but do not also set the enableDvr property to true, there may be a delay of around one day before the archived video will be available for playback.
+    "enableDvr": True or False, # This setting determines whether viewers can access DVR controls while watching the video. DVR controls enable the viewer to control the video playback experience by pausing, rewinding, or fast forwarding content. The default value for this property is true.
+        #
+        #
+        #
+        # Important: You must set the value to true and also set the enableArchive property's value to true if you want to make playback available immediately after the broadcast ends.
+    "monitorStream": { # Settings and Info of the monitor stream # The monitorStream object contains information about the monitor stream, which the broadcaster can use to review the event content before the broadcast stream is shown publicly.
+      "broadcastStreamDelayMs": 42, # If you have set the enableMonitorStream property to true, then this property determines the length of the live broadcast delay.
+      "embedHtml": "A String", # HTML code that embeds a player that plays the monitor stream.
+      "enableMonitorStream": True or False, # This value determines whether the monitor stream is enabled for the broadcast. If the monitor stream is enabled, then YouTube will broadcast the event content on a special stream intended only for the broadcaster's consumption. The broadcaster can use the stream to review the event content and also to identify the optimal times to insert cuepoints.
+          #
+          # You need to set this value to true if you intend to have a broadcast delay for your event.
+          #
+          # Note: This property cannot be updated once the broadcast is in the testing or live state.
+    },
+  },
+  "snippet": { # The snippet object contains basic details about the event, including its title, description, start time, and end time.
+    "actualEndTime": "A String", # The date and time that the broadcast actually ended. This information is only available once the broadcast's state is complete. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+    "description": "A String", # The broadcast's description. As with the title, you can set this field by modifying the broadcast resource or by setting the description field of the corresponding video resource.
+    "title": "A String", # The broadcast's title. Note that the broadcast represents exactly one YouTube video. You can set this field by modifying the broadcast resource or by setting the title field of the corresponding video resource.
+    "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that is publishing the broadcast.
+    "publishedAt": "A String", # The date and time that the broadcast was added to YouTube's live broadcast schedule. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+    "scheduledStartTime": "A String", # The date and time that the broadcast is scheduled to start. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+    "actualStartTime": "A String", # The date and time that the broadcast actually started. This information is only available once the broadcast's state is live. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+    "scheduledEndTime": "A String", # The date and time that the broadcast is scheduled to end. 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 broadcast. For each nested object in this object, 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.
+        "width": 42, # (Optional) Width of the thumbnail image.
+        "height": 42, # (Optional) Height of the thumbnail image.
+      },
+      "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+        "url": "A String", # The thumbnail image's URL.
+        "width": 42, # (Optional) Width of the thumbnail image.
+        "height": 42, # (Optional) Height of the thumbnail image.
+      },
+      "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+        "url": "A String", # The thumbnail image's URL.
+        "width": 42, # (Optional) Width of the thumbnail image.
+        "height": 42, # (Optional) Height of the thumbnail image.
+      },
+      "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+        "url": "A String", # The thumbnail image's URL.
+        "width": 42, # (Optional) Width of the thumbnail image.
+        "height": 42, # (Optional) Height of the thumbnail image.
+      },
+      "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+        "url": "A String", # The thumbnail image's URL.
+        "width": 42, # (Optional) Width of the thumbnail image.
+        "height": 42, # (Optional) Height of the thumbnail image.
+      },
+    },
+  },
+  "etag": "A String", # Etag of this resource.
+  "id": "A String", # The ID that YouTube assigns to uniquely identify the broadcast.
+}
+
+  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.
+  onBehalfOfContentOwnerChannel: string, This parameter can only be used in a properly authorized request. Note: This parameter is intended exclusively for YouTube content partners.
+
+The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel ID of the channel to which a video is being added. This parameter is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it can only be used in conjunction with that parameter. In addition, the request must be authorized using a CMS account that is linked to the content owner that the onBehalfOfContentOwner parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value specifies must be linked to the content owner that the onBehalfOfContentOwner parameter specifies.
+
+This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and perform actions on behalf of the channel specified in the parameter value, without having to provide authentication credentials for each separate channel.
+
+Returns:
+  An object of the form:
+
+    { # A liveBroadcast resource represents an event that will be streamed, via live video, on YouTube.
+    "status": { # The status object contains information about the event's status.
+      "recordingStatus": "A String", # The broadcast's recording status.
+      "privacyStatus": "A String", # The broadcast's privacy status. Note that the broadcast represents exactly one YouTube video, so the privacy settings are identical to those supported for videos. In addition, you can set this field by modifying the broadcast resource or by setting the privacyStatus field of the corresponding video resource.
+      "lifeCycleStatus": "A String", # The broadcast's status. The status can be updated using the API's liveBroadcasts.transition method.
+    },
+    "kind": "youtube#liveBroadcast", # Identifies what kind of resource this is. Value: the fixed string "youtube#liveBroadcast".
+    "contentDetails": { # Detailed settings of a broadcast. # The contentDetails object contains information about the event's video content, such as whether the content can be shown in an embedded video player or if it will be archived and therefore available for viewing after the event has concluded.
+      "startWithSlate": True or False, # This setting indicates whether the broadcast should automatically begin with an in-stream slate when you update the broadcast's status to live. After updating the status, you then need to send a liveCuepoints.insert request that sets the cuepoint's eventState to end to remove the in-stream slate and make your broadcast stream visible to viewers.
+      "boundStreamId": "A String", # This value uniquely identifies the live stream bound to the broadcast.
+      "enableEmbed": True or False, # This setting indicates whether the broadcast video can be played in an embedded player. If you choose to archive the video (using the enableArchive property), this setting will also apply to the archived video.
+      "enableClosedCaptions": True or False, # This setting indicates whether closed captioning is enabled for this broadcast. The ingestion URL of the closed captions is returned through the liveStreams API.
+      "enableContentEncryption": True or False, # This setting indicates whether YouTube should enable content encryption for the broadcast.
+      "recordFromStart": True or False, # Automatically start recording after the event goes live. The default value for this property is true.
+          #
+          #
+          #
+          # Important: You must also set the enableDvr property's value to true if you want the playback to be available immediately after the broadcast ends. If you set this property's value to true but do not also set the enableDvr property to true, there may be a delay of around one day before the archived video will be available for playback.
+      "enableDvr": True or False, # This setting determines whether viewers can access DVR controls while watching the video. DVR controls enable the viewer to control the video playback experience by pausing, rewinding, or fast forwarding content. The default value for this property is true.
+          #
+          #
+          #
+          # Important: You must set the value to true and also set the enableArchive property's value to true if you want to make playback available immediately after the broadcast ends.
+      "monitorStream": { # Settings and Info of the monitor stream # The monitorStream object contains information about the monitor stream, which the broadcaster can use to review the event content before the broadcast stream is shown publicly.
+        "broadcastStreamDelayMs": 42, # If you have set the enableMonitorStream property to true, then this property determines the length of the live broadcast delay.
+        "embedHtml": "A String", # HTML code that embeds a player that plays the monitor stream.
+        "enableMonitorStream": True or False, # This value determines whether the monitor stream is enabled for the broadcast. If the monitor stream is enabled, then YouTube will broadcast the event content on a special stream intended only for the broadcaster's consumption. The broadcaster can use the stream to review the event content and also to identify the optimal times to insert cuepoints.
+            #
+            # You need to set this value to true if you intend to have a broadcast delay for your event.
+            #
+            # Note: This property cannot be updated once the broadcast is in the testing or live state.
+      },
+    },
+    "snippet": { # The snippet object contains basic details about the event, including its title, description, start time, and end time.
+      "actualEndTime": "A String", # The date and time that the broadcast actually ended. This information is only available once the broadcast's state is complete. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+      "description": "A String", # The broadcast's description. As with the title, you can set this field by modifying the broadcast resource or by setting the description field of the corresponding video resource.
+      "title": "A String", # The broadcast's title. Note that the broadcast represents exactly one YouTube video. You can set this field by modifying the broadcast resource or by setting the title field of the corresponding video resource.
+      "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that is publishing the broadcast.
+      "publishedAt": "A String", # The date and time that the broadcast was added to YouTube's live broadcast schedule. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+      "scheduledStartTime": "A String", # The date and time that the broadcast is scheduled to start. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+      "actualStartTime": "A String", # The date and time that the broadcast actually started. This information is only available once the broadcast's state is live. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+      "scheduledEndTime": "A String", # The date and time that the broadcast is scheduled to end. 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 broadcast. For each nested object in this object, 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.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+      },
+    },
+    "etag": "A String", # Etag of this resource.
+    "id": "A String", # The ID that YouTube assigns to uniquely identify the broadcast.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(part, broadcastStatus=None, onBehalfOfContentOwner=None, pageToken=None, onBehalfOfContentOwnerChannel=None, maxResults=None, mine=None, id=None)</code>
+  <pre>Returns a list of YouTube broadcasts that match the API request parameters.
+
+Args:
+  part: string, The part parameter specifies a comma-separated list of one or more liveBroadcast resource properties that the API response will include. The part names that you can include in the parameter value are id, snippet, contentDetails, and status. (required)
+  broadcastStatus: string, The broadcastStatus parameter filters the API response to only include broadcasts with the specified status.
+    Allowed values
+      active - Return current live broadcasts.
+      all - Return all broadcasts.
+      completed - Return broadcasts that have already ended.
+      upcoming - Return broadcasts that have not yet started.
+  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.
+  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.
+  onBehalfOfContentOwnerChannel: string, This parameter can only be used in a properly authorized request. Note: This parameter is intended exclusively for YouTube content partners.
+
+The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel ID of the channel to which a video is being added. This parameter is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it can only be used in conjunction with that parameter. In addition, the request must be authorized using a CMS account that is linked to the content owner that the onBehalfOfContentOwner parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value specifies must be linked to the content owner that the onBehalfOfContentOwner parameter specifies.
+
+This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and perform actions on behalf of the channel specified in the parameter value, without having to provide authentication credentials for each separate channel.
+  maxResults: integer, The maxResults parameter specifies the maximum number of items that should be returned in the result set.
+  mine: boolean, The mine parameter can be used to instruct the API to only return broadcasts owned by the authenticated user. Set the parameter value to true to only retrieve your own broadcasts.
+  id: string, The id parameter specifies a comma-separated list of YouTube broadcast IDs that identify the broadcasts being retrieved. In a liveBroadcast resource, the id property specifies the broadcast's ID.
+
+Returns:
+  An object of the form:
+
+    {
+    "eventId": "A String", # Serialized EventId of the request which produced this response.
+    "nextPageToken": "A String", # The token that can be used as the value of the pageToken parameter to retrieve the next page in the result set.
+    "kind": "youtube#liveBroadcastListResponse", # Identifies what kind of resource this is. Value: the fixed string "youtube#liveBroadcastListResponse".
+    "visitorId": "A String", # The visitorId identifies the visitor.
+    "items": [ # A list of broadcasts that match the request criteria.
+      { # A liveBroadcast resource represents an event that will be streamed, via live video, on YouTube.
+        "status": { # The status object contains information about the event's status.
+          "recordingStatus": "A String", # The broadcast's recording status.
+          "privacyStatus": "A String", # The broadcast's privacy status. Note that the broadcast represents exactly one YouTube video, so the privacy settings are identical to those supported for videos. In addition, you can set this field by modifying the broadcast resource or by setting the privacyStatus field of the corresponding video resource.
+          "lifeCycleStatus": "A String", # The broadcast's status. The status can be updated using the API's liveBroadcasts.transition method.
+        },
+        "kind": "youtube#liveBroadcast", # Identifies what kind of resource this is. Value: the fixed string "youtube#liveBroadcast".
+        "contentDetails": { # Detailed settings of a broadcast. # The contentDetails object contains information about the event's video content, such as whether the content can be shown in an embedded video player or if it will be archived and therefore available for viewing after the event has concluded.
+          "startWithSlate": True or False, # This setting indicates whether the broadcast should automatically begin with an in-stream slate when you update the broadcast's status to live. After updating the status, you then need to send a liveCuepoints.insert request that sets the cuepoint's eventState to end to remove the in-stream slate and make your broadcast stream visible to viewers.
+          "boundStreamId": "A String", # This value uniquely identifies the live stream bound to the broadcast.
+          "enableEmbed": True or False, # This setting indicates whether the broadcast video can be played in an embedded player. If you choose to archive the video (using the enableArchive property), this setting will also apply to the archived video.
+          "enableClosedCaptions": True or False, # This setting indicates whether closed captioning is enabled for this broadcast. The ingestion URL of the closed captions is returned through the liveStreams API.
+          "enableContentEncryption": True or False, # This setting indicates whether YouTube should enable content encryption for the broadcast.
+          "recordFromStart": True or False, # Automatically start recording after the event goes live. The default value for this property is true.
+              #
+              #
+              #
+              # Important: You must also set the enableDvr property's value to true if you want the playback to be available immediately after the broadcast ends. If you set this property's value to true but do not also set the enableDvr property to true, there may be a delay of around one day before the archived video will be available for playback.
+          "enableDvr": True or False, # This setting determines whether viewers can access DVR controls while watching the video. DVR controls enable the viewer to control the video playback experience by pausing, rewinding, or fast forwarding content. The default value for this property is true.
+              #
+              #
+              #
+              # Important: You must set the value to true and also set the enableArchive property's value to true if you want to make playback available immediately after the broadcast ends.
+          "monitorStream": { # Settings and Info of the monitor stream # The monitorStream object contains information about the monitor stream, which the broadcaster can use to review the event content before the broadcast stream is shown publicly.
+            "broadcastStreamDelayMs": 42, # If you have set the enableMonitorStream property to true, then this property determines the length of the live broadcast delay.
+            "embedHtml": "A String", # HTML code that embeds a player that plays the monitor stream.
+            "enableMonitorStream": True or False, # This value determines whether the monitor stream is enabled for the broadcast. If the monitor stream is enabled, then YouTube will broadcast the event content on a special stream intended only for the broadcaster's consumption. The broadcaster can use the stream to review the event content and also to identify the optimal times to insert cuepoints.
+                #
+                # You need to set this value to true if you intend to have a broadcast delay for your event.
+                #
+                # Note: This property cannot be updated once the broadcast is in the testing or live state.
+          },
+        },
+        "snippet": { # The snippet object contains basic details about the event, including its title, description, start time, and end time.
+          "actualEndTime": "A String", # The date and time that the broadcast actually ended. This information is only available once the broadcast's state is complete. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+          "description": "A String", # The broadcast's description. As with the title, you can set this field by modifying the broadcast resource or by setting the description field of the corresponding video resource.
+          "title": "A String", # The broadcast's title. Note that the broadcast represents exactly one YouTube video. You can set this field by modifying the broadcast resource or by setting the title field of the corresponding video resource.
+          "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that is publishing the broadcast.
+          "publishedAt": "A String", # The date and time that the broadcast was added to YouTube's live broadcast schedule. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+          "scheduledStartTime": "A String", # The date and time that the broadcast is scheduled to start. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+          "actualStartTime": "A String", # The date and time that the broadcast actually started. This information is only available once the broadcast's state is live. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+          "scheduledEndTime": "A String", # The date and time that the broadcast is scheduled to end. 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 broadcast. For each nested object in this object, 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.
+              "width": 42, # (Optional) Width of the thumbnail image.
+              "height": 42, # (Optional) Height of the thumbnail image.
+            },
+            "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+              "url": "A String", # The thumbnail image's URL.
+              "width": 42, # (Optional) Width of the thumbnail image.
+              "height": 42, # (Optional) Height of the thumbnail image.
+            },
+            "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+              "url": "A String", # The thumbnail image's URL.
+              "width": 42, # (Optional) Width of the thumbnail image.
+              "height": 42, # (Optional) Height of the thumbnail image.
+            },
+            "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+              "url": "A String", # The thumbnail image's URL.
+              "width": 42, # (Optional) Width of the thumbnail image.
+              "height": 42, # (Optional) Height of the thumbnail image.
+            },
+            "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+              "url": "A String", # The thumbnail image's URL.
+              "width": 42, # (Optional) Width of the thumbnail image.
+              "height": 42, # (Optional) Height of the thumbnail image.
+            },
+          },
+        },
+        "etag": "A String", # Etag of this resource.
+        "id": "A String", # The ID that YouTube assigns to uniquely identify the broadcast.
+      },
+    ],
+    "tokenPagination": { # Stub token pagination template to suppress results.
+    },
+    "etag": "A String", # Etag of this resource.
+    "prevPageToken": "A String", # The token that can be used as the value of the pageToken parameter to retrieve the previous page in the result set.
+    "pageInfo": { # Paging details for lists of resources, including total number of items available and number of resources returned in a single page.
+      "totalResults": 42, # The total number of results in the result set.
+      "resultsPerPage": 42, # The number of results included in the API response.
+    },
+  }</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="transition">transition(broadcastStatus, id, part, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</code>
+  <pre>Changes the status of a YouTube live broadcast and initiates any processes associated with the new status. For example, when you transition a broadcast's status to testing, YouTube starts to transmit video to that broadcast's monitor stream. Before calling this method, you should confirm that the value of the status.streamStatus property for the stream bound to your broadcast is active.
+
+Args:
+  broadcastStatus: string, The broadcastStatus parameter identifies the state to which the broadcast is changing. Note that to transition a broadcast to either the testing or live state, the status.streamStatus must be active for the stream that the broadcast is bound to. (required)
+    Allowed values
+      complete - The broadcast is over. YouTube stops transmitting video.
+      live - The broadcast is visible to its audience. YouTube transmits video to the broadcast's monitor stream and its broadcast stream.
+      testing - Start testing the broadcast. YouTube transmits video to the broadcast's monitor stream. Note that you can only transition a broadcast to the testing state if its contentDetails.monitorStream.enableMonitorStream property is set to true.
+  id: string, The id parameter specifies the unique ID of the broadcast that is transitioning to another status. (required)
+  part: string, The part parameter specifies a comma-separated list of one or more liveBroadcast resource properties that the API response will include. The part names that you can include in the parameter value are id, snippet, contentDetails, and status. (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.
+  onBehalfOfContentOwnerChannel: string, This parameter can only be used in a properly authorized request. Note: This parameter is intended exclusively for YouTube content partners.
+
+The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel ID of the channel to which a video is being added. This parameter is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it can only be used in conjunction with that parameter. In addition, the request must be authorized using a CMS account that is linked to the content owner that the onBehalfOfContentOwner parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value specifies must be linked to the content owner that the onBehalfOfContentOwner parameter specifies.
+
+This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and perform actions on behalf of the channel specified in the parameter value, without having to provide authentication credentials for each separate channel.
+
+Returns:
+  An object of the form:
+
+    { # A liveBroadcast resource represents an event that will be streamed, via live video, on YouTube.
+    "status": { # The status object contains information about the event's status.
+      "recordingStatus": "A String", # The broadcast's recording status.
+      "privacyStatus": "A String", # The broadcast's privacy status. Note that the broadcast represents exactly one YouTube video, so the privacy settings are identical to those supported for videos. In addition, you can set this field by modifying the broadcast resource or by setting the privacyStatus field of the corresponding video resource.
+      "lifeCycleStatus": "A String", # The broadcast's status. The status can be updated using the API's liveBroadcasts.transition method.
+    },
+    "kind": "youtube#liveBroadcast", # Identifies what kind of resource this is. Value: the fixed string "youtube#liveBroadcast".
+    "contentDetails": { # Detailed settings of a broadcast. # The contentDetails object contains information about the event's video content, such as whether the content can be shown in an embedded video player or if it will be archived and therefore available for viewing after the event has concluded.
+      "startWithSlate": True or False, # This setting indicates whether the broadcast should automatically begin with an in-stream slate when you update the broadcast's status to live. After updating the status, you then need to send a liveCuepoints.insert request that sets the cuepoint's eventState to end to remove the in-stream slate and make your broadcast stream visible to viewers.
+      "boundStreamId": "A String", # This value uniquely identifies the live stream bound to the broadcast.
+      "enableEmbed": True or False, # This setting indicates whether the broadcast video can be played in an embedded player. If you choose to archive the video (using the enableArchive property), this setting will also apply to the archived video.
+      "enableClosedCaptions": True or False, # This setting indicates whether closed captioning is enabled for this broadcast. The ingestion URL of the closed captions is returned through the liveStreams API.
+      "enableContentEncryption": True or False, # This setting indicates whether YouTube should enable content encryption for the broadcast.
+      "recordFromStart": True or False, # Automatically start recording after the event goes live. The default value for this property is true.
+          #
+          #
+          #
+          # Important: You must also set the enableDvr property's value to true if you want the playback to be available immediately after the broadcast ends. If you set this property's value to true but do not also set the enableDvr property to true, there may be a delay of around one day before the archived video will be available for playback.
+      "enableDvr": True or False, # This setting determines whether viewers can access DVR controls while watching the video. DVR controls enable the viewer to control the video playback experience by pausing, rewinding, or fast forwarding content. The default value for this property is true.
+          #
+          #
+          #
+          # Important: You must set the value to true and also set the enableArchive property's value to true if you want to make playback available immediately after the broadcast ends.
+      "monitorStream": { # Settings and Info of the monitor stream # The monitorStream object contains information about the monitor stream, which the broadcaster can use to review the event content before the broadcast stream is shown publicly.
+        "broadcastStreamDelayMs": 42, # If you have set the enableMonitorStream property to true, then this property determines the length of the live broadcast delay.
+        "embedHtml": "A String", # HTML code that embeds a player that plays the monitor stream.
+        "enableMonitorStream": True or False, # This value determines whether the monitor stream is enabled for the broadcast. If the monitor stream is enabled, then YouTube will broadcast the event content on a special stream intended only for the broadcaster's consumption. The broadcaster can use the stream to review the event content and also to identify the optimal times to insert cuepoints.
+            #
+            # You need to set this value to true if you intend to have a broadcast delay for your event.
+            #
+            # Note: This property cannot be updated once the broadcast is in the testing or live state.
+      },
+    },
+    "snippet": { # The snippet object contains basic details about the event, including its title, description, start time, and end time.
+      "actualEndTime": "A String", # The date and time that the broadcast actually ended. This information is only available once the broadcast's state is complete. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+      "description": "A String", # The broadcast's description. As with the title, you can set this field by modifying the broadcast resource or by setting the description field of the corresponding video resource.
+      "title": "A String", # The broadcast's title. Note that the broadcast represents exactly one YouTube video. You can set this field by modifying the broadcast resource or by setting the title field of the corresponding video resource.
+      "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that is publishing the broadcast.
+      "publishedAt": "A String", # The date and time that the broadcast was added to YouTube's live broadcast schedule. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+      "scheduledStartTime": "A String", # The date and time that the broadcast is scheduled to start. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+      "actualStartTime": "A String", # The date and time that the broadcast actually started. This information is only available once the broadcast's state is live. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+      "scheduledEndTime": "A String", # The date and time that the broadcast is scheduled to end. 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 broadcast. For each nested object in this object, 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.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+      },
+    },
+    "etag": "A String", # Etag of this resource.
+    "id": "A String", # The ID that YouTube assigns to uniquely identify the broadcast.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(part=None, body, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</code>
+  <pre>Updates a broadcast. For example, you could modify the broadcast settings defined in the liveBroadcast resource's contentDetails object.
+
+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 properties that you can include in the parameter value are id, snippet, contentDetails, and status.
+
+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 broadcast's privacy status is defined in the status part. As such, if your request is updating a private or unlisted broadcast, and the request's part parameter value includes the status part, the broadcast'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 broadcast will revert to the default privacy setting. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A liveBroadcast resource represents an event that will be streamed, via live video, on YouTube.
+  "status": { # The status object contains information about the event's status.
+    "recordingStatus": "A String", # The broadcast's recording status.
+    "privacyStatus": "A String", # The broadcast's privacy status. Note that the broadcast represents exactly one YouTube video, so the privacy settings are identical to those supported for videos. In addition, you can set this field by modifying the broadcast resource or by setting the privacyStatus field of the corresponding video resource.
+    "lifeCycleStatus": "A String", # The broadcast's status. The status can be updated using the API's liveBroadcasts.transition method.
+  },
+  "kind": "youtube#liveBroadcast", # Identifies what kind of resource this is. Value: the fixed string "youtube#liveBroadcast".
+  "contentDetails": { # Detailed settings of a broadcast. # The contentDetails object contains information about the event's video content, such as whether the content can be shown in an embedded video player or if it will be archived and therefore available for viewing after the event has concluded.
+    "startWithSlate": True or False, # This setting indicates whether the broadcast should automatically begin with an in-stream slate when you update the broadcast's status to live. After updating the status, you then need to send a liveCuepoints.insert request that sets the cuepoint's eventState to end to remove the in-stream slate and make your broadcast stream visible to viewers.
+    "boundStreamId": "A String", # This value uniquely identifies the live stream bound to the broadcast.
+    "enableEmbed": True or False, # This setting indicates whether the broadcast video can be played in an embedded player. If you choose to archive the video (using the enableArchive property), this setting will also apply to the archived video.
+    "enableClosedCaptions": True or False, # This setting indicates whether closed captioning is enabled for this broadcast. The ingestion URL of the closed captions is returned through the liveStreams API.
+    "enableContentEncryption": True or False, # This setting indicates whether YouTube should enable content encryption for the broadcast.
+    "recordFromStart": True or False, # Automatically start recording after the event goes live. The default value for this property is true.
+        #
+        #
+        #
+        # Important: You must also set the enableDvr property's value to true if you want the playback to be available immediately after the broadcast ends. If you set this property's value to true but do not also set the enableDvr property to true, there may be a delay of around one day before the archived video will be available for playback.
+    "enableDvr": True or False, # This setting determines whether viewers can access DVR controls while watching the video. DVR controls enable the viewer to control the video playback experience by pausing, rewinding, or fast forwarding content. The default value for this property is true.
+        #
+        #
+        #
+        # Important: You must set the value to true and also set the enableArchive property's value to true if you want to make playback available immediately after the broadcast ends.
+    "monitorStream": { # Settings and Info of the monitor stream # The monitorStream object contains information about the monitor stream, which the broadcaster can use to review the event content before the broadcast stream is shown publicly.
+      "broadcastStreamDelayMs": 42, # If you have set the enableMonitorStream property to true, then this property determines the length of the live broadcast delay.
+      "embedHtml": "A String", # HTML code that embeds a player that plays the monitor stream.
+      "enableMonitorStream": True or False, # This value determines whether the monitor stream is enabled for the broadcast. If the monitor stream is enabled, then YouTube will broadcast the event content on a special stream intended only for the broadcaster's consumption. The broadcaster can use the stream to review the event content and also to identify the optimal times to insert cuepoints.
+          #
+          # You need to set this value to true if you intend to have a broadcast delay for your event.
+          #
+          # Note: This property cannot be updated once the broadcast is in the testing or live state.
+    },
+  },
+  "snippet": { # The snippet object contains basic details about the event, including its title, description, start time, and end time.
+    "actualEndTime": "A String", # The date and time that the broadcast actually ended. This information is only available once the broadcast's state is complete. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+    "description": "A String", # The broadcast's description. As with the title, you can set this field by modifying the broadcast resource or by setting the description field of the corresponding video resource.
+    "title": "A String", # The broadcast's title. Note that the broadcast represents exactly one YouTube video. You can set this field by modifying the broadcast resource or by setting the title field of the corresponding video resource.
+    "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that is publishing the broadcast.
+    "publishedAt": "A String", # The date and time that the broadcast was added to YouTube's live broadcast schedule. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+    "scheduledStartTime": "A String", # The date and time that the broadcast is scheduled to start. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+    "actualStartTime": "A String", # The date and time that the broadcast actually started. This information is only available once the broadcast's state is live. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+    "scheduledEndTime": "A String", # The date and time that the broadcast is scheduled to end. 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 broadcast. For each nested object in this object, 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.
+        "width": 42, # (Optional) Width of the thumbnail image.
+        "height": 42, # (Optional) Height of the thumbnail image.
+      },
+      "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+        "url": "A String", # The thumbnail image's URL.
+        "width": 42, # (Optional) Width of the thumbnail image.
+        "height": 42, # (Optional) Height of the thumbnail image.
+      },
+      "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+        "url": "A String", # The thumbnail image's URL.
+        "width": 42, # (Optional) Width of the thumbnail image.
+        "height": 42, # (Optional) Height of the thumbnail image.
+      },
+      "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+        "url": "A String", # The thumbnail image's URL.
+        "width": 42, # (Optional) Width of the thumbnail image.
+        "height": 42, # (Optional) Height of the thumbnail image.
+      },
+      "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+        "url": "A String", # The thumbnail image's URL.
+        "width": 42, # (Optional) Width of the thumbnail image.
+        "height": 42, # (Optional) Height of the thumbnail image.
+      },
+    },
+  },
+  "etag": "A String", # Etag of this resource.
+  "id": "A String", # The ID that YouTube assigns to uniquely identify the broadcast.
+}
+
+  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.
+  onBehalfOfContentOwnerChannel: string, This parameter can only be used in a properly authorized request. Note: This parameter is intended exclusively for YouTube content partners.
+
+The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel ID of the channel to which a video is being added. This parameter is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it can only be used in conjunction with that parameter. In addition, the request must be authorized using a CMS account that is linked to the content owner that the onBehalfOfContentOwner parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value specifies must be linked to the content owner that the onBehalfOfContentOwner parameter specifies.
+
+This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and perform actions on behalf of the channel specified in the parameter value, without having to provide authentication credentials for each separate channel.
+
+Returns:
+  An object of the form:
+
+    { # A liveBroadcast resource represents an event that will be streamed, via live video, on YouTube.
+    "status": { # The status object contains information about the event's status.
+      "recordingStatus": "A String", # The broadcast's recording status.
+      "privacyStatus": "A String", # The broadcast's privacy status. Note that the broadcast represents exactly one YouTube video, so the privacy settings are identical to those supported for videos. In addition, you can set this field by modifying the broadcast resource or by setting the privacyStatus field of the corresponding video resource.
+      "lifeCycleStatus": "A String", # The broadcast's status. The status can be updated using the API's liveBroadcasts.transition method.
+    },
+    "kind": "youtube#liveBroadcast", # Identifies what kind of resource this is. Value: the fixed string "youtube#liveBroadcast".
+    "contentDetails": { # Detailed settings of a broadcast. # The contentDetails object contains information about the event's video content, such as whether the content can be shown in an embedded video player or if it will be archived and therefore available for viewing after the event has concluded.
+      "startWithSlate": True or False, # This setting indicates whether the broadcast should automatically begin with an in-stream slate when you update the broadcast's status to live. After updating the status, you then need to send a liveCuepoints.insert request that sets the cuepoint's eventState to end to remove the in-stream slate and make your broadcast stream visible to viewers.
+      "boundStreamId": "A String", # This value uniquely identifies the live stream bound to the broadcast.
+      "enableEmbed": True or False, # This setting indicates whether the broadcast video can be played in an embedded player. If you choose to archive the video (using the enableArchive property), this setting will also apply to the archived video.
+      "enableClosedCaptions": True or False, # This setting indicates whether closed captioning is enabled for this broadcast. The ingestion URL of the closed captions is returned through the liveStreams API.
+      "enableContentEncryption": True or False, # This setting indicates whether YouTube should enable content encryption for the broadcast.
+      "recordFromStart": True or False, # Automatically start recording after the event goes live. The default value for this property is true.
+          #
+          #
+          #
+          # Important: You must also set the enableDvr property's value to true if you want the playback to be available immediately after the broadcast ends. If you set this property's value to true but do not also set the enableDvr property to true, there may be a delay of around one day before the archived video will be available for playback.
+      "enableDvr": True or False, # This setting determines whether viewers can access DVR controls while watching the video. DVR controls enable the viewer to control the video playback experience by pausing, rewinding, or fast forwarding content. The default value for this property is true.
+          #
+          #
+          #
+          # Important: You must set the value to true and also set the enableArchive property's value to true if you want to make playback available immediately after the broadcast ends.
+      "monitorStream": { # Settings and Info of the monitor stream # The monitorStream object contains information about the monitor stream, which the broadcaster can use to review the event content before the broadcast stream is shown publicly.
+        "broadcastStreamDelayMs": 42, # If you have set the enableMonitorStream property to true, then this property determines the length of the live broadcast delay.
+        "embedHtml": "A String", # HTML code that embeds a player that plays the monitor stream.
+        "enableMonitorStream": True or False, # This value determines whether the monitor stream is enabled for the broadcast. If the monitor stream is enabled, then YouTube will broadcast the event content on a special stream intended only for the broadcaster's consumption. The broadcaster can use the stream to review the event content and also to identify the optimal times to insert cuepoints.
+            #
+            # You need to set this value to true if you intend to have a broadcast delay for your event.
+            #
+            # Note: This property cannot be updated once the broadcast is in the testing or live state.
+      },
+    },
+    "snippet": { # The snippet object contains basic details about the event, including its title, description, start time, and end time.
+      "actualEndTime": "A String", # The date and time that the broadcast actually ended. This information is only available once the broadcast's state is complete. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+      "description": "A String", # The broadcast's description. As with the title, you can set this field by modifying the broadcast resource or by setting the description field of the corresponding video resource.
+      "title": "A String", # The broadcast's title. Note that the broadcast represents exactly one YouTube video. You can set this field by modifying the broadcast resource or by setting the title field of the corresponding video resource.
+      "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that is publishing the broadcast.
+      "publishedAt": "A String", # The date and time that the broadcast was added to YouTube's live broadcast schedule. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+      "scheduledStartTime": "A String", # The date and time that the broadcast is scheduled to start. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+      "actualStartTime": "A String", # The date and time that the broadcast actually started. This information is only available once the broadcast's state is live. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+      "scheduledEndTime": "A String", # The date and time that the broadcast is scheduled to end. 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 broadcast. For each nested object in this object, 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.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+      },
+    },
+    "etag": "A String", # Etag of this resource.
+    "id": "A String", # The ID that YouTube assigns to uniquely identify the broadcast.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/youtube_v3.liveStreams.html b/docs/dyn/youtube_v3.liveStreams.html
new file mode 100644
index 0000000..faeb3fd
--- /dev/null
+++ b/docs/dyn/youtube_v3.liveStreams.html
@@ -0,0 +1,368 @@
+<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="youtube_v3.html">YouTube Data API</a> . <a href="youtube_v3.liveStreams.html">liveStreams</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(id, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</a></code></p>
+<p class="firstline">Deletes a video stream.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(part=None, body, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</a></code></p>
+<p class="firstline">Creates a video stream. The stream enables you to send your video to YouTube, which can then broadcast the video to your audience.</p>
+<p class="toc_element">
+  <code><a href="#list">list(part, onBehalfOfContentOwner=None, pageToken=None, onBehalfOfContentOwnerChannel=None, maxResults=None, mine=None, id=None)</a></code></p>
+<p class="firstline">Returns a list of video streams 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>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#update">update(part=None, body, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</a></code></p>
+<p class="firstline">Updates a video stream. If the properties that you want to change cannot be updated, then you need to create a new stream with the proper settings.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(id, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</code>
+  <pre>Deletes a video stream.
+
+Args:
+  id: string, The id parameter specifies the YouTube live stream ID for the resource 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.
+  onBehalfOfContentOwnerChannel: string, This parameter can only be used in a properly authorized request. Note: This parameter is intended exclusively for YouTube content partners.
+
+The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel ID of the channel to which a video is being added. This parameter is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it can only be used in conjunction with that parameter. In addition, the request must be authorized using a CMS account that is linked to the content owner that the onBehalfOfContentOwner parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value specifies must be linked to the content owner that the onBehalfOfContentOwner parameter specifies.
+
+This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and perform actions on behalf of the channel specified in the parameter value, without having to provide authentication credentials for each separate channel.
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(part=None, body, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</code>
+  <pre>Creates a video stream. The stream enables you to send your video to YouTube, which can then broadcast the video to your audience.
+
+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 properties that you can include in the parameter value are id, snippet, cdn, and status. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A live stream describes a live ingestion point.
+    "status": { # Brief description of the live stream status. # The status object contains information about live stream's status.
+      "streamStatus": "A String",
+    },
+    "kind": "youtube#liveStream", # Identifies what kind of resource this is. Value: the fixed string "youtube#liveStream".
+    "contentDetails": { # Detailed settings of a stream. # The content_details object contains information about the stream, including the closed captions ingestion URL.
+      "closedCaptionsIngestionUrl": "A String", # The ingestion URL where the closed captions of this stream are sent.
+    },
+    "cdn": { # Brief description of the live stream cdn settings. # The cdn object defines the live stream's content delivery network (CDN) settings. These settings provide details about the manner in which you stream your content to YouTube.
+      "ingestionType": "A String", # The method or protocol used to transmit the video stream.
+      "ingestionInfo": { # Describes information necessary for ingesting an RTMP or an HTTP stream. # The ingestionInfo object contains information that YouTube provides that you need to transmit your RTMP or HTTP stream to YouTube.
+        "backupIngestionAddress": "A String", # The backup ingestion URL that you should use to stream video to YouTube. You have the option of simultaneously streaming the content that you are sending to the ingestionAddress to this URL.
+        "streamName": "A String", # The HTTP or RTMP stream name that YouTube assigns to the video stream.
+        "ingestionAddress": "A String", # The primary ingestion URL that you should use to stream video to YouTube. You must stream video to this URL.
+            #
+            # Depending on which application or tool you use to encode your video stream, you may need to enter the stream URL and stream name separately or you may need to concatenate them in the following format:
+            #
+            # STREAM_URL/STREAM_NAME
+      },
+      "format": "A String", # The format of the video stream that you are sending to Youtube.
+    },
+    "snippet": { # The snippet object contains basic details about the stream, including its channel, title, and description.
+      "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that is transmitting the stream.
+      "description": "A String", # The stream's description. The value cannot be longer than 10000 characters.
+      "publishedAt": "A String", # The date and time that the stream was created. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+      "title": "A String", # The stream's title. The value must be between 1 and 128 characters long.
+    },
+    "etag": "A String", # Etag of this resource.
+    "id": "A String", # The ID that YouTube assigns to uniquely identify the stream.
+  }
+
+  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.
+  onBehalfOfContentOwnerChannel: string, This parameter can only be used in a properly authorized request. Note: This parameter is intended exclusively for YouTube content partners.
+
+The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel ID of the channel to which a video is being added. This parameter is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it can only be used in conjunction with that parameter. In addition, the request must be authorized using a CMS account that is linked to the content owner that the onBehalfOfContentOwner parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value specifies must be linked to the content owner that the onBehalfOfContentOwner parameter specifies.
+
+This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and perform actions on behalf of the channel specified in the parameter value, without having to provide authentication credentials for each separate channel.
+
+Returns:
+  An object of the form:
+
+    { # A live stream describes a live ingestion point.
+      "status": { # Brief description of the live stream status. # The status object contains information about live stream's status.
+        "streamStatus": "A String",
+      },
+      "kind": "youtube#liveStream", # Identifies what kind of resource this is. Value: the fixed string "youtube#liveStream".
+      "contentDetails": { # Detailed settings of a stream. # The content_details object contains information about the stream, including the closed captions ingestion URL.
+        "closedCaptionsIngestionUrl": "A String", # The ingestion URL where the closed captions of this stream are sent.
+      },
+      "cdn": { # Brief description of the live stream cdn settings. # The cdn object defines the live stream's content delivery network (CDN) settings. These settings provide details about the manner in which you stream your content to YouTube.
+        "ingestionType": "A String", # The method or protocol used to transmit the video stream.
+        "ingestionInfo": { # Describes information necessary for ingesting an RTMP or an HTTP stream. # The ingestionInfo object contains information that YouTube provides that you need to transmit your RTMP or HTTP stream to YouTube.
+          "backupIngestionAddress": "A String", # The backup ingestion URL that you should use to stream video to YouTube. You have the option of simultaneously streaming the content that you are sending to the ingestionAddress to this URL.
+          "streamName": "A String", # The HTTP or RTMP stream name that YouTube assigns to the video stream.
+          "ingestionAddress": "A String", # The primary ingestion URL that you should use to stream video to YouTube. You must stream video to this URL.
+              #
+              # Depending on which application or tool you use to encode your video stream, you may need to enter the stream URL and stream name separately or you may need to concatenate them in the following format:
+              #
+              # STREAM_URL/STREAM_NAME
+        },
+        "format": "A String", # The format of the video stream that you are sending to Youtube.
+      },
+      "snippet": { # The snippet object contains basic details about the stream, including its channel, title, and description.
+        "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that is transmitting the stream.
+        "description": "A String", # The stream's description. The value cannot be longer than 10000 characters.
+        "publishedAt": "A String", # The date and time that the stream was created. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+        "title": "A String", # The stream's title. The value must be between 1 and 128 characters long.
+      },
+      "etag": "A String", # Etag of this resource.
+      "id": "A String", # The ID that YouTube assigns to uniquely identify the stream.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(part, onBehalfOfContentOwner=None, pageToken=None, onBehalfOfContentOwnerChannel=None, maxResults=None, mine=None, id=None)</code>
+  <pre>Returns a list of video streams that match the API request parameters.
+
+Args:
+  part: string, The part parameter specifies a comma-separated list of one or more liveStream resource properties that the API response will include. The part names that you can include in the parameter value are id, snippet, cdn, and status. (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.
+  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.
+  onBehalfOfContentOwnerChannel: string, This parameter can only be used in a properly authorized request. Note: This parameter is intended exclusively for YouTube content partners.
+
+The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel ID of the channel to which a video is being added. This parameter is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it can only be used in conjunction with that parameter. In addition, the request must be authorized using a CMS account that is linked to the content owner that the onBehalfOfContentOwner parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value specifies must be linked to the content owner that the onBehalfOfContentOwner parameter specifies.
+
+This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and perform actions on behalf of the channel specified in the parameter value, without having to provide authentication credentials for each separate channel.
+  maxResults: integer, The maxResults parameter specifies the maximum number of items that should be returned in the result set. Acceptable values are 0 to 50, inclusive. The default value is 5.
+  mine: boolean, The mine parameter can be used to instruct the API to only return streams owned by the authenticated user. Set the parameter value to true to only retrieve your own streams.
+  id: string, The id parameter specifies a comma-separated list of YouTube stream IDs that identify the streams being retrieved. In a liveStream resource, the id property specifies the stream's ID.
+
+Returns:
+  An object of the form:
+
+    {
+    "eventId": "A String", # Serialized EventId of the request which produced this response.
+    "nextPageToken": "A String", # The token that can be used as the value of the pageToken parameter to retrieve the next page in the result set.
+    "kind": "youtube#liveStreamListResponse", # Identifies what kind of resource this is. Value: the fixed string "youtube#liveStreamListResponse".
+    "visitorId": "A String", # The visitorId identifies the visitor.
+    "items": [ # A list of live streams that match the request criteria.
+      { # A live stream describes a live ingestion point.
+          "status": { # Brief description of the live stream status. # The status object contains information about live stream's status.
+            "streamStatus": "A String",
+          },
+          "kind": "youtube#liveStream", # Identifies what kind of resource this is. Value: the fixed string "youtube#liveStream".
+          "contentDetails": { # Detailed settings of a stream. # The content_details object contains information about the stream, including the closed captions ingestion URL.
+            "closedCaptionsIngestionUrl": "A String", # The ingestion URL where the closed captions of this stream are sent.
+          },
+          "cdn": { # Brief description of the live stream cdn settings. # The cdn object defines the live stream's content delivery network (CDN) settings. These settings provide details about the manner in which you stream your content to YouTube.
+            "ingestionType": "A String", # The method or protocol used to transmit the video stream.
+            "ingestionInfo": { # Describes information necessary for ingesting an RTMP or an HTTP stream. # The ingestionInfo object contains information that YouTube provides that you need to transmit your RTMP or HTTP stream to YouTube.
+              "backupIngestionAddress": "A String", # The backup ingestion URL that you should use to stream video to YouTube. You have the option of simultaneously streaming the content that you are sending to the ingestionAddress to this URL.
+              "streamName": "A String", # The HTTP or RTMP stream name that YouTube assigns to the video stream.
+              "ingestionAddress": "A String", # The primary ingestion URL that you should use to stream video to YouTube. You must stream video to this URL.
+                  #
+                  # Depending on which application or tool you use to encode your video stream, you may need to enter the stream URL and stream name separately or you may need to concatenate them in the following format:
+                  #
+                  # STREAM_URL/STREAM_NAME
+            },
+            "format": "A String", # The format of the video stream that you are sending to Youtube.
+          },
+          "snippet": { # The snippet object contains basic details about the stream, including its channel, title, and description.
+            "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that is transmitting the stream.
+            "description": "A String", # The stream's description. The value cannot be longer than 10000 characters.
+            "publishedAt": "A String", # The date and time that the stream was created. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+            "title": "A String", # The stream's title. The value must be between 1 and 128 characters long.
+          },
+          "etag": "A String", # Etag of this resource.
+          "id": "A String", # The ID that YouTube assigns to uniquely identify the stream.
+        },
+    ],
+    "tokenPagination": { # Stub token pagination template to suppress results.
+    },
+    "etag": "A String", # Etag of this resource.
+    "prevPageToken": "A String", # The token that can be used as the value of the pageToken parameter to retrieve the previous page in the result set.
+    "pageInfo": { # Paging details for lists of resources, including total number of items available and number of resources returned in a single page.
+      "totalResults": 42, # The total number of results in the result set.
+      "resultsPerPage": 42, # The number of results included in the API response.
+    },
+  }</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(part=None, body, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</code>
+  <pre>Updates a video stream. If the properties that you want to change cannot be updated, then you need to create a new stream with the proper settings.
+
+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 properties that you can include in the parameter value are id, snippet, cdn, and status.
+
+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. If the request body does not specify a value for a mutable property, the existing value for that property will be removed. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A live stream describes a live ingestion point.
+    "status": { # Brief description of the live stream status. # The status object contains information about live stream's status.
+      "streamStatus": "A String",
+    },
+    "kind": "youtube#liveStream", # Identifies what kind of resource this is. Value: the fixed string "youtube#liveStream".
+    "contentDetails": { # Detailed settings of a stream. # The content_details object contains information about the stream, including the closed captions ingestion URL.
+      "closedCaptionsIngestionUrl": "A String", # The ingestion URL where the closed captions of this stream are sent.
+    },
+    "cdn": { # Brief description of the live stream cdn settings. # The cdn object defines the live stream's content delivery network (CDN) settings. These settings provide details about the manner in which you stream your content to YouTube.
+      "ingestionType": "A String", # The method or protocol used to transmit the video stream.
+      "ingestionInfo": { # Describes information necessary for ingesting an RTMP or an HTTP stream. # The ingestionInfo object contains information that YouTube provides that you need to transmit your RTMP or HTTP stream to YouTube.
+        "backupIngestionAddress": "A String", # The backup ingestion URL that you should use to stream video to YouTube. You have the option of simultaneously streaming the content that you are sending to the ingestionAddress to this URL.
+        "streamName": "A String", # The HTTP or RTMP stream name that YouTube assigns to the video stream.
+        "ingestionAddress": "A String", # The primary ingestion URL that you should use to stream video to YouTube. You must stream video to this URL.
+            #
+            # Depending on which application or tool you use to encode your video stream, you may need to enter the stream URL and stream name separately or you may need to concatenate them in the following format:
+            #
+            # STREAM_URL/STREAM_NAME
+      },
+      "format": "A String", # The format of the video stream that you are sending to Youtube.
+    },
+    "snippet": { # The snippet object contains basic details about the stream, including its channel, title, and description.
+      "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that is transmitting the stream.
+      "description": "A String", # The stream's description. The value cannot be longer than 10000 characters.
+      "publishedAt": "A String", # The date and time that the stream was created. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+      "title": "A String", # The stream's title. The value must be between 1 and 128 characters long.
+    },
+    "etag": "A String", # Etag of this resource.
+    "id": "A String", # The ID that YouTube assigns to uniquely identify the stream.
+  }
+
+  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.
+  onBehalfOfContentOwnerChannel: string, This parameter can only be used in a properly authorized request. Note: This parameter is intended exclusively for YouTube content partners.
+
+The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel ID of the channel to which a video is being added. This parameter is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it can only be used in conjunction with that parameter. In addition, the request must be authorized using a CMS account that is linked to the content owner that the onBehalfOfContentOwner parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value specifies must be linked to the content owner that the onBehalfOfContentOwner parameter specifies.
+
+This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and perform actions on behalf of the channel specified in the parameter value, without having to provide authentication credentials for each separate channel.
+
+Returns:
+  An object of the form:
+
+    { # A live stream describes a live ingestion point.
+      "status": { # Brief description of the live stream status. # The status object contains information about live stream's status.
+        "streamStatus": "A String",
+      },
+      "kind": "youtube#liveStream", # Identifies what kind of resource this is. Value: the fixed string "youtube#liveStream".
+      "contentDetails": { # Detailed settings of a stream. # The content_details object contains information about the stream, including the closed captions ingestion URL.
+        "closedCaptionsIngestionUrl": "A String", # The ingestion URL where the closed captions of this stream are sent.
+      },
+      "cdn": { # Brief description of the live stream cdn settings. # The cdn object defines the live stream's content delivery network (CDN) settings. These settings provide details about the manner in which you stream your content to YouTube.
+        "ingestionType": "A String", # The method or protocol used to transmit the video stream.
+        "ingestionInfo": { # Describes information necessary for ingesting an RTMP or an HTTP stream. # The ingestionInfo object contains information that YouTube provides that you need to transmit your RTMP or HTTP stream to YouTube.
+          "backupIngestionAddress": "A String", # The backup ingestion URL that you should use to stream video to YouTube. You have the option of simultaneously streaming the content that you are sending to the ingestionAddress to this URL.
+          "streamName": "A String", # The HTTP or RTMP stream name that YouTube assigns to the video stream.
+          "ingestionAddress": "A String", # The primary ingestion URL that you should use to stream video to YouTube. You must stream video to this URL.
+              #
+              # Depending on which application or tool you use to encode your video stream, you may need to enter the stream URL and stream name separately or you may need to concatenate them in the following format:
+              #
+              # STREAM_URL/STREAM_NAME
+        },
+        "format": "A String", # The format of the video stream that you are sending to Youtube.
+      },
+      "snippet": { # The snippet object contains basic details about the stream, including its channel, title, and description.
+        "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that is transmitting the stream.
+        "description": "A String", # The stream's description. The value cannot be longer than 10000 characters.
+        "publishedAt": "A String", # The date and time that the stream was created. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+        "title": "A String", # The stream's title. The value must be between 1 and 128 characters long.
+      },
+      "etag": "A String", # Etag of this resource.
+      "id": "A String", # The ID that YouTube assigns to uniquely identify the stream.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/youtube_v3.playlistItems.html b/docs/dyn/youtube_v3.playlistItems.html
new file mode 100644
index 0000000..5e250ba
--- /dev/null
+++ b/docs/dyn/youtube_v3.playlistItems.html
@@ -0,0 +1,520 @@
+<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="youtube_v3.html">YouTube Data API</a> . <a href="youtube_v3.playlistItems.html">playlistItems</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(id)</a></code></p>
+<p class="firstline">Deletes a playlist item.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(part=None, body, onBehalfOfContentOwner=None)</a></code></p>
+<p class="firstline">Adds a resource to a playlist.</p>
+<p class="toc_element">
+  <code><a href="#list">list(part=None, onBehalfOfContentOwner=None, pageToken=None, playlistId=None, videoId=None, maxResults=None, id=None)</a></code></p>
+<p class="firstline">Returns a collection of playlist items that match the API request parameters. You can retrieve all of the playlist items in a specified playlist or retrieve one or more playlist items by their unique IDs.</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(part=None, body)</a></code></p>
+<p class="firstline">Modifies a playlist item. For example, you could update the item's position in the playlist.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(id)</code>
+  <pre>Deletes a playlist item.
+
+Args:
+  id: string, The id parameter specifies the YouTube playlist item ID for the playlist item that is being deleted. In a playlistItem resource, the id property specifies the playlist item's ID. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(part=None, body, onBehalfOfContentOwner=None)</code>
+  <pre>Adds a resource to a playlist.
+
+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, and status. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A playlistItem resource identifies another resource, such as a video, that is included in a playlist. In addition, the playlistItem  resource contains details about the included resource that pertain specifically to how that resource is used in that playlist.
+      # 
+      # YouTube uses playlists to identify special collections of videos for a channel, such as:
+      # - uploaded videos
+      # - favorite videos
+      # - positively rated (liked) videos
+      # - watch history
+      # - watch later  To be more specific, these lists are associated with a channel, which is a collection of a person, group, or company's videos, playlists, and other YouTube information.
+      # 
+      # You can retrieve the playlist IDs for each of these lists from the  channel resource  for a given channel. You can then use the   playlistItems.list method to retrieve any of those lists. You can also add or remove items from those lists by calling the   playlistItems.insert and   playlistItems.delete methods. For example, if a user gives a positive rating to a video, you would insert that video into the liked videos playlist for that user's channel.
+    "status": { # Information about the playlist item's privacy status. # The status object contains information about the playlist item's privacy status.
+      "privacyStatus": "A String", # This resource's privacy status.
+    },
+    "kind": "youtube#playlistItem", # Identifies what kind of resource this is. Value: the fixed string "youtube#playlistItem".
+    "contentDetails": { # The contentDetails object is included in the resource if the included item is a YouTube video. The object contains additional information about the video.
+      "note": "A String", # A user-generated note for this item.
+      "startAt": "A String", # The time, measured in seconds from the start of the video, when the video should start playing. (The playlist owner can specify the times when the video should start and stop playing when the video is played in the context of the playlist.) The default value is 0.
+      "endAt": "A String", # The time, measured in seconds from the start of the video, when the video should stop playing. (The playlist owner can specify the times when the video should start and stop playing when the video is played in the context of the playlist.) By default, assume that the video.endTime is the end of the video.
+      "videoId": "A String", # The ID that YouTube uses to uniquely identify a video. To retrieve the video resource, set the id query parameter to this value in your API request.
+    },
+    "snippet": { # Basic details about a playlist, including title, description and thumbnails. # The snippet object contains basic details about the playlist item, such as its title and position in the playlist.
+      "playlistId": "A String", # The ID that YouTube uses to uniquely identify the playlist that the playlist item is in.
+      "description": "A String", # The item's description.
+      "title": "A String", # The item's title.
+      "resourceId": { # A resource id is a generic reference that points to another YouTube resource. # The id object contains information that can be used to uniquely identify the resource that is included in the playlist as the playlist item.
+        "kind": "A String", # The type of the API resource.
+        "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+        "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+        "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+      },
+      "channelId": "A String", # The ID that YouTube uses to uniquely identify the user that added the item to the playlist.
+      "publishedAt": "A String", # The date and time that the item was added to the playlist. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+      "channelTitle": "A String", # Channel title for the channel that the playlist item belongs to.
+      "position": 42, # The order in which the item appears in the playlist. The value uses a zero-based index, so the first item has a position of 0, the second item has a position of 1, and so forth.
+      "thumbnails": { # Internal representation of thumbnails for a YouTube resource. # A map of thumbnail images associated with the playlist item. 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.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+      },
+    },
+    "etag": "A String", # Etag of this resource.
+    "id": "A String", # The ID that YouTube uses to uniquely identify the playlist item.
+  }
+
+  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 playlistItem resource identifies another resource, such as a video, that is included in a playlist. In addition, the playlistItem  resource contains details about the included resource that pertain specifically to how that resource is used in that playlist.
+        #
+        # YouTube uses playlists to identify special collections of videos for a channel, such as:
+        # - uploaded videos
+        # - favorite videos
+        # - positively rated (liked) videos
+        # - watch history
+        # - watch later  To be more specific, these lists are associated with a channel, which is a collection of a person, group, or company's videos, playlists, and other YouTube information.
+        #
+        # You can retrieve the playlist IDs for each of these lists from the  channel resource  for a given channel. You can then use the   playlistItems.list method to retrieve any of those lists. You can also add or remove items from those lists by calling the   playlistItems.insert and   playlistItems.delete methods. For example, if a user gives a positive rating to a video, you would insert that video into the liked videos playlist for that user's channel.
+      "status": { # Information about the playlist item's privacy status. # The status object contains information about the playlist item's privacy status.
+        "privacyStatus": "A String", # This resource's privacy status.
+      },
+      "kind": "youtube#playlistItem", # Identifies what kind of resource this is. Value: the fixed string "youtube#playlistItem".
+      "contentDetails": { # The contentDetails object is included in the resource if the included item is a YouTube video. The object contains additional information about the video.
+        "note": "A String", # A user-generated note for this item.
+        "startAt": "A String", # The time, measured in seconds from the start of the video, when the video should start playing. (The playlist owner can specify the times when the video should start and stop playing when the video is played in the context of the playlist.) The default value is 0.
+        "endAt": "A String", # The time, measured in seconds from the start of the video, when the video should stop playing. (The playlist owner can specify the times when the video should start and stop playing when the video is played in the context of the playlist.) By default, assume that the video.endTime is the end of the video.
+        "videoId": "A String", # The ID that YouTube uses to uniquely identify a video. To retrieve the video resource, set the id query parameter to this value in your API request.
+      },
+      "snippet": { # Basic details about a playlist, including title, description and thumbnails. # The snippet object contains basic details about the playlist item, such as its title and position in the playlist.
+        "playlistId": "A String", # The ID that YouTube uses to uniquely identify the playlist that the playlist item is in.
+        "description": "A String", # The item's description.
+        "title": "A String", # The item's title.
+        "resourceId": { # A resource id is a generic reference that points to another YouTube resource. # The id object contains information that can be used to uniquely identify the resource that is included in the playlist as the playlist item.
+          "kind": "A String", # The type of the API resource.
+          "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+          "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+          "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+        },
+        "channelId": "A String", # The ID that YouTube uses to uniquely identify the user that added the item to the playlist.
+        "publishedAt": "A String", # The date and time that the item was added to the playlist. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+        "channelTitle": "A String", # Channel title for the channel that the playlist item belongs to.
+        "position": 42, # The order in which the item appears in the playlist. The value uses a zero-based index, so the first item has a position of 0, the second item has a position of 1, and so forth.
+        "thumbnails": { # Internal representation of thumbnails for a YouTube resource. # A map of thumbnail images associated with the playlist item. 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.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+        },
+      },
+      "etag": "A String", # Etag of this resource.
+      "id": "A String", # The ID that YouTube uses to uniquely identify the playlist item.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(part=None, onBehalfOfContentOwner=None, pageToken=None, playlistId=None, videoId=None, maxResults=None, id=None)</code>
+  <pre>Returns a collection of playlist items that match the API request parameters. You can retrieve all of the playlist items in a specified playlist or retrieve one or more playlist items by their unique IDs.
+
+Args:
+  part: string, The part parameter specifies a comma-separated list of one or more playlistItem resource properties that the API response will include. The part names that you can include in the parameter value are id, snippet, contentDetails, and status.
+
+If the parameter identifies a property that contains child properties, the child properties will be included in the response. For example, in a playlistItem resource, the snippet property contains numerous fields, including the title, description, position, and resourceId properties. As such, if you set part=snippet, the API response will contain all of those properties. (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.
+  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.
+  playlistId: string, The playlistId parameter specifies the unique ID of the playlist for which you want to retrieve playlist items. Note that even though this is an optional parameter, every request to retrieve playlist items must specify a value for either the id parameter or the playlistId parameter.
+  videoId: string, The videoId parameter specifies that the request should return only the playlist items that contain the specified video.
+  maxResults: integer, The maxResults parameter specifies the maximum number of items that should be returned in the result set.
+  id: string, The id parameter specifies a comma-separated list of one or more unique playlist item IDs.
+
+Returns:
+  An object of the form:
+
+    {
+    "eventId": "A String", # Serialized EventId of the request which produced this response.
+    "nextPageToken": "A String", # The token that can be used as the value of the pageToken parameter to retrieve the next page in the result set.
+    "kind": "youtube#playlistItemListResponse", # Identifies what kind of resource this is. Value: the fixed string "youtube#playlistItemListResponse".
+    "visitorId": "A String", # The visitorId identifies the visitor.
+    "items": [ # A list of playlist items that match the request criteria.
+      { # A playlistItem resource identifies another resource, such as a video, that is included in a playlist. In addition, the playlistItem  resource contains details about the included resource that pertain specifically to how that resource is used in that playlist.
+            #
+            # YouTube uses playlists to identify special collections of videos for a channel, such as:
+            # - uploaded videos
+            # - favorite videos
+            # - positively rated (liked) videos
+            # - watch history
+            # - watch later  To be more specific, these lists are associated with a channel, which is a collection of a person, group, or company's videos, playlists, and other YouTube information.
+            #
+            # You can retrieve the playlist IDs for each of these lists from the  channel resource  for a given channel. You can then use the   playlistItems.list method to retrieve any of those lists. You can also add or remove items from those lists by calling the   playlistItems.insert and   playlistItems.delete methods. For example, if a user gives a positive rating to a video, you would insert that video into the liked videos playlist for that user's channel.
+          "status": { # Information about the playlist item's privacy status. # The status object contains information about the playlist item's privacy status.
+            "privacyStatus": "A String", # This resource's privacy status.
+          },
+          "kind": "youtube#playlistItem", # Identifies what kind of resource this is. Value: the fixed string "youtube#playlistItem".
+          "contentDetails": { # The contentDetails object is included in the resource if the included item is a YouTube video. The object contains additional information about the video.
+            "note": "A String", # A user-generated note for this item.
+            "startAt": "A String", # The time, measured in seconds from the start of the video, when the video should start playing. (The playlist owner can specify the times when the video should start and stop playing when the video is played in the context of the playlist.) The default value is 0.
+            "endAt": "A String", # The time, measured in seconds from the start of the video, when the video should stop playing. (The playlist owner can specify the times when the video should start and stop playing when the video is played in the context of the playlist.) By default, assume that the video.endTime is the end of the video.
+            "videoId": "A String", # The ID that YouTube uses to uniquely identify a video. To retrieve the video resource, set the id query parameter to this value in your API request.
+          },
+          "snippet": { # Basic details about a playlist, including title, description and thumbnails. # The snippet object contains basic details about the playlist item, such as its title and position in the playlist.
+            "playlistId": "A String", # The ID that YouTube uses to uniquely identify the playlist that the playlist item is in.
+            "description": "A String", # The item's description.
+            "title": "A String", # The item's title.
+            "resourceId": { # A resource id is a generic reference that points to another YouTube resource. # The id object contains information that can be used to uniquely identify the resource that is included in the playlist as the playlist item.
+              "kind": "A String", # The type of the API resource.
+              "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+              "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+              "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+            },
+            "channelId": "A String", # The ID that YouTube uses to uniquely identify the user that added the item to the playlist.
+            "publishedAt": "A String", # The date and time that the item was added to the playlist. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+            "channelTitle": "A String", # Channel title for the channel that the playlist item belongs to.
+            "position": 42, # The order in which the item appears in the playlist. The value uses a zero-based index, so the first item has a position of 0, the second item has a position of 1, and so forth.
+            "thumbnails": { # Internal representation of thumbnails for a YouTube resource. # A map of thumbnail images associated with the playlist item. 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.
+                "width": 42, # (Optional) Width of the thumbnail image.
+                "height": 42, # (Optional) Height of the thumbnail image.
+              },
+              "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+                "url": "A String", # The thumbnail image's URL.
+                "width": 42, # (Optional) Width of the thumbnail image.
+                "height": 42, # (Optional) Height of the thumbnail image.
+              },
+              "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+                "url": "A String", # The thumbnail image's URL.
+                "width": 42, # (Optional) Width of the thumbnail image.
+                "height": 42, # (Optional) Height of the thumbnail image.
+              },
+              "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+                "url": "A String", # The thumbnail image's URL.
+                "width": 42, # (Optional) Width of the thumbnail image.
+                "height": 42, # (Optional) Height of the thumbnail image.
+              },
+              "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+                "url": "A String", # The thumbnail image's URL.
+                "width": 42, # (Optional) Width of the thumbnail image.
+                "height": 42, # (Optional) Height of the thumbnail image.
+              },
+            },
+          },
+          "etag": "A String", # Etag of this resource.
+          "id": "A String", # The ID that YouTube uses to uniquely identify the playlist item.
+        },
+    ],
+    "tokenPagination": { # Stub token pagination template to suppress results.
+    },
+    "etag": "A String", # Etag of this resource.
+    "prevPageToken": "A String", # The token that can be used as the value of the pageToken parameter to retrieve the previous page in the result set.
+    "pageInfo": { # Paging details for lists of resources, including total number of items available and number of resources returned in a single page.
+      "totalResults": 42, # The total number of results in the result set.
+      "resultsPerPage": 42, # The number of results included in the API response.
+    },
+  }</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(part=None, body)</code>
+  <pre>Modifies a playlist item. For example, you could update the item's position in the playlist.
+
+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, and status.
+
+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 playlist item can specify a start time and end time, which identify the times portion of the video that should play when users watch the video in the playlist. If your request is updating a playlist item that sets these values, and the request's part parameter value includes the contentDetails part, the playlist item's start and end times will be updated to whatever value the request body specifies. If the request body does not specify values, the existing start and end times will be removed and replaced with the default settings. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A playlistItem resource identifies another resource, such as a video, that is included in a playlist. In addition, the playlistItem  resource contains details about the included resource that pertain specifically to how that resource is used in that playlist.
+      # 
+      # YouTube uses playlists to identify special collections of videos for a channel, such as:
+      # - uploaded videos
+      # - favorite videos
+      # - positively rated (liked) videos
+      # - watch history
+      # - watch later  To be more specific, these lists are associated with a channel, which is a collection of a person, group, or company's videos, playlists, and other YouTube information.
+      # 
+      # You can retrieve the playlist IDs for each of these lists from the  channel resource  for a given channel. You can then use the   playlistItems.list method to retrieve any of those lists. You can also add or remove items from those lists by calling the   playlistItems.insert and   playlistItems.delete methods. For example, if a user gives a positive rating to a video, you would insert that video into the liked videos playlist for that user's channel.
+    "status": { # Information about the playlist item's privacy status. # The status object contains information about the playlist item's privacy status.
+      "privacyStatus": "A String", # This resource's privacy status.
+    },
+    "kind": "youtube#playlistItem", # Identifies what kind of resource this is. Value: the fixed string "youtube#playlistItem".
+    "contentDetails": { # The contentDetails object is included in the resource if the included item is a YouTube video. The object contains additional information about the video.
+      "note": "A String", # A user-generated note for this item.
+      "startAt": "A String", # The time, measured in seconds from the start of the video, when the video should start playing. (The playlist owner can specify the times when the video should start and stop playing when the video is played in the context of the playlist.) The default value is 0.
+      "endAt": "A String", # The time, measured in seconds from the start of the video, when the video should stop playing. (The playlist owner can specify the times when the video should start and stop playing when the video is played in the context of the playlist.) By default, assume that the video.endTime is the end of the video.
+      "videoId": "A String", # The ID that YouTube uses to uniquely identify a video. To retrieve the video resource, set the id query parameter to this value in your API request.
+    },
+    "snippet": { # Basic details about a playlist, including title, description and thumbnails. # The snippet object contains basic details about the playlist item, such as its title and position in the playlist.
+      "playlistId": "A String", # The ID that YouTube uses to uniquely identify the playlist that the playlist item is in.
+      "description": "A String", # The item's description.
+      "title": "A String", # The item's title.
+      "resourceId": { # A resource id is a generic reference that points to another YouTube resource. # The id object contains information that can be used to uniquely identify the resource that is included in the playlist as the playlist item.
+        "kind": "A String", # The type of the API resource.
+        "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+        "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+        "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+      },
+      "channelId": "A String", # The ID that YouTube uses to uniquely identify the user that added the item to the playlist.
+      "publishedAt": "A String", # The date and time that the item was added to the playlist. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+      "channelTitle": "A String", # Channel title for the channel that the playlist item belongs to.
+      "position": 42, # The order in which the item appears in the playlist. The value uses a zero-based index, so the first item has a position of 0, the second item has a position of 1, and so forth.
+      "thumbnails": { # Internal representation of thumbnails for a YouTube resource. # A map of thumbnail images associated with the playlist item. 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.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+      },
+    },
+    "etag": "A String", # Etag of this resource.
+    "id": "A String", # The ID that YouTube uses to uniquely identify the playlist item.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A playlistItem resource identifies another resource, such as a video, that is included in a playlist. In addition, the playlistItem  resource contains details about the included resource that pertain specifically to how that resource is used in that playlist.
+        #
+        # YouTube uses playlists to identify special collections of videos for a channel, such as:
+        # - uploaded videos
+        # - favorite videos
+        # - positively rated (liked) videos
+        # - watch history
+        # - watch later  To be more specific, these lists are associated with a channel, which is a collection of a person, group, or company's videos, playlists, and other YouTube information.
+        #
+        # You can retrieve the playlist IDs for each of these lists from the  channel resource  for a given channel. You can then use the   playlistItems.list method to retrieve any of those lists. You can also add or remove items from those lists by calling the   playlistItems.insert and   playlistItems.delete methods. For example, if a user gives a positive rating to a video, you would insert that video into the liked videos playlist for that user's channel.
+      "status": { # Information about the playlist item's privacy status. # The status object contains information about the playlist item's privacy status.
+        "privacyStatus": "A String", # This resource's privacy status.
+      },
+      "kind": "youtube#playlistItem", # Identifies what kind of resource this is. Value: the fixed string "youtube#playlistItem".
+      "contentDetails": { # The contentDetails object is included in the resource if the included item is a YouTube video. The object contains additional information about the video.
+        "note": "A String", # A user-generated note for this item.
+        "startAt": "A String", # The time, measured in seconds from the start of the video, when the video should start playing. (The playlist owner can specify the times when the video should start and stop playing when the video is played in the context of the playlist.) The default value is 0.
+        "endAt": "A String", # The time, measured in seconds from the start of the video, when the video should stop playing. (The playlist owner can specify the times when the video should start and stop playing when the video is played in the context of the playlist.) By default, assume that the video.endTime is the end of the video.
+        "videoId": "A String", # The ID that YouTube uses to uniquely identify a video. To retrieve the video resource, set the id query parameter to this value in your API request.
+      },
+      "snippet": { # Basic details about a playlist, including title, description and thumbnails. # The snippet object contains basic details about the playlist item, such as its title and position in the playlist.
+        "playlistId": "A String", # The ID that YouTube uses to uniquely identify the playlist that the playlist item is in.
+        "description": "A String", # The item's description.
+        "title": "A String", # The item's title.
+        "resourceId": { # A resource id is a generic reference that points to another YouTube resource. # The id object contains information that can be used to uniquely identify the resource that is included in the playlist as the playlist item.
+          "kind": "A String", # The type of the API resource.
+          "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+          "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+          "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+        },
+        "channelId": "A String", # The ID that YouTube uses to uniquely identify the user that added the item to the playlist.
+        "publishedAt": "A String", # The date and time that the item was added to the playlist. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+        "channelTitle": "A String", # Channel title for the channel that the playlist item belongs to.
+        "position": 42, # The order in which the item appears in the playlist. The value uses a zero-based index, so the first item has a position of 0, the second item has a position of 1, and so forth.
+        "thumbnails": { # Internal representation of thumbnails for a YouTube resource. # A map of thumbnail images associated with the playlist item. 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.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+        },
+      },
+      "etag": "A String", # Etag of this resource.
+      "id": "A String", # The ID that YouTube uses to uniquely identify the playlist item.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/youtube_v3.playlists.html b/docs/dyn/youtube_v3.playlists.html
new file mode 100644
index 0000000..52bc5df
--- /dev/null
+++ b/docs/dyn/youtube_v3.playlists.html
@@ -0,0 +1,511 @@
+<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="youtube_v3.html">YouTube Data API</a> . <a href="youtube_v3.playlists.html">playlists</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 playlist.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(part=None, body, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</a></code></p>
+<p class="firstline">Creates a playlist.</p>
+<p class="toc_element">
+  <code><a href="#list">list(part=None, onBehalfOfContentOwner=None, pageToken=None, onBehalfOfContentOwnerChannel=None, channelId=None, mine=None, maxResults=None, id=None)</a></code></p>
+<p class="firstline">Returns a collection of playlists that match the API request parameters. For example, you can retrieve all playlists that the authenticated user owns, or you can retrieve one or more playlists by their unique IDs.</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(part=None, body, onBehalfOfContentOwner=None)</a></code></p>
+<p class="firstline">Modifies a playlist. For example, you could change a playlist's title, description, or privacy status.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(id, onBehalfOfContentOwner=None)</code>
+  <pre>Deletes a playlist.
+
+Args:
+  id: string, The id parameter specifies the YouTube playlist ID for the playlist that is being deleted. In a playlist resource, the id property specifies the playlist's 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>
+
+<div class="method">
+    <code class="details" id="insert">insert(part=None, body, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</code>
+  <pre>Creates a playlist.
+
+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 and status. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A playlist resource represents a YouTube playlist. A playlist is a collection of videos that can be viewed sequentially and shared with other users. A playlist can contain up to 200 videos, and YouTube does not limit the number of playlists that each user creates. By default, playlists are publicly visible to other users, but playlists can be public or private.
+      # 
+      # YouTube also uses playlists to identify special collections of videos for a channel, such as:
+      # - uploaded videos
+      # - favorite videos
+      # - positively rated (liked) videos
+      # - watch history
+      # - watch later  To be more specific, these lists are associated with a channel, which is a collection of a person, group, or company's videos, playlists, and other YouTube information. You can retrieve the playlist IDs for each of these lists from the  channel resource for a given channel.
+      # 
+      # You can then use the   playlistItems.list method to retrieve any of those lists. You can also add or remove items from those lists by calling the   playlistItems.insert and   playlistItems.delete methods.
+    "status": { # The status object contains status information for the playlist.
+      "privacyStatus": "A String", # The playlist's privacy status.
+    },
+    "kind": "youtube#playlist", # Identifies what kind of resource this is. Value: the fixed string "youtube#playlist".
+    "contentDetails": { # The contentDetails object contains information like video count.
+      "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.
+      "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.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "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.
+  }
+
+  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.
+  onBehalfOfContentOwnerChannel: string, This parameter can only be used in a properly authorized request. Note: This parameter is intended exclusively for YouTube content partners.
+
+The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel ID of the channel to which a video is being added. This parameter is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it can only be used in conjunction with that parameter. In addition, the request must be authorized using a CMS account that is linked to the content owner that the onBehalfOfContentOwner parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value specifies must be linked to the content owner that the onBehalfOfContentOwner parameter specifies.
+
+This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and perform actions on behalf of the channel specified in the parameter value, without having to provide authentication credentials for each separate channel.
+
+Returns:
+  An object of the form:
+
+    { # A playlist resource represents a YouTube playlist. A playlist is a collection of videos that can be viewed sequentially and shared with other users. A playlist can contain up to 200 videos, and YouTube does not limit the number of playlists that each user creates. By default, playlists are publicly visible to other users, but playlists can be public or private.
+        #
+        # YouTube also uses playlists to identify special collections of videos for a channel, such as:
+        # - uploaded videos
+        # - favorite videos
+        # - positively rated (liked) videos
+        # - watch history
+        # - watch later  To be more specific, these lists are associated with a channel, which is a collection of a person, group, or company's videos, playlists, and other YouTube information. You can retrieve the playlist IDs for each of these lists from the  channel resource for a given channel.
+        #
+        # You can then use the   playlistItems.list method to retrieve any of those lists. You can also add or remove items from those lists by calling the   playlistItems.insert and   playlistItems.delete methods.
+      "status": { # The status object contains status information for the playlist.
+        "privacyStatus": "A String", # The playlist's privacy status.
+      },
+      "kind": "youtube#playlist", # Identifies what kind of resource this is. Value: the fixed string "youtube#playlist".
+      "contentDetails": { # The contentDetails object contains information like video count.
+        "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.
+        "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.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "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.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(part=None, onBehalfOfContentOwner=None, pageToken=None, onBehalfOfContentOwnerChannel=None, channelId=None, mine=None, maxResults=None, id=None)</code>
+  <pre>Returns a collection of playlists that match the API request parameters. For example, you can retrieve all playlists that the authenticated user owns, or you can retrieve one or more playlists by their unique IDs.
+
+Args:
+  part: string, The part parameter specifies a comma-separated list of one or more playlist resource properties that the API response will include. The part names that you can include in the parameter value are id, snippet, and status.
+
+If the parameter identifies a property that contains child properties, the child properties will be included in the response. For example, in a playlist resource, the snippet property contains properties like author, title, description, tags, and timeCreated. As such, if you set part=snippet, the API response will contain all of those properties. (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.
+  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.
+  onBehalfOfContentOwnerChannel: string, This parameter can only be used in a properly authorized request. Note: This parameter is intended exclusively for YouTube content partners.
+
+The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel ID of the channel to which a video is being added. This parameter is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it can only be used in conjunction with that parameter. In addition, the request must be authorized using a CMS account that is linked to the content owner that the onBehalfOfContentOwner parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value specifies must be linked to the content owner that the onBehalfOfContentOwner parameter specifies.
+
+This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and perform actions on behalf of the channel specified in the parameter value, without having to provide authentication credentials for each separate channel.
+  channelId: string, This value indicates that the API should only return the specified channel's playlists.
+  mine: boolean, Set this parameter's value to true to instruct the API to only return playlists owned by the authenticated user.
+  maxResults: integer, The maxResults parameter specifies the maximum number of items that should be returned in the result set.
+  id: string, The id parameter specifies a comma-separated list of the YouTube playlist ID(s) for the resource(s) that are being retrieved. In a playlist resource, the id property specifies the playlist's YouTube playlist ID.
+
+Returns:
+  An object of the form:
+
+    {
+    "eventId": "A String", # Serialized EventId of the request which produced this response.
+    "nextPageToken": "A String", # The token that can be used as the value of the pageToken parameter to retrieve the next page in the result set.
+    "kind": "youtube#playlistListResponse", # Identifies what kind of resource this is. Value: the fixed string "youtube#playlistListResponse".
+    "visitorId": "A String", # The visitorId identifies the visitor.
+    "items": [ # A list of playlists that match the request criteria.
+      { # A playlist resource represents a YouTube playlist. A playlist is a collection of videos that can be viewed sequentially and shared with other users. A playlist can contain up to 200 videos, and YouTube does not limit the number of playlists that each user creates. By default, playlists are publicly visible to other users, but playlists can be public or private.
+            #
+            # YouTube also uses playlists to identify special collections of videos for a channel, such as:
+            # - uploaded videos
+            # - favorite videos
+            # - positively rated (liked) videos
+            # - watch history
+            # - watch later  To be more specific, these lists are associated with a channel, which is a collection of a person, group, or company's videos, playlists, and other YouTube information. You can retrieve the playlist IDs for each of these lists from the  channel resource for a given channel.
+            #
+            # You can then use the   playlistItems.list method to retrieve any of those lists. You can also add or remove items from those lists by calling the   playlistItems.insert and   playlistItems.delete methods.
+          "status": { # The status object contains status information for the playlist.
+            "privacyStatus": "A String", # The playlist's privacy status.
+          },
+          "kind": "youtube#playlist", # Identifies what kind of resource this is. Value: the fixed string "youtube#playlist".
+          "contentDetails": { # The contentDetails object contains information like video count.
+            "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.
+            "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.
+                "width": 42, # (Optional) Width of the thumbnail image.
+                "height": 42, # (Optional) Height of the thumbnail image.
+              },
+              "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+                "url": "A String", # The thumbnail image's URL.
+                "width": 42, # (Optional) Width of the thumbnail image.
+                "height": 42, # (Optional) Height of the thumbnail image.
+              },
+              "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+                "url": "A String", # The thumbnail image's URL.
+                "width": 42, # (Optional) Width of the thumbnail image.
+                "height": 42, # (Optional) Height of the thumbnail image.
+              },
+              "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+                "url": "A String", # The thumbnail image's URL.
+                "width": 42, # (Optional) Width of the thumbnail image.
+                "height": 42, # (Optional) Height of the thumbnail image.
+              },
+              "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+                "url": "A String", # The thumbnail image's URL.
+                "width": 42, # (Optional) Width of the thumbnail image.
+                "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.
+        },
+    ],
+    "tokenPagination": { # Stub token pagination template to suppress results.
+    },
+    "etag": "A String", # Etag of this resource.
+    "prevPageToken": "A String", # The token that can be used as the value of the pageToken parameter to retrieve the previous page in the result set.
+    "pageInfo": { # Paging details for lists of resources, including total number of items available and number of resources returned in a single page.
+      "totalResults": 42, # The total number of results in the result set.
+      "resultsPerPage": 42, # The number of results included in the API response.
+    },
+  }</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(part=None, body, onBehalfOfContentOwner=None)</code>
+  <pre>Modifies a playlist. For example, you could change a playlist's title, description, or privacy status.
+
+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 and status.
+
+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 playlist's privacy setting is contained in the status part. As such, if your request is updating a private playlist, and the request's part parameter value includes the status part, the playlist'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 playlist will revert to the default privacy setting. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A playlist resource represents a YouTube playlist. A playlist is a collection of videos that can be viewed sequentially and shared with other users. A playlist can contain up to 200 videos, and YouTube does not limit the number of playlists that each user creates. By default, playlists are publicly visible to other users, but playlists can be public or private.
+      # 
+      # YouTube also uses playlists to identify special collections of videos for a channel, such as:
+      # - uploaded videos
+      # - favorite videos
+      # - positively rated (liked) videos
+      # - watch history
+      # - watch later  To be more specific, these lists are associated with a channel, which is a collection of a person, group, or company's videos, playlists, and other YouTube information. You can retrieve the playlist IDs for each of these lists from the  channel resource for a given channel.
+      # 
+      # You can then use the   playlistItems.list method to retrieve any of those lists. You can also add or remove items from those lists by calling the   playlistItems.insert and   playlistItems.delete methods.
+    "status": { # The status object contains status information for the playlist.
+      "privacyStatus": "A String", # The playlist's privacy status.
+    },
+    "kind": "youtube#playlist", # Identifies what kind of resource this is. Value: the fixed string "youtube#playlist".
+    "contentDetails": { # The contentDetails object contains information like video count.
+      "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.
+      "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.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "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.
+  }
+
+  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 playlist resource represents a YouTube playlist. A playlist is a collection of videos that can be viewed sequentially and shared with other users. A playlist can contain up to 200 videos, and YouTube does not limit the number of playlists that each user creates. By default, playlists are publicly visible to other users, but playlists can be public or private.
+        #
+        # YouTube also uses playlists to identify special collections of videos for a channel, such as:
+        # - uploaded videos
+        # - favorite videos
+        # - positively rated (liked) videos
+        # - watch history
+        # - watch later  To be more specific, these lists are associated with a channel, which is a collection of a person, group, or company's videos, playlists, and other YouTube information. You can retrieve the playlist IDs for each of these lists from the  channel resource for a given channel.
+        #
+        # You can then use the   playlistItems.list method to retrieve any of those lists. You can also add or remove items from those lists by calling the   playlistItems.insert and   playlistItems.delete methods.
+      "status": { # The status object contains status information for the playlist.
+        "privacyStatus": "A String", # The playlist's privacy status.
+      },
+      "kind": "youtube#playlist", # Identifies what kind of resource this is. Value: the fixed string "youtube#playlist".
+      "contentDetails": { # The contentDetails object contains information like video count.
+        "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.
+        "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.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "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.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/youtube_v3.search.html b/docs/dyn/youtube_v3.search.html
new file mode 100644
index 0000000..650ad9e
--- /dev/null
+++ b/docs/dyn/youtube_v3.search.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="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, 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>
+<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, 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>
+  <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:
+  part: string, The part parameter specifies a comma-separated list of one or more search resource properties that the API response will include. The part names that you can include in the parameter value are id and snippet.
+
+If the parameter identifies a property that contains child properties, the child properties will be included in the response. For example, in a search result, the snippet property contains other properties that identify the result's title, description, and so forth. If you set part=snippet, the API response will also contain all of those nested properties. (required)
+  eventType: string, The eventType parameter restricts a search to broadcast events.
+    Allowed values
+      completed - Only include completed broadcasts.
+      live - Only include active broadcasts.
+      upcoming - Only include upcoming broadcasts.
+  channelId: string, The channelId parameter indicates that the API response should only contain resources created by the channel
+  videoSyndicated: string, The videoSyndicated parameter lets you to restrict a search to only videos that can be played outside youtube.com.
+    Allowed values
+      any - Return all videos, syndicated or not.
+      true - Only retrieve syndicated videos.
+  channelType: string, The channelType parameter lets you restrict a search to a particular type of channel.
+    Allowed values
+      any - Return all channels.
+      show - Only retrieve shows.
+  videoCaption: string, The videoCaption parameter indicates whether the API should filter video search results based on whether they have captions.
+    Allowed values
+      any - Do not filter results based on caption availability.
+      closedCaption - Only include videos that have captions.
+      none - Only include videos that do not have captions.
+  publishedAfter: string, The publishedAfter parameter indicates that the API response should only contain resources created after the specified time. The value is an RFC 3339 formatted date-time value (1970-01-01T00:00:00Z).
+  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.
+  forContentOwner: boolean, Note: This parameter is intended exclusively for YouTube content partners.
+
+The forContentOwner parameter restricts the search to only retrieve resources owned by the content owner specified by the onBehalfOfContentOwner parameter. The user must be authenticated using a CMS account linked to the specified content owner and onBehalfOfContentOwner must be provided.
+  regionCode: string, The regionCode parameter instructs the API to return search results for the specified country. The parameter value is an ISO 3166-1 alpha-2 country code.
+  type: string, The type parameter restricts a search query to only retrieve a particular type of resource. The value is a comma-separated list of resource types.
+  topicId: string, The topicId parameter indicates that the API response should only contain resources associated with the specified topic. The value identifies a Freebase topic ID.
+  publishedBefore: string, The publishedBefore parameter indicates that the API response should only contain resources created before the specified time. The value is an RFC 3339 formatted date-time value (1970-01-01T00:00:00Z).
+  videoDimension: string, The videoDimension parameter lets you restrict a search to only retrieve 2D or 3D videos.
+    Allowed values
+      2d - Restrict search results to exclude 3D videos.
+      3d - Restrict search results to only include 3D videos.
+      any - Include both 3D and non-3D videos in returned results. This is the default value.
+  videoLicense: string, The videoLicense parameter filters search results to only include videos with a particular license. YouTube lets video uploaders choose to attach either the Creative Commons license or the standard YouTube license to each of their videos.
+    Allowed values
+      any - Return all videos, regardless of which license they have, that match the query parameters.
+      creativeCommon - Only return videos that have a Creative Commons license. Users can reuse videos with this license in other videos that they create. Learn more.
+      youtube - Only return videos that have the standard YouTube license.
+  maxResults: integer, The maxResults parameter specifies the maximum number of items that should be returned in the result set.
+  videoType: string, The videoType parameter lets you restrict a search to a particular type of videos.
+    Allowed values
+      any - Return all videos.
+      episode - Only retrieve episodes of shows.
+      movie - Only retrieve movies.
+  videoDefinition: string, The videoDefinition parameter lets you restrict a search to only include either high definition (HD) or standard definition (SD) videos. HD videos are available for playback in at least 720p, though higher resolutions, like 1080p, might also be available.
+    Allowed values
+      any - Return all videos, regardless of their resolution.
+      high - Only retrieve HD videos.
+      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.
+  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.
+      long - Only include videos longer than 20 minutes.
+      medium - Only include videos that are between four and 20 minutes long (inclusive).
+      short - Only include videos that are less than four minutes long.
+  forMine: boolean, The forMine parameter restricts the search to only retrieve videos owned by the authenticated user. If you set this parameter to true, then the type parameter's value must also be set to video.
+  q: string, The q parameter specifies the query term to search for.
+  safeSearch: string, The safeSearch parameter indicates whether the search results should include restricted content as well as standard content.
+    Allowed values
+      moderate - YouTube will filter some content from search results and, at the least, will filter content that is restricted in your locale. Based on their content, search results could be removed from search results or demoted in search results. This is the default parameter value.
+      none - YouTube will not filter the search result set.
+      strict - YouTube will try to exclude all restricted content from the search result set. Based on their content, search results could be removed from search results or demoted in search results.
+  videoEmbeddable: string, The videoEmbeddable parameter lets you to restrict a search to only videos that can be embedded into a webpage.
+    Allowed values
+      any - Return all videos, embeddable or not.
+      true - Only retrieve embeddable videos.
+  videoCategoryId: string, The videoCategoryId parameter filters video search results based on their category.
+  order: string, The order parameter specifies the method that will be used to order resources in the API response.
+    Allowed values
+      date - Resources are sorted in reverse chronological order based on the date they were created.
+      rating - Resources are sorted from highest to lowest rating.
+      relevance - Resources are sorted based on their relevance to the search query. This is the default value for this parameter.
+      title - Resources are sorted alphabetically by title.
+      videoCount - Channels are sorted in descending order of their number of uploaded videos.
+      viewCount - Resources are sorted from highest to lowest number of views.
+
+Returns:
+  An object of the form:
+
+    {
+    "eventId": "A String", # Serialized EventId of the request which produced this response.
+    "nextPageToken": "A String", # The token that can be used as the value of the pageToken parameter to retrieve the next page in the result set.
+    "kind": "youtube#searchListResponse", # Identifies what kind of resource this is. Value: the fixed string "youtube#searchListResponse".
+    "visitorId": "A String", # The visitorId identifies the visitor.
+    "items": [ # A list of results that match the search criteria.
+      { # A search result contains information about a YouTube video, channel, or playlist that matches the search parameters specified in an API request. While a search result points to a uniquely identifiable resource, like a video, it does not have its own persistent data.
+        "snippet": { # Basic details about a search result, including title, description and thumbnails of the item referenced by the search result. # The snippet object contains basic details about a search result, such as its title or description. For example, if the search result is a video, then the title will be the video's title and the description will be the video's description.
+          "thumbnails": { # Internal representation of thumbnails for a YouTube resource. # A map of thumbnail images associated with the search result. 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.
+              "width": 42, # (Optional) Width of the thumbnail image.
+              "height": 42, # (Optional) Height of the thumbnail image.
+            },
+            "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+              "url": "A String", # The thumbnail image's URL.
+              "width": 42, # (Optional) Width of the thumbnail image.
+              "height": 42, # (Optional) Height of the thumbnail image.
+            },
+            "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+              "url": "A String", # The thumbnail image's URL.
+              "width": 42, # (Optional) Width of the thumbnail image.
+              "height": 42, # (Optional) Height of the thumbnail image.
+            },
+            "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+              "url": "A String", # The thumbnail image's URL.
+              "width": 42, # (Optional) Width of the thumbnail image.
+              "height": 42, # (Optional) Height of the thumbnail image.
+            },
+            "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+              "url": "A String", # The thumbnail image's URL.
+              "width": 42, # (Optional) Width of the thumbnail image.
+              "height": 42, # (Optional) Height of the thumbnail image.
+            },
+          },
+          "title": "A String", # The title of the search result.
+          "channelId": "A String", # The value that YouTube uses to uniquely identify the channel that published the resource that the search result identifies.
+          "publishedAt": "A String", # The creation date and time of the resource that the search result identifies. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+          "liveBroadcastContent": "A String", # It indicates if the resource (video or channel) has upcoming/active live broadcast content. Or it's "none" if there is not any upcoming/active live broadcasts.
+          "channelTitle": "A String", # The title of the channel that published the resource that the search result identifies.
+          "description": "A String", # A description of the search result.
+        },
+        "kind": "youtube#searchResult", # Identifies what kind of resource this is. Value: the fixed string "youtube#searchResult".
+        "etag": "A String", # Etag of this resource.
+        "id": { # A resource id is a generic reference that points to another YouTube resource. # The id object contains information that can be used to uniquely identify the resource that matches the search request.
+          "kind": "A String", # The type of the API resource.
+          "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+          "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+          "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+        },
+      },
+    ],
+    "tokenPagination": { # Stub token pagination template to suppress results.
+    },
+    "etag": "A String", # Etag of this resource.
+    "prevPageToken": "A String", # The token that can be used as the value of the pageToken parameter to retrieve the previous page in the result set.
+    "pageInfo": { # Paging details for lists of resources, including total number of items available and number of resources returned in a single page.
+      "totalResults": 42, # The total number of results in the result set.
+      "resultsPerPage": 42, # The number of results included in the API response.
+    },
+  }</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/youtube_v3.subscriptions.html b/docs/dyn/youtube_v3.subscriptions.html
new file mode 100644
index 0000000..0bda050
--- /dev/null
+++ b/docs/dyn/youtube_v3.subscriptions.html
@@ -0,0 +1,427 @@
+<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="youtube_v3.html">YouTube Data API</a> . <a href="youtube_v3.subscriptions.html">subscriptions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(id)</a></code></p>
+<p class="firstline">Deletes a subscription.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(part=None, body)</a></code></p>
+<p class="firstline">Adds a subscription for the authenticated user's channel.</p>
+<p class="toc_element">
+  <code><a href="#list">list(part=None, channelId=None, mine=None, mySubscribers=None, id=None, onBehalfOfContentOwner=None, pageToken=None, forChannelId=None, onBehalfOfContentOwnerChannel=None, maxResults=None, order=None)</a></code></p>
+<p class="firstline">Returns subscription resources that match the API request criteria.</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(id)</code>
+  <pre>Deletes a subscription.
+
+Args:
+  id: string, The id parameter specifies the YouTube subscription ID for the resource that is being deleted. In a subscription resource, the id property specifies the YouTube subscription ID. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(part=None, body)</code>
+  <pre>Adds a subscription for the authenticated user's channel.
+
+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 and contentDetails. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A subscription resource contains information about a YouTube user subscription. A subscription notifies a user when new videos are added to a channel or when another user takes one of several actions on YouTube, such as uploading a video, rating a video, or commenting on a video.
+    "kind": "youtube#subscription", # Identifies what kind of resource this is. Value: the fixed string "youtube#subscription".
+    "contentDetails": { # Details about the content to witch a subscription refers. # The contentDetails object contains basic statistics about the subscription.
+      "newItemCount": 42, # The number of new items in the subscription since its content was last read.
+      "activityType": "A String", # The type of activity this subscription is for (only uploads, everything).
+      "totalItemCount": 42, # The approximate number of items that the subscription points to.
+    },
+    "snippet": { # Basic details about a subscription, including title, description and thumbnails of the subscribed item. # The snippet object contains basic details about the subscription, including its title and the channel that the user subscribed to.
+      "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.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+      },
+      "title": "A String", # The subscription's title.
+      "resourceId": { # A resource id is a generic reference that points to another YouTube resource. # The id object contains information about the channel that the user subscribed to.
+        "kind": "A String", # The type of the API resource.
+        "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+        "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+        "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+      },
+      "channelId": "A String", # The ID that YouTube uses to uniquely identify the subscriber's channel.
+      "publishedAt": "A String", # The date and time that the subscription was created. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+      "channelTitle": "A String", # Channel title for the channel that the subscription belongs to.
+      "description": "A String", # The subscription's details.
+    },
+    "etag": "A String", # Etag of this resource.
+    "subscriberSnippet": { # Basic details about a subscription's subscriber including title, description, channel ID and thumbnails. # The subscriberSnippet object contains basic details about the sbuscriber.
+      "title": "A String", # The title of the subscriber.
+      "channelId": "A String", # The channel ID of the subscriber.
+      "description": "A String", # The description of the subscriber.
+      "thumbnails": { # Internal representation of thumbnails for a YouTube resource. # Thumbnails for this subscriber.
+        "default": { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+      },
+    },
+    "id": "A String", # The ID that YouTube uses to uniquely identify the subscription.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A subscription resource contains information about a YouTube user subscription. A subscription notifies a user when new videos are added to a channel or when another user takes one of several actions on YouTube, such as uploading a video, rating a video, or commenting on a video.
+      "kind": "youtube#subscription", # Identifies what kind of resource this is. Value: the fixed string "youtube#subscription".
+      "contentDetails": { # Details about the content to witch a subscription refers. # The contentDetails object contains basic statistics about the subscription.
+        "newItemCount": 42, # The number of new items in the subscription since its content was last read.
+        "activityType": "A String", # The type of activity this subscription is for (only uploads, everything).
+        "totalItemCount": 42, # The approximate number of items that the subscription points to.
+      },
+      "snippet": { # Basic details about a subscription, including title, description and thumbnails of the subscribed item. # The snippet object contains basic details about the subscription, including its title and the channel that the user subscribed to.
+        "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.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+        },
+        "title": "A String", # The subscription's title.
+        "resourceId": { # A resource id is a generic reference that points to another YouTube resource. # The id object contains information about the channel that the user subscribed to.
+          "kind": "A String", # The type of the API resource.
+          "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+          "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+          "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+        },
+        "channelId": "A String", # The ID that YouTube uses to uniquely identify the subscriber's channel.
+        "publishedAt": "A String", # The date and time that the subscription was created. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+        "channelTitle": "A String", # Channel title for the channel that the subscription belongs to.
+        "description": "A String", # The subscription's details.
+      },
+      "etag": "A String", # Etag of this resource.
+      "subscriberSnippet": { # Basic details about a subscription's subscriber including title, description, channel ID and thumbnails. # The subscriberSnippet object contains basic details about the sbuscriber.
+        "title": "A String", # The title of the subscriber.
+        "channelId": "A String", # The channel ID of the subscriber.
+        "description": "A String", # The description of the subscriber.
+        "thumbnails": { # Internal representation of thumbnails for a YouTube resource. # Thumbnails for this subscriber.
+          "default": { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+        },
+      },
+      "id": "A String", # The ID that YouTube uses to uniquely identify the subscription.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(part=None, channelId=None, mine=None, mySubscribers=None, id=None, onBehalfOfContentOwner=None, pageToken=None, forChannelId=None, onBehalfOfContentOwnerChannel=None, maxResults=None, order=None)</code>
+  <pre>Returns subscription resources that match the API request criteria.
+
+Args:
+  part: string, The part parameter specifies a comma-separated list of one or more subscription resource properties that the API response will include. The part names that you can include in the parameter value are id, snippet, and contentDetails.
+
+If the parameter identifies a property that contains child properties, the child properties will be included in the response. For example, in a subscription resource, the snippet property contains other properties, such as a display title for the subscription. If you set part=snippet, the API response will also contain all of those nested properties. (required)
+  channelId: string, The channelId parameter specifies a YouTube channel ID. The API will only return that channel's subscriptions.
+  mine: boolean, Set this parameter's value to true to retrieve a feed of the authenticated user's subscriptions.
+  mySubscribers: boolean, Set this parameter's value to true to retrieve a feed of the subscribers of the authenticated user.
+  id: string, The id parameter specifies a comma-separated list of the YouTube subscription ID(s) for the resource(s) that are being retrieved. In a subscription resource, the id property specifies the YouTube subscription 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.
+  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.
+  forChannelId: string, The forChannelId parameter specifies a comma-separated list of channel IDs. The API response will then only contain subscriptions matching those channels.
+  onBehalfOfContentOwnerChannel: string, This parameter can only be used in a properly authorized request. Note: This parameter is intended exclusively for YouTube content partners.
+
+The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel ID of the channel to which a video is being added. This parameter is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it can only be used in conjunction with that parameter. In addition, the request must be authorized using a CMS account that is linked to the content owner that the onBehalfOfContentOwner parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value specifies must be linked to the content owner that the onBehalfOfContentOwner parameter specifies.
+
+This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and perform actions on behalf of the channel specified in the parameter value, without having to provide authentication credentials for each separate channel.
+  maxResults: integer, The maxResults parameter specifies the maximum number of items that should be returned in the result set.
+  order: string, The order parameter specifies the method that will be used to sort resources in the API response.
+    Allowed values
+      alphabetical - Sort alphabetically.
+      relevance - Sort by relevance.
+      unread - Sort by order of activity.
+
+Returns:
+  An object of the form:
+
+    {
+    "eventId": "A String", # Serialized EventId of the request which produced this response.
+    "nextPageToken": "A String", # The token that can be used as the value of the pageToken parameter to retrieve the next page in the result set.
+    "kind": "youtube#subscriptionListResponse", # Identifies what kind of resource this is. Value: the fixed string "youtube#subscriptionListResponse".
+    "visitorId": "A String", # The visitorId identifies the visitor.
+    "items": [ # A list of subscriptions that match the request criteria.
+      { # A subscription resource contains information about a YouTube user subscription. A subscription notifies a user when new videos are added to a channel or when another user takes one of several actions on YouTube, such as uploading a video, rating a video, or commenting on a video.
+          "kind": "youtube#subscription", # Identifies what kind of resource this is. Value: the fixed string "youtube#subscription".
+          "contentDetails": { # Details about the content to witch a subscription refers. # The contentDetails object contains basic statistics about the subscription.
+            "newItemCount": 42, # The number of new items in the subscription since its content was last read.
+            "activityType": "A String", # The type of activity this subscription is for (only uploads, everything).
+            "totalItemCount": 42, # The approximate number of items that the subscription points to.
+          },
+          "snippet": { # Basic details about a subscription, including title, description and thumbnails of the subscribed item. # The snippet object contains basic details about the subscription, including its title and the channel that the user subscribed to.
+            "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.
+                "width": 42, # (Optional) Width of the thumbnail image.
+                "height": 42, # (Optional) Height of the thumbnail image.
+              },
+              "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+                "url": "A String", # The thumbnail image's URL.
+                "width": 42, # (Optional) Width of the thumbnail image.
+                "height": 42, # (Optional) Height of the thumbnail image.
+              },
+              "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+                "url": "A String", # The thumbnail image's URL.
+                "width": 42, # (Optional) Width of the thumbnail image.
+                "height": 42, # (Optional) Height of the thumbnail image.
+              },
+              "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+                "url": "A String", # The thumbnail image's URL.
+                "width": 42, # (Optional) Width of the thumbnail image.
+                "height": 42, # (Optional) Height of the thumbnail image.
+              },
+              "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+                "url": "A String", # The thumbnail image's URL.
+                "width": 42, # (Optional) Width of the thumbnail image.
+                "height": 42, # (Optional) Height of the thumbnail image.
+              },
+            },
+            "title": "A String", # The subscription's title.
+            "resourceId": { # A resource id is a generic reference that points to another YouTube resource. # The id object contains information about the channel that the user subscribed to.
+              "kind": "A String", # The type of the API resource.
+              "channelId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a channel. This property is only present if the resourceId.kind value is youtube#channel.
+              "playlistId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a playlist. This property is only present if the resourceId.kind value is youtube#playlist.
+              "videoId": "A String", # The ID that YouTube uses to uniquely identify the referred resource, if that resource is a video. This property is only present if the resourceId.kind value is youtube#video.
+            },
+            "channelId": "A String", # The ID that YouTube uses to uniquely identify the subscriber's channel.
+            "publishedAt": "A String", # The date and time that the subscription was created. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+            "channelTitle": "A String", # Channel title for the channel that the subscription belongs to.
+            "description": "A String", # The subscription's details.
+          },
+          "etag": "A String", # Etag of this resource.
+          "subscriberSnippet": { # Basic details about a subscription's subscriber including title, description, channel ID and thumbnails. # The subscriberSnippet object contains basic details about the sbuscriber.
+            "title": "A String", # The title of the subscriber.
+            "channelId": "A String", # The channel ID of the subscriber.
+            "description": "A String", # The description of the subscriber.
+            "thumbnails": { # Internal representation of thumbnails for a YouTube resource. # Thumbnails for this subscriber.
+              "default": { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
+                "url": "A String", # The thumbnail image's URL.
+                "width": 42, # (Optional) Width of the thumbnail image.
+                "height": 42, # (Optional) Height of the thumbnail image.
+              },
+              "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+                "url": "A String", # The thumbnail image's URL.
+                "width": 42, # (Optional) Width of the thumbnail image.
+                "height": 42, # (Optional) Height of the thumbnail image.
+              },
+              "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+                "url": "A String", # The thumbnail image's URL.
+                "width": 42, # (Optional) Width of the thumbnail image.
+                "height": 42, # (Optional) Height of the thumbnail image.
+              },
+              "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+                "url": "A String", # The thumbnail image's URL.
+                "width": 42, # (Optional) Width of the thumbnail image.
+                "height": 42, # (Optional) Height of the thumbnail image.
+              },
+              "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+                "url": "A String", # The thumbnail image's URL.
+                "width": 42, # (Optional) Width of the thumbnail image.
+                "height": 42, # (Optional) Height of the thumbnail image.
+              },
+            },
+          },
+          "id": "A String", # The ID that YouTube uses to uniquely identify the subscription.
+        },
+    ],
+    "tokenPagination": { # Stub token pagination template to suppress results.
+    },
+    "etag": "A String", # Etag of this resource.
+    "prevPageToken": "A String", # The token that can be used as the value of the pageToken parameter to retrieve the previous page in the result set.
+    "pageInfo": { # Paging details for lists of resources, including total number of items available and number of resources returned in a single page.
+      "totalResults": 42, # The total number of results in the result set.
+      "resultsPerPage": 42, # The number of results included in the API response.
+    },
+  }</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/youtube_v3.thumbnails.html b/docs/dyn/youtube_v3.thumbnails.html
new file mode 100644
index 0000000..24d40ed
--- /dev/null
+++ b/docs/dyn/youtube_v3.thumbnails.html
@@ -0,0 +1,130 @@
+<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="youtube_v3.html">YouTube Data API</a> . <a href="youtube_v3.thumbnails.html">thumbnails</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#set">set(videoId, media_body=None, onBehalfOfContentOwner=None)</a></code></p>
+<p class="firstline">Uploads a custom video thumbnail to YouTube and sets it for a video.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="set">set(videoId, media_body=None, onBehalfOfContentOwner=None)</code>
+  <pre>Uploads a custom video thumbnail to YouTube and sets it for a video.
+
+Args:
+  videoId: string, The videoId parameter specifies a YouTube video ID for which the custom video thumbnail is being provided. (required)
+  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
+  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.
+
+Returns:
+  An object of the form:
+
+    {
+    "eventId": "A String", # Serialized EventId of the request which produced this response.
+    "items": [ # A list of thumbnails.
+      { # Internal representation of thumbnails for a YouTube resource.
+        "default": { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+      },
+    ],
+    "kind": "youtube#thumbnailSetResponse", # Identifies what kind of resource this is. Value: the fixed string "youtube#thumbnailSetResponse".
+    "etag": "A String", # Etag of this resource.
+    "visitorId": "A String", # The visitorId identifies the visitor.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/youtube_v3.videoCategories.html b/docs/dyn/youtube_v3.videoCategories.html
new file mode 100644
index 0000000..9d682b3
--- /dev/null
+++ b/docs/dyn/youtube_v3.videoCategories.html
@@ -0,0 +1,122 @@
+<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="youtube_v3.html">YouTube Data API</a> . <a href="youtube_v3.videoCategories.html">videoCategories</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(part, regionCode=None, hl=None, id=None)</a></code></p>
+<p class="firstline">Returns a list of categories that can be associated with YouTube videos.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(part, regionCode=None, hl=None, id=None)</code>
+  <pre>Returns a list of categories that can be associated with YouTube videos.
+
+Args:
+  part: string, The part parameter specifies the videoCategory resource parts that the API response will include. Supported values are id and snippet. (required)
+  regionCode: string, The regionCode parameter instructs the API to return the list of video categories available in the specified country. The parameter value is an ISO 3166-1 alpha-2 country code.
+  hl: string, The hl parameter specifies the language that should be used for text values in the API response.
+  id: string, The id parameter specifies a comma-separated list of video category IDs for the resources that you are retrieving.
+
+Returns:
+  An object of the form:
+
+    {
+    "eventId": "A String", # Serialized EventId of the request which produced this response.
+    "nextPageToken": "A String", # The token that can be used as the value of the pageToken parameter to retrieve the next page in the result set.
+    "kind": "youtube#videoCategoryListResponse", # Identifies what kind of resource this is. Value: the fixed string "youtube#videoCategoryListResponse".
+    "visitorId": "A String", # The visitorId identifies the visitor.
+    "items": [ # A list of video categories that can be associated with YouTube videos. In this map, the video category ID is the map key, and its value is the corresponding videoCategory resource.
+      { # A videoCategory resource identifies a category that has been or could be associated with uploaded videos.
+        "snippet": { # Basic details about a video category, such as its localized title. # The snippet object contains basic details about the video category, including its title.
+          "assignable": True or False,
+          "channelId": "UCBR8-60-B28hp2BmDPdntcQ", # The YouTube channel that created the video category.
+          "title": "A String", # The video category's title.
+        },
+        "kind": "youtube#videoCategory", # Identifies what kind of resource this is. Value: the fixed string "youtube#videoCategory".
+        "etag": "A String", # Etag of this resource.
+        "id": "A String", # The ID that YouTube uses to uniquely identify the video category.
+      },
+    ],
+    "tokenPagination": { # Stub token pagination template to suppress results.
+    },
+    "etag": "A String", # Etag of this resource.
+    "prevPageToken": "A String", # The token that can be used as the value of the pageToken parameter to retrieve the previous page in the result set.
+    "pageInfo": { # Paging details for lists of resources, including total number of items available and number of resources returned in a single page.
+      "totalResults": 42, # The total number of results in the result set.
+      "resultsPerPage": 42, # The number of results included in the API response.
+    },
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/youtube_v3.videos.html b/docs/dyn/youtube_v3.videos.html
new file mode 100644
index 0000000..a4364e8
--- /dev/null
+++ b/docs/dyn/youtube_v3.videos.html
@@ -0,0 +1,1442 @@
+<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="youtube_v3.html">YouTube Data API</a> . <a href="youtube_v3.videos.html">videos</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 YouTube video.</p>
+<p class="toc_element">
+  <code><a href="#getRating">getRating(id, onBehalfOfContentOwner=None)</a></code></p>
+<p class="firstline">Retrieves the ratings that the authorized user gave to a list of specified videos.</p>
+<p class="toc_element">
+  <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>
+<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>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#rate">rate(id, rating, onBehalfOfContentOwner=None)</a></code></p>
+<p class="firstline">Add a like or dislike rating to a video or remove a rating from a video.</p>
+<p class="toc_element">
+  <code><a href="#update">update(part=None, body, onBehalfOfContentOwner=None)</a></code></p>
+<p class="firstline">Updates a video's metadata.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(id, onBehalfOfContentOwner=None)</code>
+  <pre>Deletes a YouTube video.
+
+Args:
+  id: string, The id parameter specifies the YouTube video ID for the resource that is being deleted. In a video resource, the id property specifies the video's 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 actual 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="getRating">getRating(id, onBehalfOfContentOwner=None)</code>
+  <pre>Retrieves the ratings that the authorized user gave to a list of specified videos.
+
+Args:
+  id: string, The id parameter specifies a comma-separated list of the YouTube video ID(s) for the resource(s) for which you are retrieving rating data. In a video resource, the id property specifies the video's 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.
+
+Returns:
+  An object of the form:
+
+    {
+    "items": [ # A list of ratings that match the request criteria.
+      {
+        "rating": "A String",
+        "videoId": "A String",
+      },
+    ],
+    "kind": "youtube#videoGetRatingResponse", # Identifies what kind of resource this is. Value: the fixed string "youtube#videoGetRatingResponse".
+    "etag": "A String", # Etag of this resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(part=None, body=None, media_body=None, onBehalfOfContentOwner=None, stabilize=None, onBehalfOfContentOwnerChannel=None, notifySubscribers=None, autoLevels=None)</code>
+  <pre>Uploads a video to YouTube and optionally sets the video's metadata.
+
+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)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # A video resource represents a YouTube video.
+    "liveStreamingDetails": { # Details about the live streaming metadata. # The liveStreamingDetails object contains metadata about a live video broadcast. The object will only be present in a video resource if the video is an upcoming, live, or completed live broadcast.
+      "scheduledEndTime": "A String", # The time that the broadcast is scheduled to end. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. If the value is empty or the property is not present, then the broadcast is scheduled to continue indefinitely.
+      "concurrentViewers": "A String", # The number of viewers currently watching the broadcast. The property and its value will be present if the broadcast has current viewers and the broadcast owner has not hidden the viewcount for the video. Note that YouTube stops tracking the number of concurrent viewers for a broadcast when the broadcast ends. So, this property would not identify the number of viewers watching an archived video of a live broadcast that already ended.
+      "actualStartTime": "A String", # The time that the broadcast actually started. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. This value will not be available until the broadcast begins.
+      "actualEndTime": "A String", # The time that the broadcast actually ended. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. This value will not be available until the broadcast is over.
+      "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.
+      "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.
+      "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.
+      "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.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+      },
+    },
+    "kind": "youtube#video", # Identifies what kind of resource this is. Value: the fixed string "youtube#video".
+    "statistics": { # Statistics about the video, such as the number of times the video was viewed or liked. # The statistics object contains statistics about the video.
+      "commentCount": "A String", # The number of comments for the video.
+      "viewCount": "A String", # The number of times the video has been viewed.
+      "favoriteCount": "A String", # The number of users who currently have the video marked as a favorite video.
+      "dislikeCount": "A String", # The number of users who have indicated that they disliked the video by giving it a negative rating.
+      "likeCount": "A String", # The number of users who have indicated that they liked the video by giving it a positive rating.
+    },
+    "topicDetails": { # Freebase topic information related to the video. # The topicDetails object encapsulates information about Freebase topics associated with the video.
+      "topicIds": [ # A list of Freebase topic IDs that are centrally associated with the video. These are topics that are centrally featured in the video, and it can be said that the video is mainly about each of these. You can retrieve information about each topic using the Freebase Topic API.
+        "A String",
+      ],
+      "relevantTopicIds": [ # Similar to topic_id, except that these topics are merely relevant to the video. These are topics that may be mentioned in, or appear in the video. You can retrieve information about each topic using Freebase Topic API.
+        "A String",
+      ],
+    },
+    "monetizationDetails": { # Details about monetization of a YouTube Video. # The monetizationDetails object encapsulates information about the monetization status of the video.
+      "access": { # Rights management policy for YouTube resources. # The value of access indicates whether the video can be monetized or not.
+        "exception": [ # A list of region codes that identify countries where the default policy do not apply.
+          "A String",
+        ],
+        "allowed": True or False, # The value of allowed indicates whether the access to the policy is allowed or denied by default.
+      },
+    },
+    "contentDetails": { # Details about the content of a YouTube Video. # The contentDetails object contains information about the video content, including the length of the video and its aspect ratio.
+      "definition": "A String", # The value of definition indicates whether the video is available in high definition or only in standard definition.
+      "countryRestriction": { # Rights management policy for YouTube resources. # The countryRestriction object contains information about the countries where a video is (or is not) viewable.
+        "exception": [ # A list of region codes that identify countries where the default policy do not apply.
+          "A String",
+        ],
+        "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.
+        "ytRating": "A String", # Internal YouTube rating.
+        "catvfrRating": "A String", # Rating system for French Canadian TV - Regie du cinema
+        "tvpgRating": "A String", # TV Parental Guidelines rating of the content.
+        "cbfcRating": "A String", # Rating system in India - Central Board of Film Certification
+        "acbRating": "A String", # Rating system in Australia - Australian Classification Board
+        "fskRating": "A String", # Rating system in Germany - Voluntary Self Regulation of the Movie Industry
+        "eirinRating": "A String", # Rating system in Japan - Eiga Rinri Kanri Iinkai
+        "bbfcRating": "A String", # British Board of Film Classification
+        "russiaRating": "A String", # Rating system in Russia
+        "kmrbRating": "A String", # Rating system in South Korea - Korea Media Rating Board
+        "mpaaRating": "A String", # Motion Picture Association of America rating for the content.
+        "icaaRating": "A String", # Rating system in Spain - Instituto de Cinematografia y de las Artes Audiovisuales
+        "fmocRating": "A String", # Rating system in France - French Minister of Culture
+        "chvrsRating": "A String", # Canadian Home Video Rating System
+        "rtcRating": "A String", # Rating system in Mexico - General Directorate of Radio, Television and Cinematography
+        "catvRating": "A String", # Rating system for Canadian TV - Canadian TV Classification System
+        "djctqRating": "A String", # Rating system in Brazil - Department of Justice, Rating, Titles and Qualification
+        "mibacRating": "A String", # Rating system in Italy - Ministero dei Beni e delle Attivita Culturali e del Turismo
+        "oflcRating": "A String", # Rating system in New Zealand - Office of Film and Literature Classification
+      },
+      "caption": "A String", # The value of captions indicates whether the video has captions or not.
+      "regionRestriction": { # DEPRECATED Region restriction of the video. # The regionRestriction object contains information about the countries where a video is (or is not) viewable. The object will contain either the contentDetails.regionRestriction.allowed property or the contentDetails.regionRestriction.blocked property.
+        "blocked": [ # A list of region codes that identify countries where the video is blocked. If this property is present and a country is not listed in its value, then the video is viewable in that country. If this property is present and contains an empty list, the video is viewable in all countries.
+          "A String",
+        ],
+        "allowed": [ # A list of region codes that identify countries where the video is viewable. If this property is present and a country is not listed in its value, then the video is blocked from appearing in that country. If this property is present and contains an empty list, the video is blocked in all countries.
+          "A String",
+        ],
+      },
+      "duration": "A String", # The length of the video. The tag value is an ISO 8601 duration in the format PT#M#S, in which the letters PT indicate that the value specifies a period of time, and the letters M and S refer to length in minutes and seconds, respectively. The # characters preceding the M and S letters are both integers that specify the number of minutes (or seconds) of the video. For example, a value of PT15M51S indicates that the video is 15 minutes and 51 seconds long.
+      "licensedContent": True or False, # The value of is_license_content indicates whether the video is licensed content.
+      "dimension": "A String", # The value of dimension indicates whether the video is available in 3D or in 2D.
+    },
+    "ageGating": { # Age restriction details related to a video.
+      "restricted": True or False, # Age-restricted trailers. For redband trailers and adult-rated video-games. Only users aged 18+ can view the content. The the field is true the content is restricted to viewers aged 18+. Otherwise The field won't be present.
+      "alcoholContent": True or False, # Indicates whether or not the video has alcoholic beverage content. Only users of legal purchasing age in a particular country, as identified by ICAP, can view the content.
+      "videoGameRating": "A String", # Video game rating, if any.
+    },
+    "fileDetails": { # Describes original video file properties, including technical details about audio and video streams, but also metadata information like content length, digitization time, or geotagging information. # The fileDetails object encapsulates information about the video file that was uploaded to YouTube, including the file's resolution, duration, audio and video codecs, stream bitrates, and more. This data can only be retrieved by the video owner.
+      "bitrateBps": "A String", # The uploaded video file's combined (video and audio) bitrate in bits per second.
+      "container": "A String", # The uploaded video file's container format.
+      "recordingLocation": { # Geographical coordinates of a point, in WGS84. # Geographic coordinates that identify the place where the uploaded video was recorded. Coordinates are defined using WGS 84.
+        "latitude": 3.14, # Latitude in degrees.
+        "altitude": 3.14, # Altitude above the reference ellipsoid, in meters.
+        "longitude": 3.14, # Longitude in degrees.
+      },
+      "fileType": "A String", # The uploaded file's type as detected by YouTube's video processing engine. Currently, YouTube only processes video files, but this field is present whether a video file or another type of file was uploaded.
+      "creationTime": "A String", # The date and time when the uploaded video file was created. The value is specified in ISO 8601 format. Currently, the following ISO 8601 formats are supported:
+          # - Date only: YYYY-MM-DD
+          # - Naive time: YYYY-MM-DDTHH:MM:SS
+          # - Time with timezone: YYYY-MM-DDTHH:MM:SS+HH:MM
+      "durationMs": "A String", # The length of the uploaded video in milliseconds.
+      "fileName": "A String", # The uploaded file's name. This field is present whether a video file or another type of file was uploaded.
+      "fileSize": "A String", # The uploaded file's size in bytes. This field is present whether a video file or another type of file was uploaded.
+      "videoStreams": [ # A list of video streams contained in the uploaded video file. Each item in the list contains detailed metadata about a video stream.
+        { # Information about a video stream.
+          "bitrateBps": "A String", # The video stream's bitrate, in bits per second.
+          "vendor": "A String", # A value that uniquely identifies a video vendor. Typically, the value is a four-letter vendor code.
+          "codec": "A String", # The video codec that the stream uses.
+          "widthPixels": 42, # The encoded video content's width in pixels. You can calculate the video's encoding aspect ratio as width_pixels / height_pixels.
+          "heightPixels": 42, # The encoded video content's height in pixels.
+          "aspectRatio": 3.14, # The video content's display aspect ratio, which specifies the aspect ratio in which the video should be displayed.
+          "rotation": "A String", # The amount that YouTube needs to rotate the original source content to properly display the video.
+          "frameRateFps": 3.14, # The video stream's frame rate, in frames per second.
+        },
+      ],
+      "audioStreams": [ # A list of audio streams contained in the uploaded video file. Each item in the list contains detailed metadata about an audio stream.
+        { # Information about an audio stream.
+          "bitrateBps": "A String", # The audio stream's bitrate, in bits per second.
+          "codec": "A String", # The audio codec that the stream uses.
+          "vendor": "A String", # A value that uniquely identifies a video vendor. Typically, the value is a four-letter vendor code.
+          "channelCount": 42, # The number of audio channels that the stream contains.
+        },
+      ],
+    },
+    "processingDetails": { # Describes processing status and progress and availability of some other Video resource parts. # The processingProgress object encapsulates information about YouTube's progress in processing the uploaded video file. The properties in the object identify the current processing status and an estimate of the time remaining until YouTube finishes processing the video. This part also indicates whether different types of data or content, such as file details or thumbnail images, are available for the video.
+        # 
+        # The processingProgress object is designed to be polled so that the video uploaded can track the progress that YouTube has made in processing the uploaded video file. This data can only be retrieved by the video owner.
+      "fileDetailsAvailability": "A String", # This value indicates whether file details are available for the uploaded video. You can retrieve a video's file details by requesting the fileDetails part in your videos.list() request.
+      "editorSuggestionsAvailability": "A String", # This value indicates whether video editing suggestions, which might improve video quality or the playback experience, are available for the video. You can retrieve these suggestions by requesting the suggestions part in your videos.list() request.
+      "processingStatus": "A String", # The video's processing status. This value indicates whether YouTube was able to process the video or if the video is still being processed.
+      "processingIssuesAvailability": "A String", # This value indicates whether the video processing engine has generated suggestions that might improve YouTube's ability to process the the video, warnings that explain video processing problems, or errors that cause video processing problems. You can retrieve these suggestions by requesting the suggestions part in your videos.list() request.
+      "processingFailureReason": "A String", # The reason that YouTube failed to process the video. This property will only have a value if the processingStatus property's value is failed.
+      "thumbnailsAvailability": "A String", # This value indicates whether thumbnail images have been generated for the video.
+      "processingProgress": { # Video processing progress and completion time estimate. # The processingProgress object contains information about the progress YouTube has made in processing the video. The values are really only relevant if the video's processing status is processing.
+        "timeLeftMs": "A String", # An estimate of the amount of time, in millseconds, that YouTube needs to finish processing the video.
+        "partsProcessed": "A String", # The number of parts of the video that YouTube has already processed. You can estimate the percentage of the video that YouTube has already processed by calculating:
+            # 100 * parts_processed / parts_total
+            #
+            # Note that since the estimated number of parts could increase without a corresponding increase in the number of parts that have already been processed, it is possible that the calculated progress could periodically decrease while YouTube processes a video.
+        "partsTotal": "A String", # An estimate of the total number of parts that need to be processed for the video. The number may be updated with more precise estimates while YouTube processes the video.
+      },
+      "tagSuggestionsAvailability": "A String", # This value indicates whether keyword (tag) suggestions are available for the video. Tags can be added to a video's metadata to make it easier for other users to find the video. You can retrieve these suggestions by requesting the suggestions part in your videos.list() request.
+    },
+    "player": { # Player to be used for a video playback. # The player object contains information that you would use to play the video in an embedded player.
+      "embedHtml": "A String", # An <iframe> tag that embeds a player that will play the video.
+    },
+    "etag": "A String", # Etag of this resource.
+    "status": { # Basic details about a video category, such as its localized title. # The status object contains information about the video's uploading, processing, and privacy statuses.
+      "license": "A String", # The video's license.
+      "embeddable": True or False, # This value indicates if the video can be embedded on another website.
+      "privacyStatus": "A String", # The video's privacy status.
+      "publishAt": "A String", # The date and time when the video is scheduled to publish. It can be set only if the privacy status of the video is private. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+      "publicStatsViewable": True or False, # This value indicates if the extended video statistics on the watch page can be viewed by everyone. Note that the view count, likes, etc will still be visible if this is disabled.
+      "uploadStatus": "A String", # The status of the uploaded video.
+      "rejectionReason": "A String", # This value explains why YouTube rejected an uploaded video. This property is only present if the uploadStatus property indicates that the upload was rejected.
+      "failureReason": "A String", # This value explains why a video failed to upload. This property is only present if the uploadStatus property indicates that the upload failed.
+    },
+    "projectDetails": { # Project specific details about the content of a YouTube Video. # The projectDetails object contains information about the project specific video metadata.
+      "tags": [ # A list of project tags associated with the video during the upload.
+        "A String",
+      ],
+    },
+    "recordingDetails": { # Recording information associated with the video. # The recordingDetails object encapsulates information about the location, date and address where the video was recorded.
+      "recordingDate": "A String", # The date and time when the video was recorded. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+      "locationDescription": "A String", # The text description of the location where the video was recorded.
+      "location": { # Geographical coordinates of a point, in WGS84. # The geolocation information associated with the video.
+        "latitude": 3.14, # Latitude in degrees.
+        "altitude": 3.14, # Altitude above the reference ellipsoid, in meters.
+        "longitude": 3.14, # Longitude in degrees.
+      },
+    },
+    "suggestions": { # Specifies suggestions on how to improve video content, including encoding hints, tag suggestions, and editor suggestions. # The suggestions object encapsulates suggestions that identify opportunities to improve the video quality or the metadata for the uploaded video. This data can only be retrieved by the video owner.
+      "processingErrors": [ # A list of errors that will prevent YouTube from successfully processing the uploaded video video. These errors indicate that, regardless of the video's current processing status, eventually, that status will almost certainly be failed.
+        "A String",
+      ],
+      "tagSuggestions": [ # A list of keyword tags that could be added to the video's metadata to increase the likelihood that users will locate your video when searching or browsing on YouTube.
+        { # A single tag suggestion with it's relevance information.
+          "categoryRestricts": [ # A set of video categories for which the tag is relevant. You can use this information to display appropriate tag suggestions based on the video category that the video uploader associates with the video. By default, tag suggestions are relevant for all categories if there are no restricts defined for the keyword.
+            "A String",
+          ],
+          "tag": "A String", # The keyword tag suggested for the video.
+        },
+      ],
+      "editorSuggestions": [ # A list of video editing operations that might improve the video quality or playback experience of the uploaded video.
+        "A String",
+      ],
+      "processingWarnings": [ # A list of reasons why YouTube may have difficulty transcoding the uploaded video or that might result in an erroneous transcoding. These warnings are generated before YouTube actually processes the uploaded video file. In addition, they identify issues that are unlikely to cause the video processing to fail but that might cause problems such as sync issues, video artifacts, or a missing audio track.
+        "A String",
+      ],
+      "processingHints": [ # A list of suggestions that may improve YouTube's ability to process the video.
+        "A String",
+      ],
+    },
+    "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.
+        {
+          "conversionUrl": "A String", # The url (without the schema) that the app shall send the ping to. It's at caller's descretion to decide which schema to use (http vs https) Example of a returned url: //googleads.g.doubleclick.net/pagead/ viewthroughconversion/962985656/?data=path%3DtHe_path%3Btype%3D like%3Butuid%3DGISQtTNGYqaYl4sKxoVvKA%3Bytvid%3DUrIaJUvIQDg&labe=default The caller must append biscotti authentication (ms param in case of mobile, for example) to this ping.
+          "context": "A String", # Defines the context of the ping.
+        },
+      ],
+    },
+  }
+
+  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
+  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.
+  stabilize: boolean, The stabilize parameter indicates whether YouTube should adjust the video to remove shaky camera motions.
+  onBehalfOfContentOwnerChannel: string, This parameter can only be used in a properly authorized request. Note: This parameter is intended exclusively for YouTube content partners.
+
+The onBehalfOfContentOwnerChannel parameter specifies the YouTube channel ID of the channel to which a video is being added. This parameter is required when a request specifies a value for the onBehalfOfContentOwner parameter, and it can only be used in conjunction with that parameter. In addition, the request must be authorized using a CMS account that is linked to the content owner that the onBehalfOfContentOwner parameter specifies. Finally, the channel that the onBehalfOfContentOwnerChannel parameter value specifies must be linked to the content owner that the onBehalfOfContentOwner parameter specifies.
+
+This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and perform actions on behalf of the channel specified in the parameter value, without having to provide authentication credentials for each separate channel.
+  notifySubscribers: boolean, The notifySubscribers parameter indicates whether YouTube should send notification to subscribers about the inserted video.
+  autoLevels: boolean, The autoLevels parameter indicates whether YouTube should automatically enhance the video's lighting and color.
+
+Returns:
+  An object of the form:
+
+    { # A video resource represents a YouTube video.
+      "liveStreamingDetails": { # Details about the live streaming metadata. # The liveStreamingDetails object contains metadata about a live video broadcast. The object will only be present in a video resource if the video is an upcoming, live, or completed live broadcast.
+        "scheduledEndTime": "A String", # The time that the broadcast is scheduled to end. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. If the value is empty or the property is not present, then the broadcast is scheduled to continue indefinitely.
+        "concurrentViewers": "A String", # The number of viewers currently watching the broadcast. The property and its value will be present if the broadcast has current viewers and the broadcast owner has not hidden the viewcount for the video. Note that YouTube stops tracking the number of concurrent viewers for a broadcast when the broadcast ends. So, this property would not identify the number of viewers watching an archived video of a live broadcast that already ended.
+        "actualStartTime": "A String", # The time that the broadcast actually started. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. This value will not be available until the broadcast begins.
+        "actualEndTime": "A String", # The time that the broadcast actually ended. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. This value will not be available until the broadcast is over.
+        "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.
+        "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.
+        "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.
+        "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.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+        },
+      },
+      "kind": "youtube#video", # Identifies what kind of resource this is. Value: the fixed string "youtube#video".
+      "statistics": { # Statistics about the video, such as the number of times the video was viewed or liked. # The statistics object contains statistics about the video.
+        "commentCount": "A String", # The number of comments for the video.
+        "viewCount": "A String", # The number of times the video has been viewed.
+        "favoriteCount": "A String", # The number of users who currently have the video marked as a favorite video.
+        "dislikeCount": "A String", # The number of users who have indicated that they disliked the video by giving it a negative rating.
+        "likeCount": "A String", # The number of users who have indicated that they liked the video by giving it a positive rating.
+      },
+      "topicDetails": { # Freebase topic information related to the video. # The topicDetails object encapsulates information about Freebase topics associated with the video.
+        "topicIds": [ # A list of Freebase topic IDs that are centrally associated with the video. These are topics that are centrally featured in the video, and it can be said that the video is mainly about each of these. You can retrieve information about each topic using the Freebase Topic API.
+          "A String",
+        ],
+        "relevantTopicIds": [ # Similar to topic_id, except that these topics are merely relevant to the video. These are topics that may be mentioned in, or appear in the video. You can retrieve information about each topic using Freebase Topic API.
+          "A String",
+        ],
+      },
+      "monetizationDetails": { # Details about monetization of a YouTube Video. # The monetizationDetails object encapsulates information about the monetization status of the video.
+        "access": { # Rights management policy for YouTube resources. # The value of access indicates whether the video can be monetized or not.
+          "exception": [ # A list of region codes that identify countries where the default policy do not apply.
+            "A String",
+          ],
+          "allowed": True or False, # The value of allowed indicates whether the access to the policy is allowed or denied by default.
+        },
+      },
+      "contentDetails": { # Details about the content of a YouTube Video. # The contentDetails object contains information about the video content, including the length of the video and its aspect ratio.
+        "definition": "A String", # The value of definition indicates whether the video is available in high definition or only in standard definition.
+        "countryRestriction": { # Rights management policy for YouTube resources. # The countryRestriction object contains information about the countries where a video is (or is not) viewable.
+          "exception": [ # A list of region codes that identify countries where the default policy do not apply.
+            "A String",
+          ],
+          "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.
+          "ytRating": "A String", # Internal YouTube rating.
+          "catvfrRating": "A String", # Rating system for French Canadian TV - Regie du cinema
+          "tvpgRating": "A String", # TV Parental Guidelines rating of the content.
+          "cbfcRating": "A String", # Rating system in India - Central Board of Film Certification
+          "acbRating": "A String", # Rating system in Australia - Australian Classification Board
+          "fskRating": "A String", # Rating system in Germany - Voluntary Self Regulation of the Movie Industry
+          "eirinRating": "A String", # Rating system in Japan - Eiga Rinri Kanri Iinkai
+          "bbfcRating": "A String", # British Board of Film Classification
+          "russiaRating": "A String", # Rating system in Russia
+          "kmrbRating": "A String", # Rating system in South Korea - Korea Media Rating Board
+          "mpaaRating": "A String", # Motion Picture Association of America rating for the content.
+          "icaaRating": "A String", # Rating system in Spain - Instituto de Cinematografia y de las Artes Audiovisuales
+          "fmocRating": "A String", # Rating system in France - French Minister of Culture
+          "chvrsRating": "A String", # Canadian Home Video Rating System
+          "rtcRating": "A String", # Rating system in Mexico - General Directorate of Radio, Television and Cinematography
+          "catvRating": "A String", # Rating system for Canadian TV - Canadian TV Classification System
+          "djctqRating": "A String", # Rating system in Brazil - Department of Justice, Rating, Titles and Qualification
+          "mibacRating": "A String", # Rating system in Italy - Ministero dei Beni e delle Attivita Culturali e del Turismo
+          "oflcRating": "A String", # Rating system in New Zealand - Office of Film and Literature Classification
+        },
+        "caption": "A String", # The value of captions indicates whether the video has captions or not.
+        "regionRestriction": { # DEPRECATED Region restriction of the video. # The regionRestriction object contains information about the countries where a video is (or is not) viewable. The object will contain either the contentDetails.regionRestriction.allowed property or the contentDetails.regionRestriction.blocked property.
+          "blocked": [ # A list of region codes that identify countries where the video is blocked. If this property is present and a country is not listed in its value, then the video is viewable in that country. If this property is present and contains an empty list, the video is viewable in all countries.
+            "A String",
+          ],
+          "allowed": [ # A list of region codes that identify countries where the video is viewable. If this property is present and a country is not listed in its value, then the video is blocked from appearing in that country. If this property is present and contains an empty list, the video is blocked in all countries.
+            "A String",
+          ],
+        },
+        "duration": "A String", # The length of the video. The tag value is an ISO 8601 duration in the format PT#M#S, in which the letters PT indicate that the value specifies a period of time, and the letters M and S refer to length in minutes and seconds, respectively. The # characters preceding the M and S letters are both integers that specify the number of minutes (or seconds) of the video. For example, a value of PT15M51S indicates that the video is 15 minutes and 51 seconds long.
+        "licensedContent": True or False, # The value of is_license_content indicates whether the video is licensed content.
+        "dimension": "A String", # The value of dimension indicates whether the video is available in 3D or in 2D.
+      },
+      "ageGating": { # Age restriction details related to a video.
+        "restricted": True or False, # Age-restricted trailers. For redband trailers and adult-rated video-games. Only users aged 18+ can view the content. The the field is true the content is restricted to viewers aged 18+. Otherwise The field won't be present.
+        "alcoholContent": True or False, # Indicates whether or not the video has alcoholic beverage content. Only users of legal purchasing age in a particular country, as identified by ICAP, can view the content.
+        "videoGameRating": "A String", # Video game rating, if any.
+      },
+      "fileDetails": { # Describes original video file properties, including technical details about audio and video streams, but also metadata information like content length, digitization time, or geotagging information. # The fileDetails object encapsulates information about the video file that was uploaded to YouTube, including the file's resolution, duration, audio and video codecs, stream bitrates, and more. This data can only be retrieved by the video owner.
+        "bitrateBps": "A String", # The uploaded video file's combined (video and audio) bitrate in bits per second.
+        "container": "A String", # The uploaded video file's container format.
+        "recordingLocation": { # Geographical coordinates of a point, in WGS84. # Geographic coordinates that identify the place where the uploaded video was recorded. Coordinates are defined using WGS 84.
+          "latitude": 3.14, # Latitude in degrees.
+          "altitude": 3.14, # Altitude above the reference ellipsoid, in meters.
+          "longitude": 3.14, # Longitude in degrees.
+        },
+        "fileType": "A String", # The uploaded file's type as detected by YouTube's video processing engine. Currently, YouTube only processes video files, but this field is present whether a video file or another type of file was uploaded.
+        "creationTime": "A String", # The date and time when the uploaded video file was created. The value is specified in ISO 8601 format. Currently, the following ISO 8601 formats are supported:
+            # - Date only: YYYY-MM-DD
+            # - Naive time: YYYY-MM-DDTHH:MM:SS
+            # - Time with timezone: YYYY-MM-DDTHH:MM:SS+HH:MM
+        "durationMs": "A String", # The length of the uploaded video in milliseconds.
+        "fileName": "A String", # The uploaded file's name. This field is present whether a video file or another type of file was uploaded.
+        "fileSize": "A String", # The uploaded file's size in bytes. This field is present whether a video file or another type of file was uploaded.
+        "videoStreams": [ # A list of video streams contained in the uploaded video file. Each item in the list contains detailed metadata about a video stream.
+          { # Information about a video stream.
+            "bitrateBps": "A String", # The video stream's bitrate, in bits per second.
+            "vendor": "A String", # A value that uniquely identifies a video vendor. Typically, the value is a four-letter vendor code.
+            "codec": "A String", # The video codec that the stream uses.
+            "widthPixels": 42, # The encoded video content's width in pixels. You can calculate the video's encoding aspect ratio as width_pixels / height_pixels.
+            "heightPixels": 42, # The encoded video content's height in pixels.
+            "aspectRatio": 3.14, # The video content's display aspect ratio, which specifies the aspect ratio in which the video should be displayed.
+            "rotation": "A String", # The amount that YouTube needs to rotate the original source content to properly display the video.
+            "frameRateFps": 3.14, # The video stream's frame rate, in frames per second.
+          },
+        ],
+        "audioStreams": [ # A list of audio streams contained in the uploaded video file. Each item in the list contains detailed metadata about an audio stream.
+          { # Information about an audio stream.
+            "bitrateBps": "A String", # The audio stream's bitrate, in bits per second.
+            "codec": "A String", # The audio codec that the stream uses.
+            "vendor": "A String", # A value that uniquely identifies a video vendor. Typically, the value is a four-letter vendor code.
+            "channelCount": 42, # The number of audio channels that the stream contains.
+          },
+        ],
+      },
+      "processingDetails": { # Describes processing status and progress and availability of some other Video resource parts. # The processingProgress object encapsulates information about YouTube's progress in processing the uploaded video file. The properties in the object identify the current processing status and an estimate of the time remaining until YouTube finishes processing the video. This part also indicates whether different types of data or content, such as file details or thumbnail images, are available for the video.
+          #
+          # The processingProgress object is designed to be polled so that the video uploaded can track the progress that YouTube has made in processing the uploaded video file. This data can only be retrieved by the video owner.
+        "fileDetailsAvailability": "A String", # This value indicates whether file details are available for the uploaded video. You can retrieve a video's file details by requesting the fileDetails part in your videos.list() request.
+        "editorSuggestionsAvailability": "A String", # This value indicates whether video editing suggestions, which might improve video quality or the playback experience, are available for the video. You can retrieve these suggestions by requesting the suggestions part in your videos.list() request.
+        "processingStatus": "A String", # The video's processing status. This value indicates whether YouTube was able to process the video or if the video is still being processed.
+        "processingIssuesAvailability": "A String", # This value indicates whether the video processing engine has generated suggestions that might improve YouTube's ability to process the the video, warnings that explain video processing problems, or errors that cause video processing problems. You can retrieve these suggestions by requesting the suggestions part in your videos.list() request.
+        "processingFailureReason": "A String", # The reason that YouTube failed to process the video. This property will only have a value if the processingStatus property's value is failed.
+        "thumbnailsAvailability": "A String", # This value indicates whether thumbnail images have been generated for the video.
+        "processingProgress": { # Video processing progress and completion time estimate. # The processingProgress object contains information about the progress YouTube has made in processing the video. The values are really only relevant if the video's processing status is processing.
+          "timeLeftMs": "A String", # An estimate of the amount of time, in millseconds, that YouTube needs to finish processing the video.
+          "partsProcessed": "A String", # The number of parts of the video that YouTube has already processed. You can estimate the percentage of the video that YouTube has already processed by calculating:
+              # 100 * parts_processed / parts_total
+              #
+              # Note that since the estimated number of parts could increase without a corresponding increase in the number of parts that have already been processed, it is possible that the calculated progress could periodically decrease while YouTube processes a video.
+          "partsTotal": "A String", # An estimate of the total number of parts that need to be processed for the video. The number may be updated with more precise estimates while YouTube processes the video.
+        },
+        "tagSuggestionsAvailability": "A String", # This value indicates whether keyword (tag) suggestions are available for the video. Tags can be added to a video's metadata to make it easier for other users to find the video. You can retrieve these suggestions by requesting the suggestions part in your videos.list() request.
+      },
+      "player": { # Player to be used for a video playback. # The player object contains information that you would use to play the video in an embedded player.
+        "embedHtml": "A String", # An <iframe> tag that embeds a player that will play the video.
+      },
+      "etag": "A String", # Etag of this resource.
+      "status": { # Basic details about a video category, such as its localized title. # The status object contains information about the video's uploading, processing, and privacy statuses.
+        "license": "A String", # The video's license.
+        "embeddable": True or False, # This value indicates if the video can be embedded on another website.
+        "privacyStatus": "A String", # The video's privacy status.
+        "publishAt": "A String", # The date and time when the video is scheduled to publish. It can be set only if the privacy status of the video is private. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+        "publicStatsViewable": True or False, # This value indicates if the extended video statistics on the watch page can be viewed by everyone. Note that the view count, likes, etc will still be visible if this is disabled.
+        "uploadStatus": "A String", # The status of the uploaded video.
+        "rejectionReason": "A String", # This value explains why YouTube rejected an uploaded video. This property is only present if the uploadStatus property indicates that the upload was rejected.
+        "failureReason": "A String", # This value explains why a video failed to upload. This property is only present if the uploadStatus property indicates that the upload failed.
+      },
+      "projectDetails": { # Project specific details about the content of a YouTube Video. # The projectDetails object contains information about the project specific video metadata.
+        "tags": [ # A list of project tags associated with the video during the upload.
+          "A String",
+        ],
+      },
+      "recordingDetails": { # Recording information associated with the video. # The recordingDetails object encapsulates information about the location, date and address where the video was recorded.
+        "recordingDate": "A String", # The date and time when the video was recorded. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+        "locationDescription": "A String", # The text description of the location where the video was recorded.
+        "location": { # Geographical coordinates of a point, in WGS84. # The geolocation information associated with the video.
+          "latitude": 3.14, # Latitude in degrees.
+          "altitude": 3.14, # Altitude above the reference ellipsoid, in meters.
+          "longitude": 3.14, # Longitude in degrees.
+        },
+      },
+      "suggestions": { # Specifies suggestions on how to improve video content, including encoding hints, tag suggestions, and editor suggestions. # The suggestions object encapsulates suggestions that identify opportunities to improve the video quality or the metadata for the uploaded video. This data can only be retrieved by the video owner.
+        "processingErrors": [ # A list of errors that will prevent YouTube from successfully processing the uploaded video video. These errors indicate that, regardless of the video's current processing status, eventually, that status will almost certainly be failed.
+          "A String",
+        ],
+        "tagSuggestions": [ # A list of keyword tags that could be added to the video's metadata to increase the likelihood that users will locate your video when searching or browsing on YouTube.
+          { # A single tag suggestion with it's relevance information.
+            "categoryRestricts": [ # A set of video categories for which the tag is relevant. You can use this information to display appropriate tag suggestions based on the video category that the video uploader associates with the video. By default, tag suggestions are relevant for all categories if there are no restricts defined for the keyword.
+              "A String",
+            ],
+            "tag": "A String", # The keyword tag suggested for the video.
+          },
+        ],
+        "editorSuggestions": [ # A list of video editing operations that might improve the video quality or playback experience of the uploaded video.
+          "A String",
+        ],
+        "processingWarnings": [ # A list of reasons why YouTube may have difficulty transcoding the uploaded video or that might result in an erroneous transcoding. These warnings are generated before YouTube actually processes the uploaded video file. In addition, they identify issues that are unlikely to cause the video processing to fail but that might cause problems such as sync issues, video artifacts, or a missing audio track.
+          "A String",
+        ],
+        "processingHints": [ # A list of suggestions that may improve YouTube's ability to process the video.
+          "A String",
+        ],
+      },
+      "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.
+          {
+            "conversionUrl": "A String", # The url (without the schema) that the app shall send the ping to. It's at caller's descretion to decide which schema to use (http vs https) Example of a returned url: //googleads.g.doubleclick.net/pagead/ viewthroughconversion/962985656/?data=path%3DtHe_path%3Btype%3D like%3Butuid%3DGISQtTNGYqaYl4sKxoVvKA%3Bytvid%3DUrIaJUvIQDg&labe=default The caller must append biscotti authentication (ms param in case of mobile, for example) to this ping.
+            "context": "A String", # Defines the context of the ping.
+          },
+        ],
+      },
+    }</pre>
+</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>
+  <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.
+
+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.
+  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.
+  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.
+  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:
+
+    {
+    "eventId": "A String", # Serialized EventId of the request which produced this response.
+    "nextPageToken": "A String", # The token that can be used as the value of the pageToken parameter to retrieve the next page in the result set.
+    "kind": "youtube#videoListResponse", # Identifies what kind of resource this is. Value: the fixed string "youtube#videoListResponse".
+    "visitorId": "A String", # The visitorId identifies the visitor.
+    "items": [ # A list of videos that match the request criteria.
+      { # A video resource represents a YouTube video.
+          "liveStreamingDetails": { # Details about the live streaming metadata. # The liveStreamingDetails object contains metadata about a live video broadcast. The object will only be present in a video resource if the video is an upcoming, live, or completed live broadcast.
+            "scheduledEndTime": "A String", # The time that the broadcast is scheduled to end. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. If the value is empty or the property is not present, then the broadcast is scheduled to continue indefinitely.
+            "concurrentViewers": "A String", # The number of viewers currently watching the broadcast. The property and its value will be present if the broadcast has current viewers and the broadcast owner has not hidden the viewcount for the video. Note that YouTube stops tracking the number of concurrent viewers for a broadcast when the broadcast ends. So, this property would not identify the number of viewers watching an archived video of a live broadcast that already ended.
+            "actualStartTime": "A String", # The time that the broadcast actually started. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. This value will not be available until the broadcast begins.
+            "actualEndTime": "A String", # The time that the broadcast actually ended. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. This value will not be available until the broadcast is over.
+            "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.
+            "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.
+            "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.
+            "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.
+                "width": 42, # (Optional) Width of the thumbnail image.
+                "height": 42, # (Optional) Height of the thumbnail image.
+              },
+              "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+                "url": "A String", # The thumbnail image's URL.
+                "width": 42, # (Optional) Width of the thumbnail image.
+                "height": 42, # (Optional) Height of the thumbnail image.
+              },
+              "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+                "url": "A String", # The thumbnail image's URL.
+                "width": 42, # (Optional) Width of the thumbnail image.
+                "height": 42, # (Optional) Height of the thumbnail image.
+              },
+              "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+                "url": "A String", # The thumbnail image's URL.
+                "width": 42, # (Optional) Width of the thumbnail image.
+                "height": 42, # (Optional) Height of the thumbnail image.
+              },
+              "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+                "url": "A String", # The thumbnail image's URL.
+                "width": 42, # (Optional) Width of the thumbnail image.
+                "height": 42, # (Optional) Height of the thumbnail image.
+              },
+            },
+          },
+          "kind": "youtube#video", # Identifies what kind of resource this is. Value: the fixed string "youtube#video".
+          "statistics": { # Statistics about the video, such as the number of times the video was viewed or liked. # The statistics object contains statistics about the video.
+            "commentCount": "A String", # The number of comments for the video.
+            "viewCount": "A String", # The number of times the video has been viewed.
+            "favoriteCount": "A String", # The number of users who currently have the video marked as a favorite video.
+            "dislikeCount": "A String", # The number of users who have indicated that they disliked the video by giving it a negative rating.
+            "likeCount": "A String", # The number of users who have indicated that they liked the video by giving it a positive rating.
+          },
+          "topicDetails": { # Freebase topic information related to the video. # The topicDetails object encapsulates information about Freebase topics associated with the video.
+            "topicIds": [ # A list of Freebase topic IDs that are centrally associated with the video. These are topics that are centrally featured in the video, and it can be said that the video is mainly about each of these. You can retrieve information about each topic using the Freebase Topic API.
+              "A String",
+            ],
+            "relevantTopicIds": [ # Similar to topic_id, except that these topics are merely relevant to the video. These are topics that may be mentioned in, or appear in the video. You can retrieve information about each topic using Freebase Topic API.
+              "A String",
+            ],
+          },
+          "monetizationDetails": { # Details about monetization of a YouTube Video. # The monetizationDetails object encapsulates information about the monetization status of the video.
+            "access": { # Rights management policy for YouTube resources. # The value of access indicates whether the video can be monetized or not.
+              "exception": [ # A list of region codes that identify countries where the default policy do not apply.
+                "A String",
+              ],
+              "allowed": True or False, # The value of allowed indicates whether the access to the policy is allowed or denied by default.
+            },
+          },
+          "contentDetails": { # Details about the content of a YouTube Video. # The contentDetails object contains information about the video content, including the length of the video and its aspect ratio.
+            "definition": "A String", # The value of definition indicates whether the video is available in high definition or only in standard definition.
+            "countryRestriction": { # Rights management policy for YouTube resources. # The countryRestriction object contains information about the countries where a video is (or is not) viewable.
+              "exception": [ # A list of region codes that identify countries where the default policy do not apply.
+                "A String",
+              ],
+              "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.
+              "ytRating": "A String", # Internal YouTube rating.
+              "catvfrRating": "A String", # Rating system for French Canadian TV - Regie du cinema
+              "tvpgRating": "A String", # TV Parental Guidelines rating of the content.
+              "cbfcRating": "A String", # Rating system in India - Central Board of Film Certification
+              "acbRating": "A String", # Rating system in Australia - Australian Classification Board
+              "fskRating": "A String", # Rating system in Germany - Voluntary Self Regulation of the Movie Industry
+              "eirinRating": "A String", # Rating system in Japan - Eiga Rinri Kanri Iinkai
+              "bbfcRating": "A String", # British Board of Film Classification
+              "russiaRating": "A String", # Rating system in Russia
+              "kmrbRating": "A String", # Rating system in South Korea - Korea Media Rating Board
+              "mpaaRating": "A String", # Motion Picture Association of America rating for the content.
+              "icaaRating": "A String", # Rating system in Spain - Instituto de Cinematografia y de las Artes Audiovisuales
+              "fmocRating": "A String", # Rating system in France - French Minister of Culture
+              "chvrsRating": "A String", # Canadian Home Video Rating System
+              "rtcRating": "A String", # Rating system in Mexico - General Directorate of Radio, Television and Cinematography
+              "catvRating": "A String", # Rating system for Canadian TV - Canadian TV Classification System
+              "djctqRating": "A String", # Rating system in Brazil - Department of Justice, Rating, Titles and Qualification
+              "mibacRating": "A String", # Rating system in Italy - Ministero dei Beni e delle Attivita Culturali e del Turismo
+              "oflcRating": "A String", # Rating system in New Zealand - Office of Film and Literature Classification
+            },
+            "caption": "A String", # The value of captions indicates whether the video has captions or not.
+            "regionRestriction": { # DEPRECATED Region restriction of the video. # The regionRestriction object contains information about the countries where a video is (or is not) viewable. The object will contain either the contentDetails.regionRestriction.allowed property or the contentDetails.regionRestriction.blocked property.
+              "blocked": [ # A list of region codes that identify countries where the video is blocked. If this property is present and a country is not listed in its value, then the video is viewable in that country. If this property is present and contains an empty list, the video is viewable in all countries.
+                "A String",
+              ],
+              "allowed": [ # A list of region codes that identify countries where the video is viewable. If this property is present and a country is not listed in its value, then the video is blocked from appearing in that country. If this property is present and contains an empty list, the video is blocked in all countries.
+                "A String",
+              ],
+            },
+            "duration": "A String", # The length of the video. The tag value is an ISO 8601 duration in the format PT#M#S, in which the letters PT indicate that the value specifies a period of time, and the letters M and S refer to length in minutes and seconds, respectively. The # characters preceding the M and S letters are both integers that specify the number of minutes (or seconds) of the video. For example, a value of PT15M51S indicates that the video is 15 minutes and 51 seconds long.
+            "licensedContent": True or False, # The value of is_license_content indicates whether the video is licensed content.
+            "dimension": "A String", # The value of dimension indicates whether the video is available in 3D or in 2D.
+          },
+          "ageGating": { # Age restriction details related to a video.
+            "restricted": True or False, # Age-restricted trailers. For redband trailers and adult-rated video-games. Only users aged 18+ can view the content. The the field is true the content is restricted to viewers aged 18+. Otherwise The field won't be present.
+            "alcoholContent": True or False, # Indicates whether or not the video has alcoholic beverage content. Only users of legal purchasing age in a particular country, as identified by ICAP, can view the content.
+            "videoGameRating": "A String", # Video game rating, if any.
+          },
+          "fileDetails": { # Describes original video file properties, including technical details about audio and video streams, but also metadata information like content length, digitization time, or geotagging information. # The fileDetails object encapsulates information about the video file that was uploaded to YouTube, including the file's resolution, duration, audio and video codecs, stream bitrates, and more. This data can only be retrieved by the video owner.
+            "bitrateBps": "A String", # The uploaded video file's combined (video and audio) bitrate in bits per second.
+            "container": "A String", # The uploaded video file's container format.
+            "recordingLocation": { # Geographical coordinates of a point, in WGS84. # Geographic coordinates that identify the place where the uploaded video was recorded. Coordinates are defined using WGS 84.
+              "latitude": 3.14, # Latitude in degrees.
+              "altitude": 3.14, # Altitude above the reference ellipsoid, in meters.
+              "longitude": 3.14, # Longitude in degrees.
+            },
+            "fileType": "A String", # The uploaded file's type as detected by YouTube's video processing engine. Currently, YouTube only processes video files, but this field is present whether a video file or another type of file was uploaded.
+            "creationTime": "A String", # The date and time when the uploaded video file was created. The value is specified in ISO 8601 format. Currently, the following ISO 8601 formats are supported:
+                # - Date only: YYYY-MM-DD
+                # - Naive time: YYYY-MM-DDTHH:MM:SS
+                # - Time with timezone: YYYY-MM-DDTHH:MM:SS+HH:MM
+            "durationMs": "A String", # The length of the uploaded video in milliseconds.
+            "fileName": "A String", # The uploaded file's name. This field is present whether a video file or another type of file was uploaded.
+            "fileSize": "A String", # The uploaded file's size in bytes. This field is present whether a video file or another type of file was uploaded.
+            "videoStreams": [ # A list of video streams contained in the uploaded video file. Each item in the list contains detailed metadata about a video stream.
+              { # Information about a video stream.
+                "bitrateBps": "A String", # The video stream's bitrate, in bits per second.
+                "vendor": "A String", # A value that uniquely identifies a video vendor. Typically, the value is a four-letter vendor code.
+                "codec": "A String", # The video codec that the stream uses.
+                "widthPixels": 42, # The encoded video content's width in pixels. You can calculate the video's encoding aspect ratio as width_pixels / height_pixels.
+                "heightPixels": 42, # The encoded video content's height in pixels.
+                "aspectRatio": 3.14, # The video content's display aspect ratio, which specifies the aspect ratio in which the video should be displayed.
+                "rotation": "A String", # The amount that YouTube needs to rotate the original source content to properly display the video.
+                "frameRateFps": 3.14, # The video stream's frame rate, in frames per second.
+              },
+            ],
+            "audioStreams": [ # A list of audio streams contained in the uploaded video file. Each item in the list contains detailed metadata about an audio stream.
+              { # Information about an audio stream.
+                "bitrateBps": "A String", # The audio stream's bitrate, in bits per second.
+                "codec": "A String", # The audio codec that the stream uses.
+                "vendor": "A String", # A value that uniquely identifies a video vendor. Typically, the value is a four-letter vendor code.
+                "channelCount": 42, # The number of audio channels that the stream contains.
+              },
+            ],
+          },
+          "processingDetails": { # Describes processing status and progress and availability of some other Video resource parts. # The processingProgress object encapsulates information about YouTube's progress in processing the uploaded video file. The properties in the object identify the current processing status and an estimate of the time remaining until YouTube finishes processing the video. This part also indicates whether different types of data or content, such as file details or thumbnail images, are available for the video.
+              #
+              # The processingProgress object is designed to be polled so that the video uploaded can track the progress that YouTube has made in processing the uploaded video file. This data can only be retrieved by the video owner.
+            "fileDetailsAvailability": "A String", # This value indicates whether file details are available for the uploaded video. You can retrieve a video's file details by requesting the fileDetails part in your videos.list() request.
+            "editorSuggestionsAvailability": "A String", # This value indicates whether video editing suggestions, which might improve video quality or the playback experience, are available for the video. You can retrieve these suggestions by requesting the suggestions part in your videos.list() request.
+            "processingStatus": "A String", # The video's processing status. This value indicates whether YouTube was able to process the video or if the video is still being processed.
+            "processingIssuesAvailability": "A String", # This value indicates whether the video processing engine has generated suggestions that might improve YouTube's ability to process the the video, warnings that explain video processing problems, or errors that cause video processing problems. You can retrieve these suggestions by requesting the suggestions part in your videos.list() request.
+            "processingFailureReason": "A String", # The reason that YouTube failed to process the video. This property will only have a value if the processingStatus property's value is failed.
+            "thumbnailsAvailability": "A String", # This value indicates whether thumbnail images have been generated for the video.
+            "processingProgress": { # Video processing progress and completion time estimate. # The processingProgress object contains information about the progress YouTube has made in processing the video. The values are really only relevant if the video's processing status is processing.
+              "timeLeftMs": "A String", # An estimate of the amount of time, in millseconds, that YouTube needs to finish processing the video.
+              "partsProcessed": "A String", # The number of parts of the video that YouTube has already processed. You can estimate the percentage of the video that YouTube has already processed by calculating:
+                  # 100 * parts_processed / parts_total
+                  #
+                  # Note that since the estimated number of parts could increase without a corresponding increase in the number of parts that have already been processed, it is possible that the calculated progress could periodically decrease while YouTube processes a video.
+              "partsTotal": "A String", # An estimate of the total number of parts that need to be processed for the video. The number may be updated with more precise estimates while YouTube processes the video.
+            },
+            "tagSuggestionsAvailability": "A String", # This value indicates whether keyword (tag) suggestions are available for the video. Tags can be added to a video's metadata to make it easier for other users to find the video. You can retrieve these suggestions by requesting the suggestions part in your videos.list() request.
+          },
+          "player": { # Player to be used for a video playback. # The player object contains information that you would use to play the video in an embedded player.
+            "embedHtml": "A String", # An <iframe> tag that embeds a player that will play the video.
+          },
+          "etag": "A String", # Etag of this resource.
+          "status": { # Basic details about a video category, such as its localized title. # The status object contains information about the video's uploading, processing, and privacy statuses.
+            "license": "A String", # The video's license.
+            "embeddable": True or False, # This value indicates if the video can be embedded on another website.
+            "privacyStatus": "A String", # The video's privacy status.
+            "publishAt": "A String", # The date and time when the video is scheduled to publish. It can be set only if the privacy status of the video is private. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+            "publicStatsViewable": True or False, # This value indicates if the extended video statistics on the watch page can be viewed by everyone. Note that the view count, likes, etc will still be visible if this is disabled.
+            "uploadStatus": "A String", # The status of the uploaded video.
+            "rejectionReason": "A String", # This value explains why YouTube rejected an uploaded video. This property is only present if the uploadStatus property indicates that the upload was rejected.
+            "failureReason": "A String", # This value explains why a video failed to upload. This property is only present if the uploadStatus property indicates that the upload failed.
+          },
+          "projectDetails": { # Project specific details about the content of a YouTube Video. # The projectDetails object contains information about the project specific video metadata.
+            "tags": [ # A list of project tags associated with the video during the upload.
+              "A String",
+            ],
+          },
+          "recordingDetails": { # Recording information associated with the video. # The recordingDetails object encapsulates information about the location, date and address where the video was recorded.
+            "recordingDate": "A String", # The date and time when the video was recorded. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+            "locationDescription": "A String", # The text description of the location where the video was recorded.
+            "location": { # Geographical coordinates of a point, in WGS84. # The geolocation information associated with the video.
+              "latitude": 3.14, # Latitude in degrees.
+              "altitude": 3.14, # Altitude above the reference ellipsoid, in meters.
+              "longitude": 3.14, # Longitude in degrees.
+            },
+          },
+          "suggestions": { # Specifies suggestions on how to improve video content, including encoding hints, tag suggestions, and editor suggestions. # The suggestions object encapsulates suggestions that identify opportunities to improve the video quality or the metadata for the uploaded video. This data can only be retrieved by the video owner.
+            "processingErrors": [ # A list of errors that will prevent YouTube from successfully processing the uploaded video video. These errors indicate that, regardless of the video's current processing status, eventually, that status will almost certainly be failed.
+              "A String",
+            ],
+            "tagSuggestions": [ # A list of keyword tags that could be added to the video's metadata to increase the likelihood that users will locate your video when searching or browsing on YouTube.
+              { # A single tag suggestion with it's relevance information.
+                "categoryRestricts": [ # A set of video categories for which the tag is relevant. You can use this information to display appropriate tag suggestions based on the video category that the video uploader associates with the video. By default, tag suggestions are relevant for all categories if there are no restricts defined for the keyword.
+                  "A String",
+                ],
+                "tag": "A String", # The keyword tag suggested for the video.
+              },
+            ],
+            "editorSuggestions": [ # A list of video editing operations that might improve the video quality or playback experience of the uploaded video.
+              "A String",
+            ],
+            "processingWarnings": [ # A list of reasons why YouTube may have difficulty transcoding the uploaded video or that might result in an erroneous transcoding. These warnings are generated before YouTube actually processes the uploaded video file. In addition, they identify issues that are unlikely to cause the video processing to fail but that might cause problems such as sync issues, video artifacts, or a missing audio track.
+              "A String",
+            ],
+            "processingHints": [ # A list of suggestions that may improve YouTube's ability to process the video.
+              "A String",
+            ],
+          },
+          "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.
+              {
+                "conversionUrl": "A String", # The url (without the schema) that the app shall send the ping to. It's at caller's descretion to decide which schema to use (http vs https) Example of a returned url: //googleads.g.doubleclick.net/pagead/ viewthroughconversion/962985656/?data=path%3DtHe_path%3Btype%3D like%3Butuid%3DGISQtTNGYqaYl4sKxoVvKA%3Bytvid%3DUrIaJUvIQDg&labe=default The caller must append biscotti authentication (ms param in case of mobile, for example) to this ping.
+                "context": "A String", # Defines the context of the ping.
+              },
+            ],
+          },
+        },
+    ],
+    "tokenPagination": { # Stub token pagination template to suppress results.
+    },
+    "etag": "A String", # Etag of this resource.
+    "prevPageToken": "A String", # The token that can be used as the value of the pageToken parameter to retrieve the previous page in the result set.
+    "pageInfo": { # Paging details for lists of resources, including total number of items available and number of resources returned in a single page.
+      "totalResults": 42, # The total number of results in the result set.
+      "resultsPerPage": 42, # The number of results included in the API response.
+    },
+  }</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="rate">rate(id, rating, onBehalfOfContentOwner=None)</code>
+  <pre>Add a like or dislike rating to a video or remove a rating from a video.
+
+Args:
+  id: string, The id parameter specifies the YouTube video ID of the video that is being rated or having its rating removed. (required)
+  rating: string, Specifies the rating to record. (required)
+    Allowed values
+      dislike - Records that the authenticated user disliked the video.
+      like - Records that the authenticated user liked the video.
+      none - Removes any rating that the authenticated user had previously set for the video.
+  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="update">update(part=None, body, onBehalfOfContentOwner=None)</code>
+  <pre>Updates a video's metadata.
+
+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.
+
+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.
+
+In addition, 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. (required)
+    The object takes the form of:
+
+{ # A video resource represents a YouTube video.
+    "liveStreamingDetails": { # Details about the live streaming metadata. # The liveStreamingDetails object contains metadata about a live video broadcast. The object will only be present in a video resource if the video is an upcoming, live, or completed live broadcast.
+      "scheduledEndTime": "A String", # The time that the broadcast is scheduled to end. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. If the value is empty or the property is not present, then the broadcast is scheduled to continue indefinitely.
+      "concurrentViewers": "A String", # The number of viewers currently watching the broadcast. The property and its value will be present if the broadcast has current viewers and the broadcast owner has not hidden the viewcount for the video. Note that YouTube stops tracking the number of concurrent viewers for a broadcast when the broadcast ends. So, this property would not identify the number of viewers watching an archived video of a live broadcast that already ended.
+      "actualStartTime": "A String", # The time that the broadcast actually started. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. This value will not be available until the broadcast begins.
+      "actualEndTime": "A String", # The time that the broadcast actually ended. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. This value will not be available until the broadcast is over.
+      "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.
+      "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.
+      "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.
+      "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.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+        "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+          "url": "A String", # The thumbnail image's URL.
+          "width": 42, # (Optional) Width of the thumbnail image.
+          "height": 42, # (Optional) Height of the thumbnail image.
+        },
+      },
+    },
+    "kind": "youtube#video", # Identifies what kind of resource this is. Value: the fixed string "youtube#video".
+    "statistics": { # Statistics about the video, such as the number of times the video was viewed or liked. # The statistics object contains statistics about the video.
+      "commentCount": "A String", # The number of comments for the video.
+      "viewCount": "A String", # The number of times the video has been viewed.
+      "favoriteCount": "A String", # The number of users who currently have the video marked as a favorite video.
+      "dislikeCount": "A String", # The number of users who have indicated that they disliked the video by giving it a negative rating.
+      "likeCount": "A String", # The number of users who have indicated that they liked the video by giving it a positive rating.
+    },
+    "topicDetails": { # Freebase topic information related to the video. # The topicDetails object encapsulates information about Freebase topics associated with the video.
+      "topicIds": [ # A list of Freebase topic IDs that are centrally associated with the video. These are topics that are centrally featured in the video, and it can be said that the video is mainly about each of these. You can retrieve information about each topic using the Freebase Topic API.
+        "A String",
+      ],
+      "relevantTopicIds": [ # Similar to topic_id, except that these topics are merely relevant to the video. These are topics that may be mentioned in, or appear in the video. You can retrieve information about each topic using Freebase Topic API.
+        "A String",
+      ],
+    },
+    "monetizationDetails": { # Details about monetization of a YouTube Video. # The monetizationDetails object encapsulates information about the monetization status of the video.
+      "access": { # Rights management policy for YouTube resources. # The value of access indicates whether the video can be monetized or not.
+        "exception": [ # A list of region codes that identify countries where the default policy do not apply.
+          "A String",
+        ],
+        "allowed": True or False, # The value of allowed indicates whether the access to the policy is allowed or denied by default.
+      },
+    },
+    "contentDetails": { # Details about the content of a YouTube Video. # The contentDetails object contains information about the video content, including the length of the video and its aspect ratio.
+      "definition": "A String", # The value of definition indicates whether the video is available in high definition or only in standard definition.
+      "countryRestriction": { # Rights management policy for YouTube resources. # The countryRestriction object contains information about the countries where a video is (or is not) viewable.
+        "exception": [ # A list of region codes that identify countries where the default policy do not apply.
+          "A String",
+        ],
+        "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.
+        "ytRating": "A String", # Internal YouTube rating.
+        "catvfrRating": "A String", # Rating system for French Canadian TV - Regie du cinema
+        "tvpgRating": "A String", # TV Parental Guidelines rating of the content.
+        "cbfcRating": "A String", # Rating system in India - Central Board of Film Certification
+        "acbRating": "A String", # Rating system in Australia - Australian Classification Board
+        "fskRating": "A String", # Rating system in Germany - Voluntary Self Regulation of the Movie Industry
+        "eirinRating": "A String", # Rating system in Japan - Eiga Rinri Kanri Iinkai
+        "bbfcRating": "A String", # British Board of Film Classification
+        "russiaRating": "A String", # Rating system in Russia
+        "kmrbRating": "A String", # Rating system in South Korea - Korea Media Rating Board
+        "mpaaRating": "A String", # Motion Picture Association of America rating for the content.
+        "icaaRating": "A String", # Rating system in Spain - Instituto de Cinematografia y de las Artes Audiovisuales
+        "fmocRating": "A String", # Rating system in France - French Minister of Culture
+        "chvrsRating": "A String", # Canadian Home Video Rating System
+        "rtcRating": "A String", # Rating system in Mexico - General Directorate of Radio, Television and Cinematography
+        "catvRating": "A String", # Rating system for Canadian TV - Canadian TV Classification System
+        "djctqRating": "A String", # Rating system in Brazil - Department of Justice, Rating, Titles and Qualification
+        "mibacRating": "A String", # Rating system in Italy - Ministero dei Beni e delle Attivita Culturali e del Turismo
+        "oflcRating": "A String", # Rating system in New Zealand - Office of Film and Literature Classification
+      },
+      "caption": "A String", # The value of captions indicates whether the video has captions or not.
+      "regionRestriction": { # DEPRECATED Region restriction of the video. # The regionRestriction object contains information about the countries where a video is (or is not) viewable. The object will contain either the contentDetails.regionRestriction.allowed property or the contentDetails.regionRestriction.blocked property.
+        "blocked": [ # A list of region codes that identify countries where the video is blocked. If this property is present and a country is not listed in its value, then the video is viewable in that country. If this property is present and contains an empty list, the video is viewable in all countries.
+          "A String",
+        ],
+        "allowed": [ # A list of region codes that identify countries where the video is viewable. If this property is present and a country is not listed in its value, then the video is blocked from appearing in that country. If this property is present and contains an empty list, the video is blocked in all countries.
+          "A String",
+        ],
+      },
+      "duration": "A String", # The length of the video. The tag value is an ISO 8601 duration in the format PT#M#S, in which the letters PT indicate that the value specifies a period of time, and the letters M and S refer to length in minutes and seconds, respectively. The # characters preceding the M and S letters are both integers that specify the number of minutes (or seconds) of the video. For example, a value of PT15M51S indicates that the video is 15 minutes and 51 seconds long.
+      "licensedContent": True or False, # The value of is_license_content indicates whether the video is licensed content.
+      "dimension": "A String", # The value of dimension indicates whether the video is available in 3D or in 2D.
+    },
+    "ageGating": { # Age restriction details related to a video.
+      "restricted": True or False, # Age-restricted trailers. For redband trailers and adult-rated video-games. Only users aged 18+ can view the content. The the field is true the content is restricted to viewers aged 18+. Otherwise The field won't be present.
+      "alcoholContent": True or False, # Indicates whether or not the video has alcoholic beverage content. Only users of legal purchasing age in a particular country, as identified by ICAP, can view the content.
+      "videoGameRating": "A String", # Video game rating, if any.
+    },
+    "fileDetails": { # Describes original video file properties, including technical details about audio and video streams, but also metadata information like content length, digitization time, or geotagging information. # The fileDetails object encapsulates information about the video file that was uploaded to YouTube, including the file's resolution, duration, audio and video codecs, stream bitrates, and more. This data can only be retrieved by the video owner.
+      "bitrateBps": "A String", # The uploaded video file's combined (video and audio) bitrate in bits per second.
+      "container": "A String", # The uploaded video file's container format.
+      "recordingLocation": { # Geographical coordinates of a point, in WGS84. # Geographic coordinates that identify the place where the uploaded video was recorded. Coordinates are defined using WGS 84.
+        "latitude": 3.14, # Latitude in degrees.
+        "altitude": 3.14, # Altitude above the reference ellipsoid, in meters.
+        "longitude": 3.14, # Longitude in degrees.
+      },
+      "fileType": "A String", # The uploaded file's type as detected by YouTube's video processing engine. Currently, YouTube only processes video files, but this field is present whether a video file or another type of file was uploaded.
+      "creationTime": "A String", # The date and time when the uploaded video file was created. The value is specified in ISO 8601 format. Currently, the following ISO 8601 formats are supported:
+          # - Date only: YYYY-MM-DD
+          # - Naive time: YYYY-MM-DDTHH:MM:SS
+          # - Time with timezone: YYYY-MM-DDTHH:MM:SS+HH:MM
+      "durationMs": "A String", # The length of the uploaded video in milliseconds.
+      "fileName": "A String", # The uploaded file's name. This field is present whether a video file or another type of file was uploaded.
+      "fileSize": "A String", # The uploaded file's size in bytes. This field is present whether a video file or another type of file was uploaded.
+      "videoStreams": [ # A list of video streams contained in the uploaded video file. Each item in the list contains detailed metadata about a video stream.
+        { # Information about a video stream.
+          "bitrateBps": "A String", # The video stream's bitrate, in bits per second.
+          "vendor": "A String", # A value that uniquely identifies a video vendor. Typically, the value is a four-letter vendor code.
+          "codec": "A String", # The video codec that the stream uses.
+          "widthPixels": 42, # The encoded video content's width in pixels. You can calculate the video's encoding aspect ratio as width_pixels / height_pixels.
+          "heightPixels": 42, # The encoded video content's height in pixels.
+          "aspectRatio": 3.14, # The video content's display aspect ratio, which specifies the aspect ratio in which the video should be displayed.
+          "rotation": "A String", # The amount that YouTube needs to rotate the original source content to properly display the video.
+          "frameRateFps": 3.14, # The video stream's frame rate, in frames per second.
+        },
+      ],
+      "audioStreams": [ # A list of audio streams contained in the uploaded video file. Each item in the list contains detailed metadata about an audio stream.
+        { # Information about an audio stream.
+          "bitrateBps": "A String", # The audio stream's bitrate, in bits per second.
+          "codec": "A String", # The audio codec that the stream uses.
+          "vendor": "A String", # A value that uniquely identifies a video vendor. Typically, the value is a four-letter vendor code.
+          "channelCount": 42, # The number of audio channels that the stream contains.
+        },
+      ],
+    },
+    "processingDetails": { # Describes processing status and progress and availability of some other Video resource parts. # The processingProgress object encapsulates information about YouTube's progress in processing the uploaded video file. The properties in the object identify the current processing status and an estimate of the time remaining until YouTube finishes processing the video. This part also indicates whether different types of data or content, such as file details or thumbnail images, are available for the video.
+        # 
+        # The processingProgress object is designed to be polled so that the video uploaded can track the progress that YouTube has made in processing the uploaded video file. This data can only be retrieved by the video owner.
+      "fileDetailsAvailability": "A String", # This value indicates whether file details are available for the uploaded video. You can retrieve a video's file details by requesting the fileDetails part in your videos.list() request.
+      "editorSuggestionsAvailability": "A String", # This value indicates whether video editing suggestions, which might improve video quality or the playback experience, are available for the video. You can retrieve these suggestions by requesting the suggestions part in your videos.list() request.
+      "processingStatus": "A String", # The video's processing status. This value indicates whether YouTube was able to process the video or if the video is still being processed.
+      "processingIssuesAvailability": "A String", # This value indicates whether the video processing engine has generated suggestions that might improve YouTube's ability to process the the video, warnings that explain video processing problems, or errors that cause video processing problems. You can retrieve these suggestions by requesting the suggestions part in your videos.list() request.
+      "processingFailureReason": "A String", # The reason that YouTube failed to process the video. This property will only have a value if the processingStatus property's value is failed.
+      "thumbnailsAvailability": "A String", # This value indicates whether thumbnail images have been generated for the video.
+      "processingProgress": { # Video processing progress and completion time estimate. # The processingProgress object contains information about the progress YouTube has made in processing the video. The values are really only relevant if the video's processing status is processing.
+        "timeLeftMs": "A String", # An estimate of the amount of time, in millseconds, that YouTube needs to finish processing the video.
+        "partsProcessed": "A String", # The number of parts of the video that YouTube has already processed. You can estimate the percentage of the video that YouTube has already processed by calculating:
+            # 100 * parts_processed / parts_total
+            #
+            # Note that since the estimated number of parts could increase without a corresponding increase in the number of parts that have already been processed, it is possible that the calculated progress could periodically decrease while YouTube processes a video.
+        "partsTotal": "A String", # An estimate of the total number of parts that need to be processed for the video. The number may be updated with more precise estimates while YouTube processes the video.
+      },
+      "tagSuggestionsAvailability": "A String", # This value indicates whether keyword (tag) suggestions are available for the video. Tags can be added to a video's metadata to make it easier for other users to find the video. You can retrieve these suggestions by requesting the suggestions part in your videos.list() request.
+    },
+    "player": { # Player to be used for a video playback. # The player object contains information that you would use to play the video in an embedded player.
+      "embedHtml": "A String", # An <iframe> tag that embeds a player that will play the video.
+    },
+    "etag": "A String", # Etag of this resource.
+    "status": { # Basic details about a video category, such as its localized title. # The status object contains information about the video's uploading, processing, and privacy statuses.
+      "license": "A String", # The video's license.
+      "embeddable": True or False, # This value indicates if the video can be embedded on another website.
+      "privacyStatus": "A String", # The video's privacy status.
+      "publishAt": "A String", # The date and time when the video is scheduled to publish. It can be set only if the privacy status of the video is private. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+      "publicStatsViewable": True or False, # This value indicates if the extended video statistics on the watch page can be viewed by everyone. Note that the view count, likes, etc will still be visible if this is disabled.
+      "uploadStatus": "A String", # The status of the uploaded video.
+      "rejectionReason": "A String", # This value explains why YouTube rejected an uploaded video. This property is only present if the uploadStatus property indicates that the upload was rejected.
+      "failureReason": "A String", # This value explains why a video failed to upload. This property is only present if the uploadStatus property indicates that the upload failed.
+    },
+    "projectDetails": { # Project specific details about the content of a YouTube Video. # The projectDetails object contains information about the project specific video metadata.
+      "tags": [ # A list of project tags associated with the video during the upload.
+        "A String",
+      ],
+    },
+    "recordingDetails": { # Recording information associated with the video. # The recordingDetails object encapsulates information about the location, date and address where the video was recorded.
+      "recordingDate": "A String", # The date and time when the video was recorded. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+      "locationDescription": "A String", # The text description of the location where the video was recorded.
+      "location": { # Geographical coordinates of a point, in WGS84. # The geolocation information associated with the video.
+        "latitude": 3.14, # Latitude in degrees.
+        "altitude": 3.14, # Altitude above the reference ellipsoid, in meters.
+        "longitude": 3.14, # Longitude in degrees.
+      },
+    },
+    "suggestions": { # Specifies suggestions on how to improve video content, including encoding hints, tag suggestions, and editor suggestions. # The suggestions object encapsulates suggestions that identify opportunities to improve the video quality or the metadata for the uploaded video. This data can only be retrieved by the video owner.
+      "processingErrors": [ # A list of errors that will prevent YouTube from successfully processing the uploaded video video. These errors indicate that, regardless of the video's current processing status, eventually, that status will almost certainly be failed.
+        "A String",
+      ],
+      "tagSuggestions": [ # A list of keyword tags that could be added to the video's metadata to increase the likelihood that users will locate your video when searching or browsing on YouTube.
+        { # A single tag suggestion with it's relevance information.
+          "categoryRestricts": [ # A set of video categories for which the tag is relevant. You can use this information to display appropriate tag suggestions based on the video category that the video uploader associates with the video. By default, tag suggestions are relevant for all categories if there are no restricts defined for the keyword.
+            "A String",
+          ],
+          "tag": "A String", # The keyword tag suggested for the video.
+        },
+      ],
+      "editorSuggestions": [ # A list of video editing operations that might improve the video quality or playback experience of the uploaded video.
+        "A String",
+      ],
+      "processingWarnings": [ # A list of reasons why YouTube may have difficulty transcoding the uploaded video or that might result in an erroneous transcoding. These warnings are generated before YouTube actually processes the uploaded video file. In addition, they identify issues that are unlikely to cause the video processing to fail but that might cause problems such as sync issues, video artifacts, or a missing audio track.
+        "A String",
+      ],
+      "processingHints": [ # A list of suggestions that may improve YouTube's ability to process the video.
+        "A String",
+      ],
+    },
+    "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.
+        {
+          "conversionUrl": "A String", # The url (without the schema) that the app shall send the ping to. It's at caller's descretion to decide which schema to use (http vs https) Example of a returned url: //googleads.g.doubleclick.net/pagead/ viewthroughconversion/962985656/?data=path%3DtHe_path%3Btype%3D like%3Butuid%3DGISQtTNGYqaYl4sKxoVvKA%3Bytvid%3DUrIaJUvIQDg&labe=default The caller must append biscotti authentication (ms param in case of mobile, for example) to this ping.
+          "context": "A String", # Defines the context of the ping.
+        },
+      ],
+    },
+  }
+
+  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 actual CMS account that the user authenticates with must be linked to the specified YouTube content owner.
+
+Returns:
+  An object of the form:
+
+    { # A video resource represents a YouTube video.
+      "liveStreamingDetails": { # Details about the live streaming metadata. # The liveStreamingDetails object contains metadata about a live video broadcast. The object will only be present in a video resource if the video is an upcoming, live, or completed live broadcast.
+        "scheduledEndTime": "A String", # The time that the broadcast is scheduled to end. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. If the value is empty or the property is not present, then the broadcast is scheduled to continue indefinitely.
+        "concurrentViewers": "A String", # The number of viewers currently watching the broadcast. The property and its value will be present if the broadcast has current viewers and the broadcast owner has not hidden the viewcount for the video. Note that YouTube stops tracking the number of concurrent viewers for a broadcast when the broadcast ends. So, this property would not identify the number of viewers watching an archived video of a live broadcast that already ended.
+        "actualStartTime": "A String", # The time that the broadcast actually started. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. This value will not be available until the broadcast begins.
+        "actualEndTime": "A String", # The time that the broadcast actually ended. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format. This value will not be available until the broadcast is over.
+        "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.
+        "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.
+        "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.
+        "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.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "high": { # A thumbnail is an image representing a YouTube resource. # The high quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "medium": { # A thumbnail is an image representing a YouTube resource. # The medium quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "maxres": { # A thumbnail is an image representing a YouTube resource. # The maximum resolution quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+          "standard": { # A thumbnail is an image representing a YouTube resource. # The standard quality image for this resource.
+            "url": "A String", # The thumbnail image's URL.
+            "width": 42, # (Optional) Width of the thumbnail image.
+            "height": 42, # (Optional) Height of the thumbnail image.
+          },
+        },
+      },
+      "kind": "youtube#video", # Identifies what kind of resource this is. Value: the fixed string "youtube#video".
+      "statistics": { # Statistics about the video, such as the number of times the video was viewed or liked. # The statistics object contains statistics about the video.
+        "commentCount": "A String", # The number of comments for the video.
+        "viewCount": "A String", # The number of times the video has been viewed.
+        "favoriteCount": "A String", # The number of users who currently have the video marked as a favorite video.
+        "dislikeCount": "A String", # The number of users who have indicated that they disliked the video by giving it a negative rating.
+        "likeCount": "A String", # The number of users who have indicated that they liked the video by giving it a positive rating.
+      },
+      "topicDetails": { # Freebase topic information related to the video. # The topicDetails object encapsulates information about Freebase topics associated with the video.
+        "topicIds": [ # A list of Freebase topic IDs that are centrally associated with the video. These are topics that are centrally featured in the video, and it can be said that the video is mainly about each of these. You can retrieve information about each topic using the Freebase Topic API.
+          "A String",
+        ],
+        "relevantTopicIds": [ # Similar to topic_id, except that these topics are merely relevant to the video. These are topics that may be mentioned in, or appear in the video. You can retrieve information about each topic using Freebase Topic API.
+          "A String",
+        ],
+      },
+      "monetizationDetails": { # Details about monetization of a YouTube Video. # The monetizationDetails object encapsulates information about the monetization status of the video.
+        "access": { # Rights management policy for YouTube resources. # The value of access indicates whether the video can be monetized or not.
+          "exception": [ # A list of region codes that identify countries where the default policy do not apply.
+            "A String",
+          ],
+          "allowed": True or False, # The value of allowed indicates whether the access to the policy is allowed or denied by default.
+        },
+      },
+      "contentDetails": { # Details about the content of a YouTube Video. # The contentDetails object contains information about the video content, including the length of the video and its aspect ratio.
+        "definition": "A String", # The value of definition indicates whether the video is available in high definition or only in standard definition.
+        "countryRestriction": { # Rights management policy for YouTube resources. # The countryRestriction object contains information about the countries where a video is (or is not) viewable.
+          "exception": [ # A list of region codes that identify countries where the default policy do not apply.
+            "A String",
+          ],
+          "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.
+          "ytRating": "A String", # Internal YouTube rating.
+          "catvfrRating": "A String", # Rating system for French Canadian TV - Regie du cinema
+          "tvpgRating": "A String", # TV Parental Guidelines rating of the content.
+          "cbfcRating": "A String", # Rating system in India - Central Board of Film Certification
+          "acbRating": "A String", # Rating system in Australia - Australian Classification Board
+          "fskRating": "A String", # Rating system in Germany - Voluntary Self Regulation of the Movie Industry
+          "eirinRating": "A String", # Rating system in Japan - Eiga Rinri Kanri Iinkai
+          "bbfcRating": "A String", # British Board of Film Classification
+          "russiaRating": "A String", # Rating system in Russia
+          "kmrbRating": "A String", # Rating system in South Korea - Korea Media Rating Board
+          "mpaaRating": "A String", # Motion Picture Association of America rating for the content.
+          "icaaRating": "A String", # Rating system in Spain - Instituto de Cinematografia y de las Artes Audiovisuales
+          "fmocRating": "A String", # Rating system in France - French Minister of Culture
+          "chvrsRating": "A String", # Canadian Home Video Rating System
+          "rtcRating": "A String", # Rating system in Mexico - General Directorate of Radio, Television and Cinematography
+          "catvRating": "A String", # Rating system for Canadian TV - Canadian TV Classification System
+          "djctqRating": "A String", # Rating system in Brazil - Department of Justice, Rating, Titles and Qualification
+          "mibacRating": "A String", # Rating system in Italy - Ministero dei Beni e delle Attivita Culturali e del Turismo
+          "oflcRating": "A String", # Rating system in New Zealand - Office of Film and Literature Classification
+        },
+        "caption": "A String", # The value of captions indicates whether the video has captions or not.
+        "regionRestriction": { # DEPRECATED Region restriction of the video. # The regionRestriction object contains information about the countries where a video is (or is not) viewable. The object will contain either the contentDetails.regionRestriction.allowed property or the contentDetails.regionRestriction.blocked property.
+          "blocked": [ # A list of region codes that identify countries where the video is blocked. If this property is present and a country is not listed in its value, then the video is viewable in that country. If this property is present and contains an empty list, the video is viewable in all countries.
+            "A String",
+          ],
+          "allowed": [ # A list of region codes that identify countries where the video is viewable. If this property is present and a country is not listed in its value, then the video is blocked from appearing in that country. If this property is present and contains an empty list, the video is blocked in all countries.
+            "A String",
+          ],
+        },
+        "duration": "A String", # The length of the video. The tag value is an ISO 8601 duration in the format PT#M#S, in which the letters PT indicate that the value specifies a period of time, and the letters M and S refer to length in minutes and seconds, respectively. The # characters preceding the M and S letters are both integers that specify the number of minutes (or seconds) of the video. For example, a value of PT15M51S indicates that the video is 15 minutes and 51 seconds long.
+        "licensedContent": True or False, # The value of is_license_content indicates whether the video is licensed content.
+        "dimension": "A String", # The value of dimension indicates whether the video is available in 3D or in 2D.
+      },
+      "ageGating": { # Age restriction details related to a video.
+        "restricted": True or False, # Age-restricted trailers. For redband trailers and adult-rated video-games. Only users aged 18+ can view the content. The the field is true the content is restricted to viewers aged 18+. Otherwise The field won't be present.
+        "alcoholContent": True or False, # Indicates whether or not the video has alcoholic beverage content. Only users of legal purchasing age in a particular country, as identified by ICAP, can view the content.
+        "videoGameRating": "A String", # Video game rating, if any.
+      },
+      "fileDetails": { # Describes original video file properties, including technical details about audio and video streams, but also metadata information like content length, digitization time, or geotagging information. # The fileDetails object encapsulates information about the video file that was uploaded to YouTube, including the file's resolution, duration, audio and video codecs, stream bitrates, and more. This data can only be retrieved by the video owner.
+        "bitrateBps": "A String", # The uploaded video file's combined (video and audio) bitrate in bits per second.
+        "container": "A String", # The uploaded video file's container format.
+        "recordingLocation": { # Geographical coordinates of a point, in WGS84. # Geographic coordinates that identify the place where the uploaded video was recorded. Coordinates are defined using WGS 84.
+          "latitude": 3.14, # Latitude in degrees.
+          "altitude": 3.14, # Altitude above the reference ellipsoid, in meters.
+          "longitude": 3.14, # Longitude in degrees.
+        },
+        "fileType": "A String", # The uploaded file's type as detected by YouTube's video processing engine. Currently, YouTube only processes video files, but this field is present whether a video file or another type of file was uploaded.
+        "creationTime": "A String", # The date and time when the uploaded video file was created. The value is specified in ISO 8601 format. Currently, the following ISO 8601 formats are supported:
+            # - Date only: YYYY-MM-DD
+            # - Naive time: YYYY-MM-DDTHH:MM:SS
+            # - Time with timezone: YYYY-MM-DDTHH:MM:SS+HH:MM
+        "durationMs": "A String", # The length of the uploaded video in milliseconds.
+        "fileName": "A String", # The uploaded file's name. This field is present whether a video file or another type of file was uploaded.
+        "fileSize": "A String", # The uploaded file's size in bytes. This field is present whether a video file or another type of file was uploaded.
+        "videoStreams": [ # A list of video streams contained in the uploaded video file. Each item in the list contains detailed metadata about a video stream.
+          { # Information about a video stream.
+            "bitrateBps": "A String", # The video stream's bitrate, in bits per second.
+            "vendor": "A String", # A value that uniquely identifies a video vendor. Typically, the value is a four-letter vendor code.
+            "codec": "A String", # The video codec that the stream uses.
+            "widthPixels": 42, # The encoded video content's width in pixels. You can calculate the video's encoding aspect ratio as width_pixels / height_pixels.
+            "heightPixels": 42, # The encoded video content's height in pixels.
+            "aspectRatio": 3.14, # The video content's display aspect ratio, which specifies the aspect ratio in which the video should be displayed.
+            "rotation": "A String", # The amount that YouTube needs to rotate the original source content to properly display the video.
+            "frameRateFps": 3.14, # The video stream's frame rate, in frames per second.
+          },
+        ],
+        "audioStreams": [ # A list of audio streams contained in the uploaded video file. Each item in the list contains detailed metadata about an audio stream.
+          { # Information about an audio stream.
+            "bitrateBps": "A String", # The audio stream's bitrate, in bits per second.
+            "codec": "A String", # The audio codec that the stream uses.
+            "vendor": "A String", # A value that uniquely identifies a video vendor. Typically, the value is a four-letter vendor code.
+            "channelCount": 42, # The number of audio channels that the stream contains.
+          },
+        ],
+      },
+      "processingDetails": { # Describes processing status and progress and availability of some other Video resource parts. # The processingProgress object encapsulates information about YouTube's progress in processing the uploaded video file. The properties in the object identify the current processing status and an estimate of the time remaining until YouTube finishes processing the video. This part also indicates whether different types of data or content, such as file details or thumbnail images, are available for the video.
+          #
+          # The processingProgress object is designed to be polled so that the video uploaded can track the progress that YouTube has made in processing the uploaded video file. This data can only be retrieved by the video owner.
+        "fileDetailsAvailability": "A String", # This value indicates whether file details are available for the uploaded video. You can retrieve a video's file details by requesting the fileDetails part in your videos.list() request.
+        "editorSuggestionsAvailability": "A String", # This value indicates whether video editing suggestions, which might improve video quality or the playback experience, are available for the video. You can retrieve these suggestions by requesting the suggestions part in your videos.list() request.
+        "processingStatus": "A String", # The video's processing status. This value indicates whether YouTube was able to process the video or if the video is still being processed.
+        "processingIssuesAvailability": "A String", # This value indicates whether the video processing engine has generated suggestions that might improve YouTube's ability to process the the video, warnings that explain video processing problems, or errors that cause video processing problems. You can retrieve these suggestions by requesting the suggestions part in your videos.list() request.
+        "processingFailureReason": "A String", # The reason that YouTube failed to process the video. This property will only have a value if the processingStatus property's value is failed.
+        "thumbnailsAvailability": "A String", # This value indicates whether thumbnail images have been generated for the video.
+        "processingProgress": { # Video processing progress and completion time estimate. # The processingProgress object contains information about the progress YouTube has made in processing the video. The values are really only relevant if the video's processing status is processing.
+          "timeLeftMs": "A String", # An estimate of the amount of time, in millseconds, that YouTube needs to finish processing the video.
+          "partsProcessed": "A String", # The number of parts of the video that YouTube has already processed. You can estimate the percentage of the video that YouTube has already processed by calculating:
+              # 100 * parts_processed / parts_total
+              #
+              # Note that since the estimated number of parts could increase without a corresponding increase in the number of parts that have already been processed, it is possible that the calculated progress could periodically decrease while YouTube processes a video.
+          "partsTotal": "A String", # An estimate of the total number of parts that need to be processed for the video. The number may be updated with more precise estimates while YouTube processes the video.
+        },
+        "tagSuggestionsAvailability": "A String", # This value indicates whether keyword (tag) suggestions are available for the video. Tags can be added to a video's metadata to make it easier for other users to find the video. You can retrieve these suggestions by requesting the suggestions part in your videos.list() request.
+      },
+      "player": { # Player to be used for a video playback. # The player object contains information that you would use to play the video in an embedded player.
+        "embedHtml": "A String", # An <iframe> tag that embeds a player that will play the video.
+      },
+      "etag": "A String", # Etag of this resource.
+      "status": { # Basic details about a video category, such as its localized title. # The status object contains information about the video's uploading, processing, and privacy statuses.
+        "license": "A String", # The video's license.
+        "embeddable": True or False, # This value indicates if the video can be embedded on another website.
+        "privacyStatus": "A String", # The video's privacy status.
+        "publishAt": "A String", # The date and time when the video is scheduled to publish. It can be set only if the privacy status of the video is private. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+        "publicStatsViewable": True or False, # This value indicates if the extended video statistics on the watch page can be viewed by everyone. Note that the view count, likes, etc will still be visible if this is disabled.
+        "uploadStatus": "A String", # The status of the uploaded video.
+        "rejectionReason": "A String", # This value explains why YouTube rejected an uploaded video. This property is only present if the uploadStatus property indicates that the upload was rejected.
+        "failureReason": "A String", # This value explains why a video failed to upload. This property is only present if the uploadStatus property indicates that the upload failed.
+      },
+      "projectDetails": { # Project specific details about the content of a YouTube Video. # The projectDetails object contains information about the project specific video metadata.
+        "tags": [ # A list of project tags associated with the video during the upload.
+          "A String",
+        ],
+      },
+      "recordingDetails": { # Recording information associated with the video. # The recordingDetails object encapsulates information about the location, date and address where the video was recorded.
+        "recordingDate": "A String", # The date and time when the video was recorded. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+        "locationDescription": "A String", # The text description of the location where the video was recorded.
+        "location": { # Geographical coordinates of a point, in WGS84. # The geolocation information associated with the video.
+          "latitude": 3.14, # Latitude in degrees.
+          "altitude": 3.14, # Altitude above the reference ellipsoid, in meters.
+          "longitude": 3.14, # Longitude in degrees.
+        },
+      },
+      "suggestions": { # Specifies suggestions on how to improve video content, including encoding hints, tag suggestions, and editor suggestions. # The suggestions object encapsulates suggestions that identify opportunities to improve the video quality or the metadata for the uploaded video. This data can only be retrieved by the video owner.
+        "processingErrors": [ # A list of errors that will prevent YouTube from successfully processing the uploaded video video. These errors indicate that, regardless of the video's current processing status, eventually, that status will almost certainly be failed.
+          "A String",
+        ],
+        "tagSuggestions": [ # A list of keyword tags that could be added to the video's metadata to increase the likelihood that users will locate your video when searching or browsing on YouTube.
+          { # A single tag suggestion with it's relevance information.
+            "categoryRestricts": [ # A set of video categories for which the tag is relevant. You can use this information to display appropriate tag suggestions based on the video category that the video uploader associates with the video. By default, tag suggestions are relevant for all categories if there are no restricts defined for the keyword.
+              "A String",
+            ],
+            "tag": "A String", # The keyword tag suggested for the video.
+          },
+        ],
+        "editorSuggestions": [ # A list of video editing operations that might improve the video quality or playback experience of the uploaded video.
+          "A String",
+        ],
+        "processingWarnings": [ # A list of reasons why YouTube may have difficulty transcoding the uploaded video or that might result in an erroneous transcoding. These warnings are generated before YouTube actually processes the uploaded video file. In addition, they identify issues that are unlikely to cause the video processing to fail but that might cause problems such as sync issues, video artifacts, or a missing audio track.
+          "A String",
+        ],
+        "processingHints": [ # A list of suggestions that may improve YouTube's ability to process the video.
+          "A String",
+        ],
+      },
+      "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.
+          {
+            "conversionUrl": "A String", # The url (without the schema) that the app shall send the ping to. It's at caller's descretion to decide which schema to use (http vs https) Example of a returned url: //googleads.g.doubleclick.net/pagead/ viewthroughconversion/962985656/?data=path%3DtHe_path%3Btype%3D like%3Butuid%3DGISQtTNGYqaYl4sKxoVvKA%3Bytvid%3DUrIaJUvIQDg&labe=default The caller must append biscotti authentication (ms param in case of mobile, for example) to this ping.
+            "context": "A String", # Defines the context of the ping.
+          },
+        ],
+      },
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/youtube_v3.watermarks.html b/docs/dyn/youtube_v3.watermarks.html
new file mode 100644
index 0000000..5820bf8
--- /dev/null
+++ b/docs/dyn/youtube_v3.watermarks.html
@@ -0,0 +1,123 @@
+<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="youtube_v3.html">YouTube Data API</a> . <a href="youtube_v3.watermarks.html">watermarks</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#set">set(channelId, body=None, media_body=None, onBehalfOfContentOwner=None)</a></code></p>
+<p class="firstline">Uploads a watermark image to YouTube and sets it for a channel.</p>
+<p class="toc_element">
+  <code><a href="#unset">unset(channelId, onBehalfOfContentOwner=None)</a></code></p>
+<p class="firstline">Deletes a watermark.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="set">set(channelId, body=None, media_body=None, onBehalfOfContentOwner=None)</code>
+  <pre>Uploads a watermark image to YouTube and sets it for a channel.
+
+Args:
+  channelId: string, The channelId parameter specifies a YouTube channel ID for which the watermark is being provided. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{
+    "targetChannelId": "A String",
+    "position": { # Describes the spatial position of a visual widget inside a video. It is a union of various position types, out of which only will be set one.
+      "cornerPosition": "A String", # Describes in which corner of the video the visual widget will appear.
+      "type": "A String", # Defines the position type.
+    },
+    "imageUrl": "A String",
+    "timing": { # Describes a temporal position of a visual widget inside a video.
+      "offsetMs": "A String", # Defines the time at which the promotion will appear. Depending on the value of type the value of the offsetMs field will represent a time offset from the start or from the end of the video, expressed in milliseconds.
+      "type": "A String", # Describes a timing type. If the value is offsetFromStart, then the offsetMs field represents an offset from the start of the video. If the value is offsetFromEnd, then the offsetMs field represents an offset from the end of the video.
+      "durationMs": "A String", # Defines the duration in milliseconds for which the promotion should be displayed. If missing, the client should use the default.
+    },
+    "imageBytes": "A String",
+  }
+
+  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
+  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.
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="unset">unset(channelId, onBehalfOfContentOwner=None)</code>
+  <pre>Deletes a watermark.
+
+Args:
+  channelId: string, The channelId parameter specifies a YouTube channel ID for which the watermark is being unset. (required)
+  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.
+</pre>
+</div>
+
+</body></html>
\ No newline at end of file
